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.

53 lines
2.0 KiB

  1. ---
  2. - include_tasks: vsphere-credentials-check.yml
  3. tags: external-vsphere
  4. - name: External vSphere Cloud Controller | Generate CPI cloud-config
  5. template:
  6. src: "{{ item }}.j2"
  7. dest: "{{ kube_config_dir }}/{{ item }}"
  8. mode: 0640
  9. with_items:
  10. - external-vsphere-cpi-cloud-config
  11. when: inventory_hostname == groups['kube_control_plane'][0]
  12. tags: external-vsphere
  13. - name: External vSphere Cloud Controller | Generate Manifests
  14. template:
  15. src: "{{ item }}.j2"
  16. dest: "{{ kube_config_dir }}/{{ item }}"
  17. with_items:
  18. - external-vsphere-cpi-cloud-config-secret.yml
  19. - external-vsphere-cloud-controller-manager-roles.yml
  20. - external-vsphere-cloud-controller-manager-role-bindings.yml
  21. - external-vsphere-cloud-controller-manager-ds.yml
  22. register: external_vsphere_manifests
  23. when: inventory_hostname == groups['kube_control_plane'][0]
  24. tags: external-vsphere
  25. - name: External vSphere Cloud Provider Interface | Create a CPI configMap manifest
  26. command: "{{ bin_dir }}/kubectl create configmap cloud-config --from-file=vsphere.conf={{ kube_config_dir }}/external-vsphere-cpi-cloud-config -n kube-system --dry-run --save-config -o yaml"
  27. register: external_vsphere_configmap_manifest
  28. when: inventory_hostname == groups['kube_control_plane'][0]
  29. tags: external-vsphere
  30. - name: External vSphere Cloud Provider Interface | Apply a CPI configMap manifest
  31. command:
  32. cmd: "{{ bin_dir }}/kubectl apply -f -"
  33. stdin: "{{ external_vsphere_configmap_manifest.stdout }}"
  34. when: inventory_hostname == groups['kube_control_plane'][0]
  35. tags: external-vsphere
  36. - name: External vSphere Cloud Controller | Apply Manifests
  37. kube:
  38. kubectl: "{{ bin_dir }}/kubectl"
  39. filename: "{{ kube_config_dir }}/{{ item.item }}"
  40. state: "latest"
  41. with_items:
  42. - "{{ external_vsphere_manifests.results }}"
  43. when:
  44. - inventory_hostname == groups['kube_control_plane'][0]
  45. - not item is skipped
  46. loop_control:
  47. label: "{{ item.item }}"
  48. tags: external-vsphere