99# - ODH operator namespace (odh-operator)
1010# - OpenDataHub application namespace (opendatahub)
1111# - MaaS subscription namespace (models-as-a-service)
12+ # - Keycloak identity provider (if deployed)
1213# - ODH CRDs (optional)
1314#
1415# Usage: ./cleanup-odh.sh [--include-crds]
@@ -123,33 +124,52 @@ for policy_ns in kuadrant-system rh-connectivity-link; do
123124 " authorinos.operator.authorino.kuadrant.io" " kuadrants.kuadrant.io" " limitadors.limitador.kuadrant.io"
124125done
125126
126- # 11. Delete llm namespace and model resources
127- echo " 11. Deleting LLM models and namespace..."
127+ # 11. Delete Keycloak identity provider (if installed)
128+ echo " 11. Deleting Keycloak namespace (if installed)..."
129+ SCRIPT_DIR=" $( cd " $( dirname " ${BASH_SOURCE[0]} " ) " && cd ../.. && pwd) "
130+ if [[ -f " ${SCRIPT_DIR} /scripts/cleanup-keycloak.sh" ]]; then
131+ # Pass --delete-crds if --include-crds was specified for this script
132+ if $INCLUDE_CRDS ; then
133+ " ${SCRIPT_DIR} /scripts/cleanup-keycloak.sh" --force --delete-crds 2> /dev/null || true
134+ else
135+ " ${SCRIPT_DIR} /scripts/cleanup-keycloak.sh" --force 2> /dev/null || true
136+ fi
137+ else
138+ # Fallback if cleanup script not found - direct cleanup
139+ force_delete_namespace " keycloak-system" " keycloaks.k8s.keycloak.org"
140+ if $INCLUDE_CRDS ; then
141+ kubectl delete crd keycloaks.k8s.keycloak.org --ignore-not-found 2> /dev/null || true
142+ kubectl delete crd keycloakrealmimports.k8s.keycloak.org --ignore-not-found 2> /dev/null || true
143+ fi
144+ fi
145+
146+ # 12. Delete llm namespace and model resources
147+ echo " 12. Deleting LLM models and namespace..."
128148force_delete_namespace " llm" " llminferenceservice" " inferenceservice" " maasmodelrefs.maas.opendatahub.io"
129149
130- # 12 . Delete gateway resources in openshift-ingress
131- echo " 12 . Deleting gateway resources..."
150+ # 13 . Delete gateway resources in openshift-ingress
151+ echo " 13 . Deleting gateway resources..."
132152kubectl delete gateway maas-default-gateway -n openshift-ingress --ignore-not-found 2> /dev/null || true
133153kubectl delete envoyfilter -n openshift-ingress -l kuadrant.io/managed=true --ignore-not-found 2> /dev/null || true
134154kubectl delete envoyfilter kuadrant-auth-tls-fix -n openshift-ingress --ignore-not-found 2> /dev/null || true
135155kubectl delete authpolicy -n openshift-ingress --all --ignore-not-found 2> /dev/null || true
136156kubectl delete ratelimitpolicy -n openshift-ingress --all --ignore-not-found 2> /dev/null || true
137157kubectl delete tokenratelimitpolicy -n openshift-ingress --all --ignore-not-found 2> /dev/null || true
138158
139- # 13 . Delete MaaS RBAC (ClusterRoles, ClusterRoleBindings - can conflict with other managers)
140- echo " 13 . Deleting MaaS RBAC..."
159+ # 14 . Delete MaaS RBAC (ClusterRoles, ClusterRoleBindings - can conflict with other managers)
160+ echo " 14 . Deleting MaaS RBAC..."
141161kubectl delete clusterrolebinding maas-api maas-controller-rolebinding --ignore-not-found 2> /dev/null || true
142162kubectl delete clusterrole maas-api maas-controller-role --ignore-not-found 2> /dev/null || true
143163
144- # 14 . Optionally delete CRDs
164+ # 15 . Optionally delete CRDs
145165if $INCLUDE_CRDS ; then
146- echo " 14 . Deleting ODH CRDs..."
166+ echo " 15 . Deleting ODH CRDs..."
147167 kubectl delete crd datascienceclusters.datasciencecluster.opendatahub.io --ignore-not-found 2> /dev/null || true
148168 kubectl delete crd dscinitializations.dscinitialization.opendatahub.io --ignore-not-found 2> /dev/null || true
149169 kubectl delete crd datasciencepipelinesapplications.datasciencepipelinesapplications.opendatahub.io --ignore-not-found 2> /dev/null || true
150170 # Add more CRDs as needed
151171else
152- echo " 14 . Skipping CRD deletion (use --include-crds to remove CRDs)"
172+ echo " 15 . Skipping CRD deletion (use --include-crds to remove CRDs)"
153173fi
154174
155175echo " "
@@ -158,4 +178,4 @@ echo ""
158178echo " Verify cleanup with:"
159179echo " kubectl get subscription -A | grep -i odh"
160180echo " kubectl get csv -A | grep -i odh"
161- echo " kubectl get ns | grep -E 'odh|opendatahub|models-as-a-service|kuadrant|rh-connectivity-link|llm'"
181+ echo " kubectl get ns | grep -E 'odh|opendatahub|models-as-a-service|kuadrant|rh-connectivity-link|keycloak-system| llm'"
0 commit comments