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.

49 lines
1.9 KiB

  1. ---
  2. - name: External vSphere Cloud Controller | Check vsphere credentials
  3. include_tasks: vsphere-credentials-check.yml
  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. - name: External vSphere Cloud Controller | Generate Manifests
  13. template:
  14. src: "{{ item }}.j2"
  15. dest: "{{ kube_config_dir }}/{{ item }}"
  16. mode: "0644"
  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. - name: External vSphere Cloud Provider Interface | Create a CPI configMap manifest
  25. 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"
  26. register: external_vsphere_configmap_manifest
  27. when: inventory_hostname == groups['kube_control_plane'][0]
  28. - name: External vSphere Cloud Provider Interface | Apply a CPI configMap manifest
  29. command:
  30. cmd: "{{ bin_dir }}/kubectl apply -f -"
  31. stdin: "{{ external_vsphere_configmap_manifest.stdout }}"
  32. when: inventory_hostname == groups['kube_control_plane'][0]
  33. - name: External vSphere Cloud Controller | Apply Manifests
  34. kube:
  35. kubectl: "{{ bin_dir }}/kubectl"
  36. filename: "{{ kube_config_dir }}/{{ item.item }}"
  37. state: "latest"
  38. with_items:
  39. - "{{ external_vsphere_manifests.results }}"
  40. when:
  41. - inventory_hostname == groups['kube_control_plane'][0]
  42. - not item is skipped
  43. loop_control:
  44. label: "{{ item.item }}"