diff --git a/playbooks/cluster.yml b/playbooks/cluster.yml index 71cef8483..1c69cfa2c 100644 --- a/playbooks/cluster.yml +++ b/playbooks/cluster.yml @@ -81,7 +81,6 @@ roles: - { role: kubespray_defaults } - { role: kubernetes-apps/external_cloud_controller, tags: external-cloud-controller } - - { role: kubernetes-apps/network_plugin, tags: network } - { role: kubernetes-apps/policy_controller, tags: policy-controller } - { role: kubernetes-apps/ingress_controller, tags: ingress-controller } - { role: kubernetes-apps/external_provisioner, tags: external-provisioner } diff --git a/playbooks/upgrade_cluster.yml b/playbooks/upgrade_cluster.yml index b0b3a0886..3c6325794 100644 --- a/playbooks/upgrade_cluster.yml +++ b/playbooks/upgrade_cluster.yml @@ -73,7 +73,6 @@ - { role: kubespray_defaults } - { role: kubernetes-apps/external_cloud_controller, tags: external-cloud-controller } - { role: network_plugin, tags: network } - - { role: kubernetes-apps/network_plugin, tags: network } - { role: kubernetes-apps/policy_controller, tags: policy-controller } - name: Finally handle worker upgrades, based on given batch size diff --git a/roles/kubernetes-apps/network_plugin/calico/tasks/main.yml b/roles/kubernetes-apps/network_plugin/calico/tasks/main.yml deleted file mode 100644 index b8b4338ab..000000000 --- a/roles/kubernetes-apps/network_plugin/calico/tasks/main.yml +++ /dev/null @@ -1,2 +0,0 @@ ---- -# TODO: Handle Calico etcd -> kdd migration diff --git a/roles/kubernetes-apps/network_plugin/flannel/tasks/main.yml b/roles/kubernetes-apps/network_plugin/flannel/tasks/main.yml deleted file mode 100644 index ff56d2461..000000000 --- a/roles/kubernetes-apps/network_plugin/flannel/tasks/main.yml +++ /dev/null @@ -1,17 +0,0 @@ ---- -- name: Flannel | Start Resources - kube: - name: "{{ item.item.name }}" - namespace: "kube-system" - kubectl: "{{ bin_dir }}/kubectl" - resource: "{{ item.item.type }}" - filename: "{{ kube_config_dir }}/{{ item.item.file }}" - state: "latest" - with_items: "{{ flannel_node_manifests.results }}" - when: inventory_hostname == groups['kube_control_plane'][0] and not item is skipped - -- name: Flannel | Wait for flannel subnet.env file presence - wait_for: - path: /run/flannel/subnet.env - delay: 5 - timeout: 600 diff --git a/roles/kubernetes-apps/network_plugin/kube-ovn/tasks/main.yml b/roles/kubernetes-apps/network_plugin/kube-ovn/tasks/main.yml deleted file mode 100644 index 9f4250183..000000000 --- a/roles/kubernetes-apps/network_plugin/kube-ovn/tasks/main.yml +++ /dev/null @@ -1,9 +0,0 @@ ---- -- name: Kube-OVN | Start Resources - kube: - name: "{{ item.item.name }}" - kubectl: "{{ bin_dir }}/kubectl" - filename: "{{ kube_config_dir }}/{{ item.item.file }}" - state: "latest" - with_items: "{{ kube_ovn_node_manifests.results }}" - when: inventory_hostname == groups['kube_control_plane'][0] and not item is skipped diff --git a/roles/kubernetes-apps/network_plugin/kube-router/tasks/main.yml b/roles/kubernetes-apps/network_plugin/kube-router/tasks/main.yml deleted file mode 100644 index 1d756a0c1..000000000 --- a/roles/kubernetes-apps/network_plugin/kube-router/tasks/main.yml +++ /dev/null @@ -1,23 +0,0 @@ ---- - -- name: Kube-router | Start Resources - kube: - name: "kube-router" - kubectl: "{{ bin_dir }}/kubectl" - filename: "{{ kube_config_dir }}/kube-router.yml" - resource: "ds" - namespace: "kube-system" - state: "latest" - delegate_to: "{{ groups['kube_control_plane'] | first }}" - run_once: true - -- name: Kube-router | Wait for kube-router pods to be ready - command: "{{ kubectl }} -n kube-system get pods -l k8s-app=kube-router -o jsonpath='{.items[?(@.status.containerStatuses[0].ready==false)].metadata.name}'" # noqa ignore-errors - register: pods_not_ready - until: pods_not_ready.stdout.find("kube-router")==-1 - retries: 30 - delay: 10 - ignore_errors: true - delegate_to: "{{ groups['kube_control_plane'] | first }}" - run_once: true - changed_when: false diff --git a/roles/kubernetes-apps/network_plugin/meta/main.yml b/roles/kubernetes-apps/network_plugin/meta/main.yml deleted file mode 100644 index e53aebca5..000000000 --- a/roles/kubernetes-apps/network_plugin/meta/main.yml +++ /dev/null @@ -1,26 +0,0 @@ ---- -dependencies: - - role: kubernetes-apps/network_plugin/calico - when: kube_network_plugin == 'calico' - tags: - - calico - - - role: kubernetes-apps/network_plugin/flannel - when: kube_network_plugin == 'flannel' - tags: - - flannel - - - role: kubernetes-apps/network_plugin/kube-ovn - when: kube_network_plugin == 'kube-ovn' - tags: - - kube-ovn - - - role: kubernetes-apps/network_plugin/kube-router - when: kube_network_plugin == 'kube-router' - tags: - - kube-router - - - role: kubernetes-apps/network_plugin/multus - when: kube_network_plugin_multus - tags: - - multus diff --git a/roles/kubernetes-apps/network_plugin/multus/tasks/main.yml b/roles/kubernetes-apps/network_plugin/multus/tasks/main.yml deleted file mode 100644 index d5dd01643..000000000 --- a/roles/kubernetes-apps/network_plugin/multus/tasks/main.yml +++ /dev/null @@ -1,18 +0,0 @@ ---- -- name: Multus | Start resources - kube: - name: "{{ item.item.name }}" - namespace: "kube-system" - kubectl: "{{ bin_dir }}/kubectl" - resource: "{{ item.item.type }}" - filename: "{{ kube_config_dir }}/{{ item.item.file }}" - state: "latest" - delegate_to: "{{ groups['kube_control_plane'][0] }}" - run_once: true - with_items: "{{ (multus_manifest_1.results | default([])) + (multus_nodes_list | map('extract', hostvars, 'multus_manifest_2') | map('default', []) | list | json_query('[].results')) }}" - loop_control: - label: "{{ item.item.name if item != None else 'skipped' }}" - vars: - multus_nodes_list: "{{ groups['k8s_cluster'] if ansible_play_batch | length == ansible_play_hosts_all | length else ansible_play_batch }}" - when: - - not item is skipped diff --git a/roles/network_plugin/flannel/tasks/main.yml b/roles/network_plugin/flannel/tasks/main.yml index 94603fcf5..8fea555e4 100644 --- a/roles/network_plugin/flannel/tasks/main.yml +++ b/roles/network_plugin/flannel/tasks/main.yml @@ -19,3 +19,20 @@ register: flannel_node_manifests when: - inventory_hostname == groups['kube_control_plane'][0] + +- name: Flannel | Start Resources + kube: + name: "{{ item.item.name }}" + namespace: "kube-system" + kubectl: "{{ bin_dir }}/kubectl" + resource: "{{ item.item.type }}" + filename: "{{ kube_config_dir }}/{{ item.item.file }}" + state: "latest" + with_items: "{{ flannel_node_manifests.results }}" + when: inventory_hostname == groups['kube_control_plane'][0] and not item is skipped + +- name: Flannel | Wait for flannel subnet.env file presence + wait_for: + path: /run/flannel/subnet.env + delay: 5 + timeout: 600 diff --git a/roles/network_plugin/kube-ovn/tasks/main.yml b/roles/network_plugin/kube-ovn/tasks/main.yml index a8b942792..3d278462c 100644 --- a/roles/network_plugin/kube-ovn/tasks/main.yml +++ b/roles/network_plugin/kube-ovn/tasks/main.yml @@ -15,3 +15,12 @@ - {name: ovn, file: cni-ovn.yml} - {name: kube-ovn, file: cni-kube-ovn.yml} register: kube_ovn_node_manifests + +- name: Kube-OVN | Start Resources + kube: + name: "{{ item.item.name }}" + kubectl: "{{ bin_dir }}/kubectl" + filename: "{{ kube_config_dir }}/{{ item.item.file }}" + state: "latest" + with_items: "{{ kube_ovn_node_manifests.results }}" + when: inventory_hostname == groups['kube_control_plane'][0] and not item is skipped diff --git a/roles/network_plugin/kube-router/tasks/main.yml b/roles/network_plugin/kube-router/tasks/main.yml index d47a0d1e2..561ed6887 100644 --- a/roles/network_plugin/kube-router/tasks/main.yml +++ b/roles/network_plugin/kube-router/tasks/main.yml @@ -60,3 +60,25 @@ mode: "0644" delegate_to: "{{ groups['kube_control_plane'] | first }}" run_once: true + +- name: Kube-router | Start Resources + kube: + name: "kube-router" + kubectl: "{{ bin_dir }}/kubectl" + filename: "{{ kube_config_dir }}/kube-router.yml" + resource: "ds" + namespace: "kube-system" + state: "latest" + delegate_to: "{{ groups['kube_control_plane'] | first }}" + run_once: true + +- name: Kube-router | Wait for kube-router pods to be ready + command: "{{ kubectl }} -n kube-system get pods -l k8s-app=kube-router -o jsonpath='{.items[?(@.status.containerStatuses[0].ready==false)].metadata.name}'" # noqa ignore-errors + register: pods_not_ready + until: pods_not_ready.stdout.find("kube-router")==-1 + retries: 30 + delay: 10 + ignore_errors: true + delegate_to: "{{ groups['kube_control_plane'] | first }}" + run_once: true + changed_when: false diff --git a/roles/network_plugin/multus/tasks/main.yml b/roles/network_plugin/multus/tasks/main.yml index 6586e5576..3b0819d81 100644 --- a/roles/network_plugin/multus/tasks/main.yml +++ b/roles/network_plugin/multus/tasks/main.yml @@ -34,3 +34,21 @@ - item.engine in container_manager_types - hostvars[inventory_hostname].container_manager == item.engine - inventory_hostname == vars_from_node + +- name: Multus | Start resources + kube: + name: "{{ item.item.name }}" + namespace: "kube-system" + kubectl: "{{ bin_dir }}/kubectl" + resource: "{{ item.item.type }}" + filename: "{{ kube_config_dir }}/{{ item.item.file }}" + state: "latest" + delegate_to: "{{ groups['kube_control_plane'][0] }}" + run_once: true + with_items: "{{ (multus_manifest_1.results | default([])) + (multus_nodes_list | map('extract', hostvars, 'multus_manifest_2') | map('default', []) | list | json_query('[].results')) }}" + loop_control: + label: "{{ item.item.name if item != None else 'skipped' }}" + vars: + multus_nodes_list: "{{ groups['k8s_cluster'] if ansible_play_batch | length == ansible_play_hosts_all | length else ansible_play_batch }}" + when: + - not item is skipped