Skip to content

Instantly share code, notes, and snippets.

@olegy-ait
Forked from negz/kubedump.sh
Last active August 16, 2019 07:38
Show Gist options
  • Select an option

  • Save olegy-ait/b2b6563eb0231e1f3f892ddf9e5631b9 to your computer and use it in GitHub Desktop.

Select an option

Save olegy-ait/b2b6563eb0231e1f3f892ddf9e5631b9 to your computer and use it in GitHub Desktop.
Dump Kubernetes cluster resources as YAML
#!/usr/bin/env bash
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="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
echo 'Dump helm releases'
RELEASES=$(helm list -q --kube-context ${CONTEXT})
for release in ${RELEASES};do
dir="${CONTEXT}/helm/${release}"
mkdir -p "${dir}"
helm get ${release} --kube-context ${CONTEXT} > ${dir}/${release}_release.yaml
helm get values ${release} --kube-context ${CONTEXT} > ${dir}/${release}_values.yaml
done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment