generate_hawkular_certificates.yaml 3.7 KB

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