kubespray/roles/kubernetes-apps/scheduler_plugins/tasks/main.yml

69 lines
2.9 KiB
YAML

---
- name: Scheduler Plugins | Ensure dir exists
file:
path: "{{ kube_config_dir }}/scheduler-plugins"
state: directory
owner: root
group: root
mode: 0755
when: inventory_hostname == groups['kube_control_plane'][0]
tags:
- scheduler_plugins
- name: Scheduler Plugins | Create manifests
template:
src: "{{ item.file }}.j2"
dest: "{{ kube_config_dir }}/scheduler-plugins/{{ item.file }}"
mode: 0644
with_items:
- { name: appgroup, file: appgroup.diktyo.x-k8s.io_appgroups.yaml, type: crd }
- { name: networktopology, file: networktopology.diktyo.x-k8s.io_networktopologies.yaml, type: crd }
- { name: elasticquotas, file: scheduling.x-k8s.io_elasticquotas.yaml, type: crd }
- { name: podgroups, file: scheduling.x-k8s.io_podgroups.yaml, type: crd }
- { name: noderesourcetopologies, file: topology.node.k8s.io_noderesourcetopologies.yaml, type: crd }
- { name: namespace, file: namespace.yaml, type: namespace }
- { name: sa, file: sa-scheduler-plugins.yaml, type: serviceaccount }
- { name: rbac, file: rbac-scheduler-plugins.yaml, type: rbac }
- { name: cm, file: cm-scheduler-plugins.yaml, type: configmap }
- { name: deploy, file: deploy-scheduler-plugins.yaml, type: deployment }
register: scheduler_plugins_manifests
when: inventory_hostname == groups['kube_control_plane'][0]
tags:
- scheduler_plugins
- name: Scheduler Plugins | Apply manifests
kube:
name: "{{ item.item.name }}"
kubectl: "{{ bin_dir }}/kubectl"
resource: "{{ item.item.type }}"
filename: "{{ kube_config_dir }}/scheduler-plugins/{{ item.item.file }}"
state: "latest"
with_items: "{{ scheduler_plugins_manifests.results }}"
when: inventory_hostname == groups['kube_control_plane'][0]
tags:
- scheduler_plugins
- name: Scheduler Plugins | Wait for controller pods to be ready
command: "{{ kubectl }} -n {{ scheduler_plugins_namespace }} get pods -l app=scheduler-plugins-controller -o jsonpath='{.items[?(@.status.containerStatuses[0].ready==false)].metadata.name}'" # noqa ignore-errors
register: controller_pods_not_ready
until: controller_pods_not_ready.stdout.find("scheduler-plugins-controller")==-1
retries: 30
delay: 10
ignore_errors: true
changed_when: false
when: inventory_hostname == groups['kube_control_plane'][0]
tags:
- scheduler_plugins
- name: Scheduler Plugins | Wait for scheduler pods to be ready
command: "{{ kubectl }} -n {{ scheduler_plugins_namespace }} get pods -l component=scheduler -o jsonpath='{.items[?(@.status.containerStatuses[0].ready==false)].metadata.name}'" # noqa ignore-errors
register: scheduler_pods_not_ready
until: scheduler_pods_not_ready.stdout.find("scheduler-plugins-scheduler")==-1
retries: 30
delay: 10
ignore_errors: true
changed_when: false
when: inventory_hostname == groups['kube_control_plane'][0]
tags:
- scheduler_plugins