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.

58 lines
2.9 KiB

  1. ---
  2. - name: Local Volume Provisioner | Ensure base dir is created on all hosts
  3. include_tasks: basedirs.yml
  4. loop_control:
  5. loop_var: delegate_host_base_dir
  6. loop: "{{ groups['k8s_cluster'] | product(local_volume_provisioner_storage_classes.keys()) | list }}"
  7. - name: Local Volume Provisioner | Create addon dir
  8. file:
  9. path: "{{ kube_config_dir }}/addons/local_volume_provisioner"
  10. state: directory
  11. owner: root
  12. group: root
  13. mode: 0755
  14. - name: Local Volume Provisioner | Templates list
  15. set_fact:
  16. local_volume_provisioner_templates:
  17. - { name: local-volume-provisioner-ns, file: local-volume-provisioner-ns.yml, type: ns }
  18. - { name: local-volume-provisioner-sa, file: local-volume-provisioner-sa.yml, type: sa }
  19. - { name: local-volume-provisioner-clusterrole, file: local-volume-provisioner-clusterrole.yml, type: clusterrole }
  20. - { name: local-volume-provisioner-clusterrolebinding, file: local-volume-provisioner-clusterrolebinding.yml, type: clusterrolebinding }
  21. - { name: local-volume-provisioner-cm, file: local-volume-provisioner-cm.yml, type: cm }
  22. - { name: local-volume-provisioner-ds, file: local-volume-provisioner-ds.yml, type: ds }
  23. - { name: local-volume-provisioner-sc, file: local-volume-provisioner-sc.yml, type: sc }
  24. local_volume_provisioner_templates_for_psp_not_system_ns:
  25. - { name: local-volume-provisioner-psp, file: local-volume-provisioner-psp.yml, type: psp }
  26. - { name: local-volume-provisioner-psp-role, file: local-volume-provisioner-psp-role.yml, type: role }
  27. - { name: local-volume-provisioner-psp-rb, file: local-volume-provisioner-psp-rb.yml, type: rolebinding }
  28. - name: Local Volume Provisioner | Insert extra templates to Local Volume Provisioner templates list for PodSecurityPolicy
  29. set_fact:
  30. local_volume_provisioner_templates: "{{ local_volume_provisioner_templates[:2] + local_volume_provisioner_templates_for_psp_not_system_ns + local_volume_provisioner_templates[2:] }}"
  31. when:
  32. - podsecuritypolicy_enabled
  33. - local_volume_provisioner_namespace != "kube-system"
  34. - name: Local Volume Provisioner | Create manifests
  35. template:
  36. src: "{{ item.file }}.j2"
  37. dest: "{{ kube_config_dir }}/addons/local_volume_provisioner/{{ item.file }}"
  38. with_items: "{{ local_volume_provisioner_templates }}"
  39. register: local_volume_provisioner_manifests
  40. when: inventory_hostname == groups['kube_control_plane'][0]
  41. - name: Local Volume Provisioner | Apply manifests
  42. kube:
  43. name: "{{ item.item.name }}"
  44. namespace: "{{ local_volume_provisioner_namespace }}"
  45. kubectl: "{{ bin_dir }}/kubectl"
  46. resource: "{{ item.item.type }}"
  47. filename: "{{ kube_config_dir }}/addons/local_volume_provisioner/{{ item.item.file }}"
  48. state: "latest"
  49. with_items: "{{ local_volume_provisioner_manifests.results }}"
  50. when: inventory_hostname == groups['kube_control_plane'][0]
  51. loop_control:
  52. label: "{{ item.item.file }}"