wire_aggregator.yml 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206
  1. ---
  2. - name: Make temp cert dir
  3. command: mktemp -d /tmp/openshift-service-catalog-ansible-XXXXXX
  4. register: certtemp
  5. changed_when: False
  6. - name: Check for First Master Aggregator Signer cert
  7. stat:
  8. path: /etc/origin/master/front-proxy-ca.crt
  9. register: first_proxy_ca_crt
  10. changed_when: false
  11. delegate_to: "{{ first_master }}"
  12. - name: Check for First Master Aggregator Signer key
  13. stat:
  14. path: /etc/origin/master/front-proxy-ca.crt
  15. register: first_proxy_ca_key
  16. changed_when: false
  17. delegate_to: "{{ first_master }}"
  18. # TODO: this currently has a bug where hostnames are required
  19. - name: Creating First Master Aggregator signer certs
  20. command: >
  21. oc adm ca create-signer-cert
  22. --cert=/etc/origin/master/front-proxy-ca.crt
  23. --key=/etc/origin/master/front-proxy-ca.key
  24. --serial=/etc/origin/master/ca.serial.txt
  25. delegate_to: "{{ first_master }}"
  26. when:
  27. - not first_proxy_ca_crt.stat.exists
  28. - not first_proxy_ca_key.stat.exists
  29. - name: Check for Aggregator Signer cert
  30. stat:
  31. path: /etc/origin/master/front-proxy-ca.crt
  32. register: proxy_ca_crt
  33. changed_when: false
  34. - name: Check for Aggregator Signer key
  35. stat:
  36. path: /etc/origin/master/front-proxy-ca.crt
  37. register: proxy_ca_key
  38. changed_when: false
  39. - name: Copy Aggregator Signer certs from first master
  40. fetch:
  41. src: "/etc/origin/master/{{ item }}"
  42. dest: "{{ certtemp.stdout }}/{{ item }}"
  43. flat: yes
  44. with_items:
  45. - front-proxy-ca.crt
  46. - front-proxy-ca.key
  47. delegate_to: "{{ first_master }}"
  48. when:
  49. - not proxy_ca_key.stat.exists
  50. - not proxy_ca_crt.stat.exists
  51. - name: Copy Aggregator Signer certs to host
  52. copy:
  53. src: "{{ certtemp.stdout }}/{{ item }}"
  54. dest: "/etc/origin/master/{{ item }}"
  55. with_items:
  56. - front-proxy-ca.crt
  57. - front-proxy-ca.key
  58. when:
  59. - not proxy_ca_key.stat.exists
  60. - not proxy_ca_crt.stat.exists
  61. # oc_adm_ca_server_cert:
  62. # cert: /etc/origin/master/front-proxy-ca.crt
  63. # key: /etc/origin/master/front-proxy-ca.key
  64. - name: Check for first master api-client config
  65. stat:
  66. path: /etc/origin/master/aggregator-front-proxy.kubeconfig
  67. register: first_front_proxy_kubeconfig
  68. delegate_to: "{{ first_master }}"
  69. - name: Create first master api-client config for Aggregator
  70. command: >
  71. oc adm create-api-client-config
  72. --certificate-authority=/etc/origin/master/front-proxy-ca.crt
  73. --signer-cert=/etc/origin/master/front-proxy-ca.crt
  74. --signer-key=/etc/origin/master/front-proxy-ca.key
  75. --user aggregator-front-proxy
  76. --client-dir=/etc/origin/master
  77. --signer-serial=/etc/origin/master/ca.serial.txt
  78. delegate_to: "{{ first_master }}"
  79. when:
  80. - not first_front_proxy_kubeconfig.stat.exists
  81. - name: Check for api-client config
  82. stat:
  83. path: /etc/origin/master/aggregator-front-proxy.kubeconfig
  84. register: front_proxy_kubeconfig
  85. - name: Copy api-client config from first master
  86. fetch:
  87. src: "/etc/origin/master/{{ item }}"
  88. dest: "{{ certtemp.stdout }}/{{ item }}"
  89. flat: yes
  90. delegate_to: "{{ first_master }}"
  91. with_items:
  92. - aggregator-front-proxy.crt
  93. - aggregator-front-proxy.key
  94. - aggregator-front-proxy.kubeconfig
  95. when:
  96. - not front_proxy_kubeconfig.stat.exists
  97. - name: Copy api-client config to host
  98. copy:
  99. src: "{{ certtemp.stdout }}/{{ item }}"
  100. dest: "/etc/origin/master/{{ item }}"
  101. with_items:
  102. - aggregator-front-proxy.crt
  103. - aggregator-front-proxy.key
  104. - aggregator-front-proxy.kubeconfig
  105. when:
  106. - not front_proxy_kubeconfig.stat.exists
  107. - name: copy tech preview extension file for service console UI
  108. copy:
  109. src: openshift-ansible-catalog-console.js
  110. dest: /etc/origin/master/openshift-ansible-catalog-console.js
  111. - name: Update master config
  112. yedit:
  113. state: present
  114. src: /etc/origin/master/master-config.yaml
  115. edits:
  116. - key: aggregatorConfig.proxyClientInfo.certFile
  117. value: aggregator-front-proxy.crt
  118. - key: aggregatorConfig.proxyClientInfo.keyFile
  119. value: aggregator-front-proxy.key
  120. - key: authConfig.requestHeader.clientCA
  121. value: front-proxy-ca.crt
  122. - key: authConfig.requestHeader.clientCommonNames
  123. value: [aggregator-front-proxy]
  124. - key: authConfig.requestHeader.usernameHeaders
  125. value: [X-Remote-User]
  126. - key: authConfig.requestHeader.groupHeaders
  127. value: [X-Remote-Group]
  128. - key: authConfig.requestHeader.extraHeaderPrefixes
  129. value: [X-Remote-Extra-]
  130. - key: assetConfig.extensionScripts
  131. value: [/etc/origin/master/openshift-ansible-catalog-console.js]
  132. - key: kubernetesMasterConfig.apiServerArguments.runtime-config
  133. value: [apis/settings.k8s.io/v1alpha1=true]
  134. - key: admissionConfig.pluginConfig.PodPreset.configuration.kind
  135. value: DefaultAdmissionConfig
  136. - key: admissionConfig.pluginConfig.PodPreset.configuration.apiVersion
  137. value: v1
  138. - key: admissionConfig.pluginConfig.PodPreset.configuration.disable
  139. value: false
  140. register: yedit_output
  141. #restart master serially here
  142. - name: restart master
  143. systemd: name={{ openshift.common.service_type }}-master state=restarted
  144. when:
  145. - yedit_output.changed
  146. - openshift.master.ha is not defined or not openshift.master.ha | bool
  147. - name: restart master api
  148. systemd: name={{ openshift.common.service_type }}-master-api state=restarted
  149. when:
  150. - yedit_output.changed
  151. - openshift.master.ha is defined and openshift.master.ha | bool
  152. - openshift.master.cluster_method == 'native'
  153. - name: restart master controllers
  154. systemd: name={{ openshift.common.service_type }}-master-controllers state=restarted
  155. when:
  156. - yedit_output.changed
  157. - openshift.master.ha is defined and openshift.master.ha | bool
  158. - openshift.master.cluster_method == 'native'
  159. - name: Verify API Server
  160. # Using curl here since the uri module requires python-httplib2 and
  161. # wait_for port doesn't provide health information.
  162. command: >
  163. curl --silent --tlsv1.2
  164. {% if openshift.common.version_gte_3_2_or_1_2 | bool %}
  165. --cacert {{ openshift.common.config_base }}/master/ca-bundle.crt
  166. {% else %}
  167. --cacert {{ openshift.common.config_base }}/master/ca.crt
  168. {% endif %}
  169. {{ openshift.master.api_url }}/healthz/ready
  170. args:
  171. # Disables the following warning:
  172. # Consider using get_url or uri module rather than running curl
  173. warn: no
  174. register: api_available_output
  175. until: api_available_output.stdout == 'ok'
  176. retries: 120
  177. delay: 1
  178. changed_when: false
  179. when:
  180. - yedit_output.changed
  181. - name: Delete temp directory
  182. file:
  183. name: "{{ certtemp.stdout }}"
  184. state: absent
  185. changed_when: False