-
-
Save j0ju/05587c5a10b0a626ca55916bea987a17 to your computer and use it in GitHub Desktop.
shutdown rook
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# This script shuts down a rook-ceph cluster | |
# Please DON'T use this. It is only for demonstration purposes. | |
set -eux -o pipefail | |
force=false | |
while getopts "f" arg; do | |
case $arg in | |
f) | |
force=true | |
;; | |
*) | |
echo "usage ..." | |
exit 1 | |
;; | |
esac | |
done | |
if ! kubectl -n rook-ceph exec deploy/rook-ceph-tools -- ceph health | grep -q HEALTH_OK; then | |
>&2 echo "ceph cluster not healthy" | |
if ! $force; then | |
exit 1 | |
fi | |
>&2 echo "using the force to continue" | |
fi | |
# shutdown rook-ceph components | |
bye() { | |
local deployment | |
deployment="$1" | |
kubectl -n rook-ceph scale deploy -l "app=$deployment" --replicas=0 | |
until [[ $(kubectl -n rook-ceph get pods -l "app=$deployment" -ogo-template='{{len .items}}') -eq 0 ]]; do | |
echo "waiting for app=$deployment to scale to 0" | |
sleep 5 | |
done | |
} | |
echo "shutdown rook-ceph-operator" | |
kubectl -n rook-ceph scale deploy/rook-ceph-operator --replicas=0 | |
until [[ $(kubectl -n rook-ceph get pods -l "app=rook-ceph-operator" -ogo-template='{{len .items}}') -eq 0 ]]; do | |
echo "waiting for deploy/rook-ceph-operator to scale to 0" | |
sleep 5 | |
done | |
echo "disable ceph settings" | |
kubectl -n rook-ceph exec deploy/rook-ceph-tools -- ceph osd set noout | |
kubectl -n rook-ceph exec deploy/rook-ceph-tools -- ceph osd set nobackfill | |
kubectl -n rook-ceph exec deploy/rook-ceph-tools -- ceph osd set norecover | |
echo "shutdown rook-ceph-mgr" | |
bye rook-ceph-mgr | |
echo "shutdown rook-ceph-osds" | |
bye rook-ceph-osd | |
until [[ $(kubectl -n rook-ceph exec deploy/rook-ceph-tools -- ceph osd tree up | grep osd | wc -l) -eq 0 ]]; do | |
echo "waiting for osds to be down" | |
echo "you might need to run:" | |
echo " kubectl -n rook-ceph exec deploy/rook-ceph-tools -- ceph osd down osd.X" | |
echo "to mark individual osds" | |
sleep 5 | |
done | |
echo "shutdown rook-ceph-mon" | |
bye rook-ceph-mon | |
echo "To restart the cluster use" | |
echo " kubectl -n rook-ceph scale --replicas=1 deploy/rook-ceph-operator" | |
echo "remember to change out,backfill,recover when you are done" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment