main.yml 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. ---
  2. # Ensures a CertManager instance is deployed and configured with a CA.
  3. - name: See if the Cert Manager project is there.
  4. kubernetes.core.k8s_info:
  5. kubeconfig: tmp/kubeconfig-ocp4
  6. validate_certs: no
  7. api_version: v1
  8. kind: namespace
  9. name: cert-manager
  10. register: cmgr_ns
  11. - name: Fail if not so.
  12. ansible.builtin.assert:
  13. that:
  14. - cmgr_ns.resources is defined
  15. - cmgr_ns.resources | length == 1
  16. success_msg: "OK, CertManager namespace found."
  17. fail_msg: "FATAL: CertManager namespace is missing. Ensure the operator is deployed before proceeding."
  18. - name: See if the CertManager CSV is there as well.
  19. kubernetes.core.k8s_info:
  20. kubeconfig: tmp/kubeconfig-ocp4
  21. validate_certs: no
  22. api_version: operators.coreos.com/v1alpha1
  23. kind: clusterserviceversion
  24. namespace: cert-manager
  25. label_selectors:
  26. - operators.coreos.com/openshift-cert-manager-operator.cert-manager=
  27. register: cmgr_csv
  28. - name: Fail if not so.
  29. ansible.builtin.assert:
  30. that:
  31. - cmgr_csv.resources is defined
  32. - cmgr_csv.resources | length > 0
  33. success_msg: "OK, CertManager CSV found."
  34. fail_msg: "FATAL: CertManager CSV is missing. Ensure the operator is deployed before proceeding."
  35. - name: Read the CA cert on workstation as a fact
  36. ansible.builtin.slurp:
  37. src: "{{ ansible_facts['user_dir'] }}/ca/ca-cert.pem"
  38. register: ca_cert
  39. - name: Read the CA key on workstation as a fact
  40. ansible.builtin.slurp:
  41. src: "{{ ansible_facts['user_dir'] }}/ca/ca-key.pem"
  42. register: ca_key
  43. - name: Ensure a TLS secret containing the two is there
  44. kubernetes.core.k8s:
  45. kubeconfig: tmp/kubeconfig-ocp4
  46. validate_certs: no
  47. api_version: v1
  48. kind: secret
  49. namespace: cert-manager
  50. name: cert-manager-ca-secret
  51. resource_definition:
  52. type: kubernetes.io/tls
  53. data:
  54. tls.crt: "{{ ca_cert.content }}"
  55. tls.key: "{{ ca_key.content }}"
  56. - name: Ensure a cert manager instance is there
  57. kubernetes.core.k8s:
  58. kubeconfig: tmp/kubeconfig-ocp4
  59. validate_certs: no
  60. api_version: operator.openshift.io/v1alpha1
  61. kind: certmanager
  62. name: cluster
  63. resource_definition:
  64. spec: {}
  65. - name: Ensure a cluster issuer is there
  66. kubernetes.core.k8s:
  67. kubeconfig: tmp/kubeconfig-ocp4
  68. validate_certs: no
  69. api_version: cert-manager.io/v1
  70. kind: clusterissuer
  71. name: cluster-cert-issuer
  72. resource_definition:
  73. spec:
  74. ca:
  75. secretName: cert-manager-ca-secret
  76. ...