setup_certificate.yaml 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. ---
  2. - name: generate {{ component }} keys
  3. command: >
  4. {{ openshift.common.admin_binary }} ca create-server-cert
  5. --config={{ mktemp.stdout }}/admin.kubeconfig
  6. --key='{{ openshift_metrics_certs_dir }}/{{ component }}.key'
  7. --cert='{{ openshift_metrics_certs_dir }}/{{ component }}.crt'
  8. --hostnames='{{ hostnames }}'
  9. --signer-cert='{{ openshift_metrics_certs_dir }}/ca.crt'
  10. --signer-key='{{ openshift_metrics_certs_dir }}/ca.key'
  11. --signer-serial='{{ openshift_metrics_certs_dir }}/ca.serial.txt'
  12. when: not '{{ openshift_metrics_certs_dir }}/{{ component }}.key'|exists
  13. - name: generate {{ component }} certificate
  14. shell: >
  15. cat
  16. '{{ openshift_metrics_certs_dir | quote }}/{{ component|quote }}.key'
  17. '{{ openshift_metrics_certs_dir | quote }}/{{ component|quote }}.crt'
  18. > '{{ openshift_metrics_certs_dir | quote }}/{{ component|quote }}.pem'
  19. when: not '{{ openshift_metrics_certs_dir }}/{{ component }}.pem'|exists
  20. - name: generate random password for the {{ component }} keystore
  21. shell: >
  22. tr -dc _A-Z-a-z-0-9 < /dev/urandom | head -c15
  23. > '{{ openshift_metrics_certs_dir | quote }}/{{ component|quote }}-keystore.pwd'
  24. when: >
  25. not '{{ openshift_metrics_certs_dir }}/{{ component }}-keystore.pwd'|exists
  26. - name: create the {{ component }} pkcs12 from the pem file
  27. command: >
  28. openssl pkcs12 -export
  29. -in '{{ openshift_metrics_certs_dir }}/{{ component }}.pem'
  30. -out '{{ openshift_metrics_certs_dir }}/{{ component }}.pkcs12'
  31. -name '{{ component }}' -noiter -nomaciter
  32. -password
  33. 'file:{{ openshift_metrics_certs_dir }}/{{ component }}-keystore.pwd'
  34. when: not '{{ openshift_metrics_certs_dir }}/{{ component }}.pkcs12'|exists
  35. - name: create the {{ component }} keystore from the pkcs12 file
  36. shell: >
  37. p=$(< {{ openshift_metrics_certs_dir }}/{{ component }}-keystore.pwd)
  38. &&
  39. keytool -v -importkeystore
  40. -srckeystore '{{ openshift_metrics_certs_dir | quote }}/{{ component | quote }}.pkcs12'
  41. -srcstoretype PKCS12
  42. -destkeystore '{{ openshift_metrics_certs_dir | quote }}/{{ component | quote}}.keystore'
  43. -deststoretype JKS
  44. -deststorepass "$p"
  45. -srcstorepass "$p"
  46. when: not '{{ openshift_metrics_certs_dir }}/{{ component }}.keystore'|exists
  47. - name: generate random password for the {{ component }} truststore
  48. shell: >
  49. tr -dc _A-Z-a-z-0-9 < /dev/urandom | head -c15
  50. > '{{ openshift_metrics_certs_dir | quote }}/{{ component|quote }}-truststore.pwd'
  51. when: >
  52. not
  53. '{{ openshift_metrics_certs_dir | quote }}/{{ component| quote }}-truststore.pwd'|exists