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.

60 lines
2.1 KiB

  1. ---
  2. - include_tasks: vsphere-credentials-check.yml
  3. tags: vsphere-csi-driver
  4. - name: vSphere CSI Driver | Choose how to deploy CSI driver based on controller version
  5. set_fact:
  6. controller_spec: "{% if vsphere_csi_controller is version('v2.0.0', '<') %}vsphere-csi-controller-ss.yml{% else %}vsphere-csi-controller-deployment.yml{% endif %}"
  7. tags: vsphere-csi-driver
  8. - name: vSphere CSI Driver | Generate CSI cloud-config
  9. template:
  10. src: "{{ item }}.j2"
  11. dest: "{{ kube_config_dir }}/{{ item }}"
  12. mode: 0640
  13. with_items:
  14. - vsphere-csi-cloud-config
  15. when: inventory_hostname == groups['kube_control_plane'][0]
  16. tags: vsphere-csi-driver
  17. - name: vSphere CSI Driver | Generate Manifests
  18. template:
  19. src: "{{ item }}.j2"
  20. dest: "{{ kube_config_dir }}/{{ item }}"
  21. with_items:
  22. - vsphere-csi-controller-rbac.yml
  23. - vsphere-csi-node-rbac.yaml
  24. - "{{ controller_spec }}"
  25. - vsphere-csi-node.yml
  26. register: vsphere_csi_manifests
  27. when: inventory_hostname == groups['kube_control_plane'][0]
  28. tags: vsphere-csi-driver
  29. - name: vSphere CSI Driver | Generate a CSI secret manifest
  30. command: "{{ bin_dir }}/kubectl create secret generic vsphere-config-secret --from-file=csi-vsphere.conf={{ kube_config_dir }}/vsphere-csi-cloud-config -n kube-system --dry-run --save-config -o yaml"
  31. register: vsphere_csi_secret_manifest
  32. when: inventory_hostname == groups['kube_control_plane'][0]
  33. no_log: true
  34. tags: vsphere-csi-driver
  35. - name: vSphere CSI Driver | Apply a CSI secret manifest
  36. command:
  37. cmd: "{{ bin_dir }}/kubectl apply -f -"
  38. stdin: "{{ vsphere_csi_secret_manifest.stdout }}"
  39. when: inventory_hostname == groups['kube_control_plane'][0]
  40. no_log: true
  41. tags: vsphere-csi-driver
  42. - name: vSphere CSI Driver | Apply Manifests
  43. kube:
  44. kubectl: "{{ bin_dir }}/kubectl"
  45. filename: "{{ kube_config_dir }}/{{ item.item }}"
  46. state: "latest"
  47. with_items:
  48. - "{{ vsphere_csi_manifests.results }}"
  49. when:
  50. - inventory_hostname == groups['kube_control_plane'][0]
  51. - not item is skipped
  52. loop_control:
  53. label: "{{ item.item }}"
  54. tags: vsphere-csi-driver