generate_hawkular_certificates.yaml 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183
  1. ---
  2. - name: generate hawkular-metrics certificates
  3. include: setup_certificate.yaml
  4. vars:
  5. component: hawkular-metrics
  6. hostnames: "hawkular-metrics,hawkular-metrics.{{ openshift_metrics_project }}.svc.cluster.local,{{ openshift_metrics_hawkular_hostname }}"
  7. changed_when: no
  8. - name: generate hawkular-cassandra certificates
  9. include: setup_certificate.yaml
  10. vars:
  11. component: hawkular-cassandra
  12. hostnames: hawkular-cassandra
  13. changed_when: no
  14. - slurp: src={{ mktemp.stdout }}/hawkular-cassandra-truststore.pwd
  15. register: cassandra_truststore_password
  16. - slurp: src={{ mktemp.stdout }}/hawkular-metrics-truststore.pwd
  17. register: hawkular_truststore_password
  18. - stat: path="{{mktemp.stdout}}/{{item}}"
  19. register: pwd_file_stat
  20. with_items:
  21. - hawkular-metrics.pwd
  22. - hawkular-metrics.htpasswd
  23. - hawkular-jgroups-keystore.pwd
  24. changed_when: no
  25. - set_fact:
  26. pwd_files: "{{pwd_files | default({}) | combine ({item.item: item.stat}) }}"
  27. with_items: "{{pwd_file_stat.results}}"
  28. changed_when: no
  29. - name: generate password for hawkular metrics and jgroups
  30. local_action: copy dest="{{ local_tmp.stdout}}/{{ item }}.pwd" content="{{ 15 | oo_random_word }}"
  31. with_items:
  32. - hawkular-metrics
  33. - hawkular-jgroups-keystore
  34. - name: generate htpasswd file for hawkular metrics
  35. local_action: >
  36. shell htpasswd -ci
  37. '{{ local_tmp.stdout }}/hawkular-metrics.htpasswd' hawkular
  38. < '{{ local_tmp.stdout }}/hawkular-metrics.pwd'
  39. - name: copy local generated passwords to target
  40. copy:
  41. src: "{{local_tmp.stdout}}/{{item}}"
  42. dest: "{{mktemp.stdout}}/{{item}}"
  43. with_items:
  44. - hawkular-metrics.pwd
  45. - hawkular-metrics.htpasswd
  46. - hawkular-jgroups-keystore.pwd
  47. - include: import_jks_certs.yaml
  48. - name: read files for the hawkular-metrics secret
  49. shell: >
  50. printf '%s: ' '{{ item }}'
  51. && base64 --wrap 0 '{{ mktemp.stdout }}/{{ item }}'
  52. register: hawkular_secrets
  53. with_items:
  54. - ca.crt
  55. - hawkular-metrics.crt
  56. - hawkular-metrics.keystore
  57. - hawkular-metrics-keystore.pwd
  58. - hawkular-metrics.truststore
  59. - hawkular-metrics-truststore.pwd
  60. - hawkular-metrics.pwd
  61. - hawkular-metrics.htpasswd
  62. - hawkular-jgroups.keystore
  63. - hawkular-jgroups-keystore.pwd
  64. - hawkular-cassandra.crt
  65. - hawkular-cassandra.pem
  66. - hawkular-cassandra.keystore
  67. - hawkular-cassandra-keystore.pwd
  68. - hawkular-cassandra.truststore
  69. - hawkular-cassandra-truststore.pwd
  70. changed_when: false
  71. - set_fact:
  72. hawkular_secrets: |
  73. {{ hawkular_secrets.results|map(attribute='stdout')|join('
  74. ')|from_yaml }}
  75. - name: generate hawkular-metrics-secrets secret template
  76. template:
  77. src: secret.j2
  78. dest: "{{ mktemp.stdout }}/templates/hawkular_metrics_secrets.yaml"
  79. vars:
  80. name: hawkular-metrics-secrets
  81. labels:
  82. metrics-infra: hawkular-metrics
  83. data:
  84. hawkular-metrics.keystore: >
  85. {{ hawkular_secrets['hawkular-metrics.keystore'] }}
  86. hawkular-metrics.keystore.password: >
  87. {{ hawkular_secrets['hawkular-metrics-keystore.pwd'] }}
  88. hawkular-metrics.truststore: >
  89. {{ hawkular_secrets['hawkular-metrics.truststore'] }}
  90. hawkular-metrics.truststore.password: >
  91. {{ hawkular_secrets['hawkular-metrics-truststore.pwd'] }}
  92. hawkular-metrics.keystore.alias: "{{ 'hawkular-metrics'|b64encode }}"
  93. hawkular-metrics.htpasswd.file: >
  94. {{ hawkular_secrets['hawkular-metrics.htpasswd'] }}
  95. hawkular-metrics.jgroups.keystore: >
  96. {{ hawkular_secrets['hawkular-jgroups.keystore'] }}
  97. hawkular-metrics.jgroups.keystore.password: >
  98. {{ hawkular_secrets['hawkular-jgroups-keystore.pwd'] }}
  99. hawkular-metrics.jgroups.alias: "{{ 'hawkular'|b64encode }}"
  100. when: name not in metrics_secrets.stdout_lines
  101. changed_when: no
  102. - name: generate hawkular-metrics-certificate secret template
  103. template:
  104. src: secret.j2
  105. dest: "{{ mktemp.stdout }}/templates/hawkular_metrics_certificate.yaml"
  106. vars:
  107. name: hawkular-metrics-certificate
  108. labels:
  109. metrics-infra: hawkular-metrics
  110. data:
  111. hawkular-metrics.certificate: >
  112. {{ hawkular_secrets['hawkular-metrics.crt'] }}
  113. hawkular-metrics-ca.certificate: >
  114. {{ hawkular_secrets['ca.crt'] }}
  115. when: name not in metrics_secrets.stdout_lines
  116. changed_when: no
  117. - name: generate hawkular-metrics-account secret template
  118. template:
  119. src: secret.j2
  120. dest: "{{ mktemp.stdout }}/templates/hawkular_metrics_account.yaml"
  121. vars:
  122. name: hawkular-metrics-account
  123. labels:
  124. metrics-infra: hawkular-metrics
  125. data:
  126. hawkular-metrics.username: "{{ 'hawkular'|b64encode }}"
  127. hawkular-metrics.password: >
  128. {{ hawkular_secrets['hawkular-metrics.pwd'] }}
  129. when: name not in metrics_secrets.stdout_lines
  130. changed_when: no
  131. - name: generate cassandra secret template
  132. template:
  133. src: secret.j2
  134. dest: "{{ mktemp.stdout }}/templates/cassandra_secrets.yaml"
  135. vars:
  136. name: hawkular-cassandra-secrets
  137. labels:
  138. metrics-infra: hawkular-cassandra
  139. data:
  140. cassandra.keystore: >
  141. {{ hawkular_secrets['hawkular-cassandra.keystore'] }}
  142. cassandra.keystore.password: >
  143. {{ hawkular_secrets['hawkular-cassandra-keystore.pwd'] }}
  144. cassandra.keystore.alias: "{{ 'hawkular-cassandra'|b64encode }}"
  145. cassandra.truststore: >
  146. {{ hawkular_secrets['hawkular-cassandra.truststore'] }}
  147. cassandra.truststore.password: >
  148. {{ hawkular_secrets['hawkular-cassandra-truststore.pwd'] }}
  149. cassandra.pem: >
  150. {{ hawkular_secrets['hawkular-cassandra.pem'] }}
  151. when: name not in metrics_secrets
  152. changed_when: no
  153. - name: generate cassandra-certificate secret template
  154. template:
  155. src: secret.j2
  156. dest: "{{ mktemp.stdout }}/templates/cassandra_certificate.yaml"
  157. vars:
  158. name: hawkular-cassandra-certificate
  159. labels:
  160. metrics-infra: hawkular-cassandra
  161. data:
  162. cassandra.certificate: >
  163. {{ hawkular_secrets['hawkular-cassandra.crt'] }}
  164. cassandra-ca.certificate: >
  165. {{ hawkular_secrets['hawkular-cassandra.pem'] }}
  166. when: name not in metrics_secrets.stdout_lines
  167. changed_when: no