forked from codeready-toolchain/toolchain-e2e
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathclean.mk
More file actions
113 lines (99 loc) · 5.6 KB
/
clean.mk
File metadata and controls
113 lines (99 loc) · 5.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
WAS_ALREADY_PAIRED_FILE=/tmp/toolchain_e2e_already_paired
.PHONY: clean
## Remove vendor directory and runs go clean command
clean:
$(Q)-rm -rf ${V_FLAG} $(OUT_DIR) ./vendor
$(Q)go clean ${X_FLAG} ./...
.PHONY: clean-users
## Delete usersignups in the OpenShift cluster. The deleted resources are:
## * all usersignups including user namespaces and banned users
clean-users:
$(Q)-oc delete usersignups --all --all-namespaces
$(Q)-oc delete bannedusers --all --all-namespaces
$(Q)-oc delete spacerequests --all --all-namespaces
$(Q)-oc delete spaces --all --all-namespaces
$(Q)-oc wait --for=delete namespaces -l toolchain.dev.openshift.com/type
clean-nstemplatetiers:
$(Q)-oc delete nstemplatetier --all --all-namespaces
$(Q)-oc wait --for=delete nstemplatetier --all --all-namespaces
.PHONY: clean-cluster-wide-config
## Delete all cluster-wide configuration resources like PriorityClass, MutatingWebhookConfiguration, and ClusterRoleBinding for e2e SA
clean-cluster-wide-config:
$(Q)-oc get ClusterRoleBinding -o name | grep e2e-service-account | xargs oc delete
$(Q)-oc delete ClusterRoleBinding e2e-test-cluster-admin
$(Q)-oc get ClusterRole -o jsonpath="{range .items[*]}{.metadata.name} {.metadata.labels.olm\.owner}{'\n'}{end}" | grep "toolchain-" | awk '{print $$1}' | xargs oc delete ClusterRole
$(Q)-oc get ClusterRoleBinding -o jsonpath="{range .items[*]}{.metadata.name} {.metadata.labels.olm\.owner}{'\n'}{end}" | grep "toolchain-" | awk '{print $$1}' | xargs oc delete ClusterRoleBinding
$(Q)-oc delete PriorityClass -l='toolchain.dev.openshift.com/provider=codeready-toolchain'
$(Q)-oc delete MutatingWebhookConfiguration -l='toolchain.dev.openshift.com/provider=codeready-toolchain'
$(Q)-oc delete ValidatingWebhookConfiguration -l='toolchain.dev.openshift.com/provider=codeready-toolchain'
.PHONY: clean-toolchain-namespaces-in-e2e
## Delete e2e namespaces
clean-toolchain-namespaces-in-e2e:
$(Q)-oc get projects --output=name | grep -E "toolchain-(member|host)(\-operator)?(\-[0-9]+)?" | xargs oc delete
.PHONY: clean-toolchain-dev-sso-resources
## Delete resources in the dev sso namespace
clean-toolchain-dev-sso-resources:
$(Q)-oc delete keycloak -n ${DEV_SSO_NS} --all --wait
$(Q)-oc delete keycloakrealm -n ${DEV_SSO_NS} --all
.PHONY: clean-e2e-resources
## Delete resources in the OpenShift cluster. The deleted resources are:
## * all user-related resources
## * operator namespaces created during both the dev and e2e test setup (for both operators host and member)
## * cluster-wide config
clean-e2e-resources: clean-users clean-nstemplatetiers clean-toolchain-namespaces-in-e2e clean-cluster-wide-config
.PHONY: clean-toolchain-namespaces-in-dev
## Delete dev namespaces
clean-toolchain-namespaces-in-dev: clean-toolchain-dev-sso-resources
$(Q)oc delete namespace ${DEV_HOST_NS} || true
$(Q)oc delete namespace ${DEV_MEMBER_NS} || true
$(Q)oc delete namespace ${DEV_SSO_NS} || true
.PHONY: clean-dev-resources
## Delete resources in the OpenShift cluster. The deleted resources are:
## * all user-related resources
## * operator namespaces created during both the dev and e2e test setup (for both operators host and member)
## * cluster-wide config
clean-dev-resources: clean-users clean-toolchain-namespaces-in-dev clean-cluster-wide-config
.PHONY: clean-e2e-files
## Remove files and directories used during e2e test setup
clean-e2e-files:
rm -f ${WAS_ALREADY_PAIRED_FILE} 2>/dev/null || true
rm -rf ${IMAGE_NAMES_DIR} 2>/dev/null || true
.PHONY: clean-all-toolchain-resources
## Delete resources in the OpenShift cluster. The deleted resources are:
## * all toolchain.dev.openshift.com CRs in both host and member namespaces created during the dev setup
## * all ClusterresourceQuotas with the label toolchain.dev.openshift.com/provider=codeready-toolchain in member namespace
clean-all-toolchain-resources:
$(Q)echo "cleaning resources"
$(Q)oc delete usersignups --all --all-namespaces
$(Q)for CRD in `oc get crd -o name | grep toolchain`; do \
echo "deleting $${CRD}"; \
CRD_NAME=`oc get $${CRD} --template '{{.metadata.name}}'`; \
oc delete $${CRD_NAME} --all --all-namespaces; \
done
$(Q)oc get clusterresourcequotas -l "toolchain.dev.openshift.com/provider"=codeready-toolchain --all-namespaces
.PHONY: clean-toolchain-crds
## Delete all Toolchain CRDs
clean-toolchain-crds:
$(Q)for CRD in `oc get crd -o name | grep toolchain`; do \
CRD_NAME=`oc get $${CRD} --template '{{.metadata.name}}'`; \
oc delete crd $${CRD_NAME}; \
done
.PHONY: force-remove-finalizers-from-e2e-resources
## Sometimes after a failed run, the cluster doesn't have our operators running but still contain our resources
## with finalizers. This target removes those finalizers so that the subsequent call to some "clean-*" target
## doesn't get stuck.
## This goal is not called by default so that an attempt to clean up "cleanly" is always attempted first. If that
## fails, you can call this goal explicitly before attempting the cleanup again.
force-remove-finalizers-from-e2e-resources:
$(Q)for CRD in `oc get crd -o name | grep toolchain`; do \
CRD_NAME=`oc get $${CRD} --template='{{.metadata.name}}'`; \
for RES in `oc get $${CRD_NAME} --all-namespaces -ogo-template='{{range .items}}{{.metadata.name}},{{if ne .metadata.namespace nil}}{{.metadata.namespace}}{{else}}{{end}}{{"\n"}}{{end}}'`; do \
NAME=`echo $${RES} | cut -d',' -f1`; \
NS=`echo $${RES} | cut -d',' -f2`; \
if [ -z "$$NS" ]; then \
oc patch $${CRD_NAME} $${NAME} -p '{"metadata":{"finalizers": null}}' --type=merge; \
else \
oc patch $${CRD_NAME} $${NAME} -n $${NS} -p '{"metadata":{"finalizers": null}}' --type=merge; \
fi \
done \
done