Skip to content

Commit

Permalink
Sync with Longhorn manager
Browse files Browse the repository at this point in the history
commit 8e060dce288c4dfa054a4b0a188559e624aeb3c8
Author: James Oliver <joliver@rancher.com>
Date:   Fri Aug 31 16:09:06 2018 -0700

    Add script to tear down Longhorn system
  • Loading branch information
yasker committed Aug 31, 2018
1 parent a7c768a commit d7b574a
Showing 2 changed files with 70 additions and 0 deletions.
5 changes: 5 additions & 0 deletions examples/deployment.yaml
Original file line number Diff line number Diff line change
@@ -30,6 +30,8 @@ metadata:
labels:
app: mysql
spec:
strategy:
type: Recreate
template:
metadata:
labels:
@@ -47,6 +49,9 @@ spec:
volumeMounts:
- name: mysql-volume
mountPath: /var/lib/mysql
env:
- name: MYSQL_ROOT_PASSWORD
value: "rancher"
volumes:
- name: mysql-volume
persistentVolumeClaim:
65 changes: 65 additions & 0 deletions scripts/cleanup.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
#!/bin/bash

NAMESPACE=${NAMESPACE:-longhorn-system}

remove_and_wait() {
local crd=$1
out=`kubectl -n ${NAMESPACE} delete $crd --all 2>&1`
if [ $? -ne 0 ]; then
echo $out
break
fi
while true; do
out=`kubectl -n ${NAMESPACE} get $crd -o yaml | grep 'items: \[\]'`
if [ $? -eq 0 ]; then
break
fi
echo $out
sleep 1
done
echo all $crd instances deleted
}

remove_crd_instances() {
remove_and_wait volumes.longhorn.rancher.io
# TODO: remove engines and replicas once we fix https://github.com/rancher/longhorn/issues/273
remove_and_wait engines.longhorn.rancher.io
remove_and_wait replicas.longhorn.rancher.io
remove_and_wait engineimages.longhorn.rancher.io
remove_and_wait settings.longhorn.rancher.io
# do this one last; manager crashes
remove_and_wait nodes.longhorn.rancher.io
}

# Delete driver related workloads in specific order
remove_driver() {
kubectl -n ${NAMESPACE} delete daemonset.apps/longhorn-csi-plugin
kubectl -n ${NAMESPACE} delete statefulset.apps/csi-attacher
kubectl -n ${NAMESPACE} delete service/csi-attacher
kubectl -n ${NAMESPACE} delete statefulset.apps/csi-provisioner
kubectl -n ${NAMESPACE} delete service/csi-provisioner
kubectl -n ${NAMESPACE} delete daemonset.apps/longhorn-flexvolume-driver
kubectl -n ${NAMESPACE} delete deployment.apps/longhorn-driver-deployer
}

# Delete all workloads in the namespace
remove_workloads() {
kubectl -n ${NAMESPACE} get daemonset.apps -o yaml | kubectl delete -f -
kubectl -n ${NAMESPACE} get deployment.apps -o yaml | kubectl delete -f -
kubectl -n ${NAMESPACE} get replicaset.apps -o yaml | kubectl delete -f -
kubectl -n ${NAMESPACE} get statefulset.apps -o yaml | kubectl delete -f -
kubectl -n ${NAMESPACE} get pods -o yaml | kubectl delete -f -
kubectl -n ${NAMESPACE} get service -o yaml | kubectl delete -f -
}

# Delete CRD definitions with longhorn.rancher.io in the name
remove_crds() {
for crd in $(kubectl get crd -o jsonpath={.items[*].metadata.name} | tr ' ' '\n' | grep longhorn.rancher.io); do
kubectl delete crd/$crd
done
}

remove_crd_instances
remove_driver
remove_workloads
remove_crds

0 comments on commit d7b574a

Please sign in to comment.