generate_hawkular_certificates.yaml 4.7 KB

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