install.yml 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. ---
  2. # Fact setting
  3. - name: Ensure that Template Service Broker has nodes to run on
  4. fail:
  5. msg: |-
  6. No schedulable nodes found matching node selector for Template Service Broker - '{{ template_service_broker_selector }}'
  7. when:
  8. - openshift_schedulable_node_labels | lib_utils_oo_has_no_matching_selector(template_service_broker_selector)
  9. - name: Set default image variables based on openshift_deployment_type
  10. include_vars: "{{ item }}"
  11. with_first_found:
  12. - "{{ openshift_deployment_type }}.yml"
  13. - "default_images.yml"
  14. - name: set template_service_broker facts
  15. set_fact:
  16. template_service_broker_prefix: "{{ template_service_broker_prefix | default(__template_service_broker_prefix) }}"
  17. template_service_broker_version: "{{ template_service_broker_version | default(__template_service_broker_version) }}"
  18. template_service_broker_image_name: "{{ template_service_broker_image_name | default(__template_service_broker_image_name) }}"
  19. - oc_project:
  20. name: openshift-template-service-broker
  21. state: present
  22. node_selector:
  23. - ""
  24. - command: mktemp -d /tmp/tsb-ansible-XXXXXX
  25. register: mktemp
  26. changed_when: False
  27. - name: Copy admin client config
  28. command: >
  29. cp {{ openshift.common.config_base }}/master//admin.kubeconfig {{ mktemp.stdout }}/admin.kubeconfig
  30. changed_when: false
  31. - copy:
  32. src: "{{ item }}"
  33. dest: "{{ mktemp.stdout }}/{{ item }}"
  34. with_items:
  35. - "{{ __tsb_template_file }}"
  36. - "{{ __tsb_rbac_file }}"
  37. - "{{ __tsb_broker_file }}"
  38. - "{{ __tsb_config_file }}"
  39. - yedit:
  40. src: "{{ mktemp.stdout }}/{{ __tsb_config_file }}"
  41. key: templateNamespaces
  42. value: "{{ openshift_template_service_broker_namespaces }}"
  43. value_type: list
  44. - slurp:
  45. src: "{{ mktemp.stdout }}/{{ __tsb_config_file }}"
  46. register: config
  47. - name: Apply template file
  48. shell: >
  49. {{ openshift_client_binary }} process --config={{ mktemp.stdout }}/admin.kubeconfig
  50. -f "{{ mktemp.stdout }}/{{ __tsb_template_file }}"
  51. --param API_SERVER_CONFIG="{{ config['content'] | b64decode }}"
  52. --param IMAGE="{{ template_service_broker_prefix }}{{ template_service_broker_image_name }}:{{ template_service_broker_version }}"
  53. --param NODE_SELECTOR={{ template_service_broker_selector | to_json | quote }}
  54. | {{ openshift_client_binary }} apply --config={{ mktemp.stdout }}/admin.kubeconfig -f -
  55. # reconcile with rbac
  56. - name: Reconcile with RBAC file
  57. shell: >
  58. {{ openshift_client_binary }} process --config={{ mktemp.stdout }}/admin.kubeconfig -f "{{ mktemp.stdout }}/{{ __tsb_rbac_file }}"
  59. | {{ openshift_client_binary }} auth reconcile --config={{ mktemp.stdout }}/admin.kubeconfig -f -
  60. # Check that the TSB is running
  61. - name: Verify that TSB is running
  62. command: >
  63. curl -k https://apiserver.openshift-template-service-broker.svc/healthz
  64. args:
  65. # Disables the following warning:
  66. # Consider using get_url or uri module rather than running curl
  67. warn: no
  68. register: api_health
  69. until: api_health.stdout == 'ok'
  70. retries: 60
  71. delay: 5
  72. changed_when: false
  73. - set_fact:
  74. openshift_master_config_dir: "{{ openshift.common.config_base }}/master"
  75. when: openshift_master_config_dir is undefined
  76. - slurp:
  77. src: "{{ openshift_master_config_dir }}/service-signer.crt"
  78. register: __ca_bundle
  79. # Register with broker
  80. - name: Register TSB with broker
  81. shell: >
  82. {{ openshift_client_binary }} process --config={{ mktemp.stdout }}/admin.kubeconfig -f "{{ mktemp.stdout }}/{{ __tsb_broker_file }}" --param CA_BUNDLE="{{ __ca_bundle.content }}" | {{ openshift_client_binary }} apply --config={{ mktemp.stdout }}/admin.kubeconfig -f -
  83. - file:
  84. state: absent
  85. name: "{{ mktemp.stdout }}"
  86. changed_when: False
  87. - name: Rollout console so it discovers the template service broker is installed
  88. include_role:
  89. name: openshift_web_console
  90. tasks_from: rollout_console.yml
  91. when: openshift_web_console_install | default(true) | bool