Created
October 24, 2022 01:38
-
-
Save v0lkan/5d199187b395c8b8f3cf2d10ae81cc69 to your computer and use it in GitHub Desktop.
Revisions
-
v0lkan created this gist
Oct 24, 2022 .There are no files selected for viewing
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 charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,31 @@ #!/usr/bin/env bash # Dumps everything in your Kubernetes cluster into folders a YAML files. # Use it at your own risk. set -e CONTEXT=“$1” if [[ -z ${CONTEXT} ]]; then echo “Usage: $0 KUBE-CONTEXT” exit 1 fi NAMESPACES=$(kubectl —context ${CONTEXT} get -o json namespaces|jq ‘.items[].metadata.name’|sed “s/\”//g”) RESOURCES=$(kubectl api-resources —namespaced -o name | tr “\n” “ “) # Note that the above will put some presure on the API server, you might want to # use something less agressive, similar to this: # RESOURCES=“configmap secret daemonset deployment service hpa” for ns in ${NAMESPACES};do for resource in ${RESOURCES};do rsrcs=$(kubectl —context ${CONTEXT} -n ${ns} get -o json ${resource}|jq ‘.items[].metadata.name’|sed “s/\”//g”) for r in ${rsrcs};do dir=“${CONTEXT}/${ns}/${resource}” mkdir -p “${dir}” kubectl —context ${CONTEXT} -n ${ns} get -o yaml ${resource} ${r} > “${dir}/${r}.yaml” done done done