add_container_provider.yml 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. ---
  2. - name: Ensure lib_openshift modules are available
  3. include_role:
  4. role: lib_openshift
  5. - name: Ensure OpenShift facts module is available
  6. include_role:
  7. role: openshift_facts
  8. - name: Ensure OpenShift facts are loaded
  9. openshift_facts:
  10. - name: Ensure we use openshift_master_cluster_public_hostname if it is available
  11. set_fact:
  12. l_cluster_hostname: "{{ openshift.master.cluster_public_hostname }}"
  13. when:
  14. - openshift.master.cluster_public_hostname is defined
  15. - name: Ensure we default to the first master if openshift_master_cluster_public_hostname is unavailable
  16. set_fact:
  17. l_cluster_hostname: "{{ openshift.master.cluster_hostname }}"
  18. when:
  19. - l_cluster_hostname is not defined
  20. - name: Ensure the management SA Secrets are read
  21. oc_serviceaccount_secret:
  22. state: list
  23. service_account: management-admin
  24. namespace: management-infra
  25. register: sa
  26. - name: Ensure the management SA bearer token is identified
  27. set_fact:
  28. management_token: "{{ sa.results | oo_filter_sa_secrets }}"
  29. - name: Ensure the SA bearer token value is read
  30. oc_secret:
  31. state: list
  32. name: "{{ management_token }}"
  33. namespace: management-infra
  34. decode: true
  35. no_log: True
  36. register: sa_secret
  37. - name: Ensure the SA bearer token value is saved
  38. set_fact:
  39. management_bearer_token: "{{ sa_secret.results.decoded.token }}"
  40. - name: Ensure we have the public route to the management service
  41. oc_route:
  42. state: list
  43. name: httpd
  44. namespace: openshift-management
  45. register: route
  46. - name: Ensure the management service route is saved
  47. set_fact:
  48. management_route: "{{ route.results.0.spec.host }}"
  49. - name: Ensure this cluster is a container provider
  50. uri:
  51. url: "https://{{ management_route }}/api/providers"
  52. body_format: json
  53. method: POST
  54. user: "{{ openshift_management_username }}"
  55. password: "{{ openshift_management_password }}"
  56. validate_certs: no
  57. # Docs on formatting the BODY of the POST request:
  58. # http://manageiq.org/docs/reference/latest/api/reference/providers.html#specifying-connection-configurations
  59. body:
  60. connection_configurations:
  61. - authentication: {auth_key: "{{ management_bearer_token }}", authtype: bearer, type: AuthToken}
  62. endpoint: {role: default, security_protocol: ssl-without-validation, verify_ssl: 0}
  63. hostname: "{{ l_cluster_hostname }}"
  64. name: "{{ openshift_management_project }}"
  65. port: "{{ openshift.master.api_port }}"
  66. type: "ManageIQ::Providers::Openshift::ContainerManager"