Tool for gracefully performing power maintenance on Kubernetes clusters that rely on Rook-based Ceph storage.
- Identifies any Deployments and StatefulSets that use Rook-based storage and scales them to zero replicas
- Stops Ceph components in specific order to ensure data integrity
- Applies flags to the Ceph cluster to prevent unnecessary rebalancing
- Waits for Ceph to become healthy before resuming workflows that rely on it
If Argo Workflows is available in your Kubernetes cluster and it does not rely on Rook-based Ceph storage to operate, then kube-power can be triggered by an operator from a WorkflowTemplate.
kubectl kustomize "https://github.com/ianunruh/kube-power.git/deploy/argo?ref=v1.0.1" | \
kubectl apply -n kube-system -f-
git clone https://github.com/ianunruh/kube-power.git
cd kube-power
# Edit job.yaml as needed for performing different steps
kubectl apply -k deploy/job
go install github.com/ianunruh/kube-power@v1.0.1
kube-power suspend
kube-power resume
kube-power phase SuspendOperators --dry-run