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.

72 lines
2.7 KiB

  1. ---
  2. - name: Ambassador | Create addon dir
  3. file:
  4. path: "{{ kube_config_dir }}/addons/ambassador"
  5. state: directory
  6. owner: root
  7. group: root
  8. mode: 0755
  9. when:
  10. - inventory_hostname == groups['kube_control_plane'][0]
  11. - name: Ambassador | Templates list
  12. set_fact:
  13. ingress_ambassador_templates:
  14. - { name: 00-namespace, file: 00-namespace.yml, type: ns }
  15. - { name: crd-ambassador-installation, file: crd-ambassador-installation.yml, type: customresourcedefinition }
  16. - { name: sa-ambassador, file: sa-ambassador.yml, type: sa }
  17. - { name: clusterrole-ambassador, file: clusterrole-ambassador.yml, type: clusterrole }
  18. - { name: clusterrolebinding-ambassador, file: clusterrolebinding-ambassador.yml, type: clusterrolebinding }
  19. - { name: role-ambassador, file: role-ambassador.yml, type: role }
  20. - { name: rolebinding-ambassador, file: rolebinding-ambassador.yml, type: rolebinding }
  21. - { name: deploy-ambassador, file: deploy-ambassador.yml, type: deploy }
  22. - name: Ambassador | Create manifests
  23. template:
  24. src: "{{ item.file }}.j2"
  25. dest: "{{ kube_config_dir }}/addons/ambassador/{{ item.file }}"
  26. loop: "{{ ingress_ambassador_templates }}"
  27. register: ingress_ambassador_manifests
  28. when:
  29. - inventory_hostname == groups['kube_control_plane'][0]
  30. - name: Ambassador | Apply manifests
  31. kube:
  32. name: "{{ item.item.name }}"
  33. namespace: "{{ ingress_ambassador_namespace }}"
  34. kubectl: "{{ bin_dir }}/kubectl"
  35. resource: "{{ item.item.type }}"
  36. filename: "{{ kube_config_dir }}/addons/ambassador/{{ item.item.file }}"
  37. state: "latest"
  38. loop: "{{ ingress_ambassador_manifests.results }}"
  39. when:
  40. - inventory_hostname == groups['kube_control_plane'][0]
  41. # load the AmbassadorInstallation _after_ the CustomResourceDefinition has been loaded
  42. - name: Ambassador | AmbassadorInstallation template
  43. set_fact:
  44. ingress_ambassador_cr_templates:
  45. - { name: cr-ambassador-installation, file: cr-ambassador-installation.yml, type: cr }
  46. - name: Ambassador | Create installation manifests
  47. template:
  48. src: "{{ item.file }}.j2"
  49. dest: "{{ kube_config_dir }}/addons/ambassador/{{ item.file }}"
  50. loop: "{{ ingress_ambassador_cr_templates }}"
  51. register: ingress_ambassador_cr_manifests
  52. when:
  53. - inventory_hostname == groups['kube_control_plane'][0]
  54. - name: Ambassador | Apply AmbassadorInstallation
  55. kube:
  56. name: "{{ item.item.name }}"
  57. namespace: "{{ ingress_ambassador_namespace }}"
  58. kubectl: "{{ bin_dir }}/kubectl"
  59. resource: "{{ item.item.type }}"
  60. filename: "{{ kube_config_dir }}/addons/ambassador/{{ item.item.file }}"
  61. state: "latest"
  62. loop: "{{ ingress_ambassador_cr_manifests.results }}"
  63. when:
  64. - inventory_hostname == groups['kube_control_plane'][0]