Skip to content

Commit

Permalink
Delete resources before opertor deleted (#248)
Browse files Browse the repository at this point in the history
* delete serviceinstances and servicebindings before operator



---------

Co-authored-by: I501080 <keren.lahav@sap.com>
  • Loading branch information
TalShorSap and kerenlahav authored Feb 22, 2023
1 parent 1a556dc commit ebc4035
Show file tree
Hide file tree
Showing 3 changed files with 73 additions and 0 deletions.
6 changes: 6 additions & 0 deletions config/samples/services_v1_servicebinding2.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
apiVersion: services.cloud.sap.com/v1
kind: ServiceBinding
metadata:
name: sample-binding-2
spec:
serviceInstanceName: sample-instance-1
7 changes: 7 additions & 0 deletions config/samples/services_v1_serviceinstance2.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
apiVersion: services.cloud.sap.com/v1
kind: ServiceInstance
metadata:
name: sample-instance-2
spec:
serviceOfferingName: service-manager
servicePlanName: subaccount-admin
60 changes: 60 additions & 0 deletions sapbtp-operator-charts/templates/pre-delete-job.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
apiVersion: batch/v1
kind: Job
metadata:
name: pre-delete-job
namespace: {{ .Release.Namespace }}
labels:
release: {{ .Release.Name }}
annotations:
"helm.sh/hook": pre-delete
"helm.sh/hook-weight": "0"
"helm.sh/hook-delete-policy": hook-succeeded
spec:
ttlSecondsAfterFinished: 60
completions: 1
backoffLimit: 0
template:
spec:
serviceAccountName: sap-btp-operator
containers:
- name: pre-delete-operator
image: "bitnami/kubectl"
command: ["/bin/sh"]
args:
- "-c"
- |
servicebindingsCRD="servicebindings.services.cloud.sap.com"
kubectl get $servicebindingsCRD -A
kubectl get $servicebindingsCRD -A --output=custom-columns=NAME:.metadata.name,NAMESPACE:.metadata.namespace | tail -n +2 | while read -r line; do
name=$(echo $line | awk '{print $1}')
namespace=$(echo $line | awk '{print $2}')
echo "Deleting binding with Name: $name, and Namespace: $namespace"
timeout 30 kubectl delete $servicebindingsCRD $name -n $namespace
if [ $? -ne 0 ]; then
echo "Failed to delete service binding $name"
exit 1
fi
done
echo "No more bindings found"
serviceinstanceCRD="serviceinstances.services.cloud.sap.com"
kubectl get $serviceinstanceCRD -A
kubectl get $serviceinstanceCRD -A --output=custom-columns=NAME:.metadata.name,NAMESPACE:.metadata.namespace | tail -n +2 | while read -r line; do
name=$(echo $line | awk '{print $1}')
namespace=$(echo $line | awk '{print $2}')
echo "Deleting instance with Name: $name, and Namespace: $namespace"
timeout 30 kubectl delete $serviceinstanceCRD $name -n $namespace
if [ $? -ne 0 ]; then
echo "Failed to delete service instance $name"
exit 1
fi
done
if [ $? -ne 0 ]; then
exit 1
fi
echo "No more instances found"
exit 0
restartPolicy: Never

0 comments on commit ebc4035

Please sign in to comment.