You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

36 lines
1.6 KiB

  1. ---
  2. - name: Multus | Copy manifest files
  3. copy:
  4. src: "{{ item.file }}"
  5. dest: "{{ kube_config_dir }}"
  6. mode: "0644"
  7. with_items:
  8. - {name: multus-crd, file: multus-crd.yml, type: customresourcedefinition}
  9. - {name: multus-serviceaccount, file: multus-serviceaccount.yml, type: serviceaccount}
  10. - {name: multus-clusterrole, file: multus-clusterrole.yml, type: clusterrole}
  11. - {name: multus-clusterrolebinding, file: multus-clusterrolebinding.yml, type: clusterrolebinding}
  12. register: multus_manifest_1
  13. when: inventory_hostname == groups['kube_control_plane'][0]
  14. - name: Multus | Check container engine type
  15. set_fact:
  16. container_manager_types: "{{ ansible_play_hosts_all | map('extract', hostvars, ['container_manager']) | list | unique }}"
  17. - name: Multus | Copy manifest templates
  18. template:
  19. src: multus-daemonset.yml.j2
  20. dest: "{{ kube_config_dir }}/{{ item.file }}"
  21. mode: "0644"
  22. with_items:
  23. - {name: multus-daemonset-containerd, file: multus-daemonset-containerd.yml, type: daemonset, engine: containerd }
  24. - {name: multus-daemonset-docker, file: multus-daemonset-docker.yml, type: daemonset, engine: docker }
  25. - {name: multus-daemonset-crio, file: multus-daemonset-crio.yml, type: daemonset, engine: crio }
  26. register: multus_manifest_2
  27. vars:
  28. query: "*|[?container_manager=='{{ container_manager }}']|[0].inventory_hostname"
  29. vars_from_node: "{{ hostvars | json_query(query) }}"
  30. delegate_to: "{{ groups['kube_control_plane'][0] }}"
  31. when:
  32. - item.engine in container_manager_types
  33. - hostvars[inventory_hostname].container_manager == item.engine
  34. - inventory_hostname == vars_from_node