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.

48 lines
1.9 KiB

  1. ---
  2. - include_tasks: openstack-credential-check.yml
  3. tags: external-openstack
  4. - name: External OpenStack Cloud Controller | Get base64 cacert
  5. slurp:
  6. src: "{{ external_openstack_cacert }}"
  7. register: external_openstack_cacert_b64
  8. when:
  9. - inventory_hostname == groups['kube_control_plane'][0]
  10. - external_openstack_cacert is defined
  11. - external_openstack_cacert | length > 0
  12. tags: external-openstack
  13. - name: External OpenStack Cloud Controller | Get base64 cloud-config
  14. set_fact:
  15. external_openstack_cloud_config_secret: "{{ lookup('template', 'external-openstack-cloud-config.j2') | b64encode }}"
  16. when: inventory_hostname == groups['kube_control_plane'][0]
  17. tags: external-openstack
  18. - name: External OpenStack Cloud Controller | Generate Manifests
  19. template:
  20. src: "{{ item.file }}.j2"
  21. dest: "{{ kube_config_dir }}/{{ item.file }}"
  22. group: "{{ kube_cert_group }}"
  23. mode: 0640
  24. with_items:
  25. - {name: external-openstack-cloud-config-secret, file: external-openstack-cloud-config-secret.yml}
  26. - {name: external-openstack-cloud-controller-manager-roles, file: external-openstack-cloud-controller-manager-roles.yml}
  27. - {name: external-openstack-cloud-controller-manager-role-bindings, file: external-openstack-cloud-controller-manager-role-bindings.yml}
  28. - {name: external-openstack-cloud-controller-manager-ds, file: external-openstack-cloud-controller-manager-ds.yml}
  29. register: external_openstack_manifests
  30. when: inventory_hostname == groups['kube_control_plane'][0]
  31. tags: external-openstack
  32. - name: External OpenStack Cloud Controller | Apply Manifests
  33. kube:
  34. kubectl: "{{ bin_dir }}/kubectl"
  35. filename: "{{ kube_config_dir }}/{{ item.item.file }}"
  36. state: "latest"
  37. with_items:
  38. - "{{ external_openstack_manifests.results }}"
  39. when:
  40. - inventory_hostname == groups['kube_control_plane'][0]
  41. - not item is skipped
  42. loop_control:
  43. label: "{{ item.item.file }}"
  44. tags: external-openstack