generate_secrets.yaml 3.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. ---
  2. - name: Retrieving the cert to use when generating secrets for the logging components
  3. slurp: src="{{generated_certs_dir}}/{{item.file}}"
  4. register: key_pairs
  5. with_items:
  6. - { name: "ca_file", file: "ca.crt" }
  7. - { name: "kibana_key", file: "system.logging.kibana.key"}
  8. - { name: "kibana_cert", file: "system.logging.kibana.crt"}
  9. - { name: "curator_key", file: "system.logging.curator.key"}
  10. - { name: "curator_cert", file: "system.logging.curator.crt"}
  11. - { name: "fluentd_key", file: "system.logging.fluentd.key"}
  12. - { name: "fluentd_cert", file: "system.logging.fluentd.crt"}
  13. - { name: "kibana_internal_key", file: "kibana-internal.key"}
  14. - { name: "kibana_internal_cert", file: "kibana-internal.crt"}
  15. - { name: "server_tls", file: "server-tls.json"}
  16. - name: Generating secrets for logging components
  17. template: src=secret.j2 dest={{mktemp.stdout}}/templates/{{secret_name}}-secret.yaml
  18. vars:
  19. secret_name: logging-{{component}}
  20. secret_key_file: "{{component}}_key"
  21. secret_cert_file: "{{component}}_cert"
  22. secrets:
  23. - {key: ca, value: "{{key_pairs | entry_from_named_pair('ca_file')| b64decode }}"}
  24. - {key: key, value: "{{key_pairs | entry_from_named_pair(secret_key_file)| b64decode }}"}
  25. - {key: cert, value: "{{key_pairs | entry_from_named_pair(secret_cert_file)| b64decode }}"}
  26. secret_keys: ["ca", "cert", "key"]
  27. with_items:
  28. - kibana
  29. - curator
  30. - fluentd
  31. loop_control:
  32. loop_var: component
  33. when: secret_name not in openshift_logging_facts.{{component}}.secrets or
  34. secret_keys | difference(openshift_logging_facts.{{component}}.secrets["{{secret_name}}"]["keys"]) | length != 0
  35. check_mode: no
  36. changed_when: no
  37. - name: Generating secrets for kibana proxy
  38. template: src=secret.j2 dest={{mktemp.stdout}}/templates/{{secret_name}}-secret.yaml
  39. vars:
  40. secret_name: logging-kibana-proxy
  41. secrets:
  42. - {key: oauth-secret, value: "{{oauth_secret}}"}
  43. - {key: session-secret, value: "{{session_secret}}"}
  44. - {key: server-key, value: "{{kibana_key_file}}"}
  45. - {key: server-cert, value: "{{kibana_cert_file}}"}
  46. - {key: server-tls, value: "{{server_tls_file}}"}
  47. secret_keys: ["server-tls.json", "server-key", "session-secret", "oauth-secret", "server-cert"]
  48. kibana_key_file: "{{key_pairs | entry_from_named_pair('kibana_internal_key')| b64decode }}"
  49. kibana_cert_file: "{{key_pairs | entry_from_named_pair('kibana_internal_cert')| b64decode }}"
  50. server_tls_file: "{{key_pairs | entry_from_named_pair('server_tls')| b64decode }}"
  51. when: secret_name not in openshift_logging_facts.kibana.secrets or
  52. secret_keys | difference(openshift_logging_facts.kibana.secrets["{{secret_name}}"]["keys"]) | length != 0
  53. check_mode: no
  54. changed_when: no
  55. - name: Generating secrets for elasticsearch
  56. command: >
  57. {{openshift.common.client_binary}} --config={{ mktemp.stdout }}/admin.kubeconfig secrets new {{secret_name}}
  58. key={{generated_certs_dir}}/logging-es.jks truststore={{generated_certs_dir}}/truststore.jks
  59. searchguard.key={{generated_certs_dir}}/elasticsearch.jks searchguard.truststore={{generated_certs_dir}}/truststore.jks
  60. admin-key={{generated_certs_dir}}/system.admin.key admin-cert={{generated_certs_dir}}/system.admin.crt
  61. admin-ca={{generated_certs_dir}}/ca.crt admin.jks={{generated_certs_dir}}/system.admin.jks -o yaml
  62. vars:
  63. secret_name: logging-elasticsearch
  64. secret_keys: ["admin-cert", "searchguard.key", "admin-ca", "key", "truststore", "admin-key"]
  65. register: logging_es_secret
  66. when: secret_name not in openshift_logging_facts.elasticsearch.secrets or
  67. secret_keys | difference(openshift_logging_facts.elasticsearch.secrets["{{secret_name}}"]["keys"]) | length != 0
  68. check_mode: no
  69. changed_when: no
  70. - copy: content="{{logging_es_secret.stdout}}" dest={{mktemp.stdout}}/templates/logging-elasticsearch-secret.yaml
  71. when: logging_es_secret.stdout is defined
  72. check_mode: no
  73. changed_when: no