Skip to content

Instantly share code, notes, and snippets.

@panki
Created October 25, 2023 00:40
Show Gist options
  • Save panki/13321500b690d870552ead99d0d96d10 to your computer and use it in GitHub Desktop.
Save panki/13321500b690d870552ead99d0d96d10 to your computer and use it in GitHub Desktop.
Query sealed secrets from kubernetes cluster
#!/bin/bash
while [[ "$#" -gt 0 ]]; do
case $1 in
-n|--namespace)
NAMESPACE="$2"
shift
;;
-s|--secret)
SECRET_NAME="$2"
shift
;;
*)
echo "Unknown parameter: $1"
exit 1
;;
esac
shift
done
if [ -z "$NAMESPACE" ]; then
NAMESPACE="--all-namespaces"
else
NAMESPACE="-n $NAMESPACE"
fi
KUBECTL_GET_SECRETS="kubectl get secret $NAMESPACE -o json | jq -c '.items[] | select(.metadata.ownerReferences[0].kind == \"SealedSecret\") | {namespace: .metadata.namespace, name: .metadata.name, data: .data}'"
while IFS= read -r line; do
namespace=$(echo "$line" | jq -r '.namespace')
name=$(echo "$line" | jq -r '.name')
data=$(echo "$line" | jq -r '.data')
for key in $(echo "$data" | jq -r 'keys[]'); do
if [ -n "$SECRET_NAME" ] && [ "$key" != "$SECRET_NAME" ]; then
continue
fi
value=$(echo "$data" | jq -r ".$key" | base64 -d)
echo "$namespace | $name | $key = $value"
done
done <<< "$(eval $KUBECTL_GET_SECRETS)"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment