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
2.0 KiB

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