generate_hawkular_certificates.yaml 5.6 KB

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