generate_hawkular_certificates.yaml 5.5 KB

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