absent.yml 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. ---
  2. # remove any realm imports
  3. - name: Delete any realm import for the configured realm.
  4. block:
  5. - name: Remove the template realm import.
  6. kubernetes.core.k8s:
  7. kubeconfig: tmp/kubeconfig-ocp4
  8. validate_certs: no
  9. api_version: k8s.keycloak.org/v2alpha1
  10. kind: keycloakrealmimport
  11. namespace: "{{ rhbk.namespace | default('keycloak') }}"
  12. name: "{{ rhbk.name | default('sso') }}-{{ rhbk.realm | default('sample-realm') }}-import"
  13. state: absent
  14. # remove the route
  15. - name: Remove the re-encrypt route.
  16. kubernetes.core.k8s:
  17. kubeconfig: tmp/kubeconfig-ocp4
  18. validate_certs: no
  19. api_version: route.openshift.io/v1
  20. kind: route
  21. namespace: "{{ rhbk.namespace | default('keycloak') }}"
  22. name: "{{ rhbk.name | default('sso') }}"
  23. state: absent
  24. - name: Check whether the Keycloak service exists (to remove the annotation from it).
  25. kubernetes.core.k8s_info:
  26. kubeconfig: tmp/kubeconfig-ocp4
  27. validate_certs: no
  28. api_version: v1
  29. kind: service
  30. namespace: "{{ rhbk.namespace | default('keycloak') }}"
  31. name: "{{ rhbk.name | default('sso') }}-service"
  32. register: service_is_there
  33. # remove the annotation from the service
  34. - name: Remove the TLS annotation from the service.
  35. kubernetes.core.k8s_json_patch:
  36. kubeconfig: tmp/kubeconfig-ocp4
  37. validate_certs: no
  38. api_version: v1
  39. kind: service
  40. namespace: "{{ rhbk.namespace | default('keycloak') }}"
  41. name: "{{ rhbk.name | default('sso') }}-service"
  42. patch:
  43. - op: remove
  44. path: /metadata/annotations/service.beta.openshift.io~1serving-cert-secret-name
  45. when:
  46. - service_is_there.resources is defined
  47. - service_is_there.resources | length == 1
  48. - service_is_there.resources[0].metadata is defined
  49. - service_is_there.resources[0].metadata.annotations is defined
  50. - service_is_there.resources[0].metadata.annotations.keys() is contains("service.beta.openshift.io/serving-cert-secret-name")
  51. # remove the tls secret
  52. - name: Remove the TLS secret.
  53. kubernetes.core.k8s:
  54. kubeconfig: tmp/kubeconfig-ocp4
  55. validate_certs: no
  56. api_version: v1
  57. kind: secret
  58. namespace: "{{ rhbk.namespace | default('keycloak') }}"
  59. name: "{{ rhbk.name | default('sso') }}-tls"
  60. state: absent
  61. # remove the keycloak
  62. - name: Remove the Keycloak.
  63. kubernetes.core.k8s:
  64. kubeconfig: tmp/kubeconfig-ocp4
  65. validate_certs: no
  66. api_version: k8s.keycloak.org/v2alpha1
  67. kind: keycloak
  68. namespace: "{{ rhbk.namespace | default('keycloak') }}"
  69. name: "{{ rhbk.name | default('sso') }}"
  70. state: absent
  71. # TODO: Wait for anything here?
  72. # remove bootstrap secret
  73. - name: Remove the bootstrap credentials secret.
  74. kubernetes.core.k8s:
  75. kubeconfig: tmp/kubeconfig-ocp4
  76. validate_certs: no
  77. api_version: v1
  78. kind: secret
  79. namespace: "{{ rhbk.namespace | default('keycloak') }}"
  80. name: "{{ rhbk.name | default('sso') }}-auth"
  81. state: absent
  82. # remove db service
  83. - name: Remove the database service.
  84. kubernetes.core.k8s:
  85. kubeconfig: tmp/kubeconfig-ocp4
  86. validate_certs: no
  87. api_version: v1
  88. kind: service
  89. namespace: "{{ rhbk.namespace | default('keycloak') }}"
  90. name: "{{ rhbk.name | default('sso') }}-db"
  91. state: absent
  92. # remove db sts
  93. - name: Remove the database statefulset.
  94. kubernetes.core.k8s:
  95. kubeconfig: tmp/kubeconfig-ocp4
  96. validate_certs: no
  97. api_version: apps/v1
  98. kind: statefulset
  99. namespace: "{{ rhbk.namespace | default('keycloak') }}"
  100. name: "{{ rhbk.name | default('sso') }}-db"
  101. state: absent
  102. # remove db credential secret
  103. - name: Remove the database credentials secret.
  104. kubernetes.core.k8s:
  105. kubeconfig: tmp/kubeconfig-ocp4
  106. validate_certs: no
  107. api_version: v1
  108. kind: secret
  109. namespace: "{{ rhbk.namespace | default('keycloak') }}"
  110. name: "{{ rhbk.name | default('sso') }}-db-auth"
  111. state: absent
  112. # remove pvcs
  113. - name: Finally, remove the PVC(s).
  114. kubernetes.core.k8s:
  115. kubeconfig: tmp/kubeconfig-ocp4
  116. validate_certs: no
  117. api_version: v1
  118. kind: persistentvolumeclaim
  119. namespace: "{{ rhbk.namespace | default('keycloak') }}"
  120. # TODO: if rhbk.db.replicas is implemented this will need to become a loop
  121. name: "{{ rhbk.name | default('sso') }}-db-data-{{ rhbk.name | default('sso') }}-db-0"
  122. state: absent
  123. ...