Skip to content

Instantly share code, notes, and snippets.

@danton721
Last active March 8, 2024 02:20
Show Gist options
  • Select an option

  • Save danton721/5b5b468ffbf8202ac1dfc55443cbb132 to your computer and use it in GitHub Desktop.

Select an option

Save danton721/5b5b468ffbf8202ac1dfc55443cbb132 to your computer and use it in GitHub Desktop.
Backup all resources in kubernetes
#!/usr/bin/env bash
# Using "--insecure-skip-tls-verify" as I need to backup a cluster before certificate rotation where already expired.
# Below script should create the following structure: ./{namespace}/{resouce-type}/{resouce-name}.yaml
for NAMESPACE in $(kubectl get ns --insecure-skip-tls-verify --no-headers -o custom-columns=":metadata.name")
do
for n in $(kubectl get -n $NAMESPACE --insecure-skip-tls-verify -o=name pvc,configmap,serviceaccount,secret,ingress,service,deployment,statefulset,hpa,job,cronjob)
do
mkdir -p $(dirname $NAMESPACE/$n)
kubectl get -n $NAMESPACE --insecure-skip-tls-verify -o=yaml $n > $NAMESPACE/$n.yaml
done
done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment