Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save developer-guy/b806a6f455880f0bfee48636ce324037 to your computer and use it in GitHub Desktop.
Save developer-guy/b806a6f455880f0bfee48636ce324037 to your computer and use it in GitHub Desktop.
Retrieve super sensitive secret from etcd store via management cli called etcdl
#!/usr/bin/env bash
set -e
set -o errexit
set -o pipefail
TMPDIR=$(mktemp -d)
minikube start
kubectl create secret generic mysuper-secret --from-literal username=batu --from-literal password=s3cr3t --output yaml --dry-run=client > $TMPDIR/supersecret.yaml
ADVERTISE_CLIENT_URL=$(kubectl get pods -n kube-system etcd-minikube -ojsonpath='{range .spec.containers[*]}{.command}{end}' | jq -r '.[]' | grep -i -e "--advertise-client-urls" | awk -F'=' '{print $2}')
kubectl exec -n kube-system etcd-minikube -- sh -c \
"ETCDCTL_API=3 etcdctl \
--endpoints $ADVERTISE_CLIENT_URL \
--cacert /var/lib/minikube/certs/etcd/ca.crt \
--key /var/lib/minikube/certs/etcd/server.key \
--cert /var/lib/minikube/certs/etcd/server.crt \
get \"/registry/secrets/default/mysuper-secret\" --prefix=true -w json" | jq '.kvs[0].value' | cut -d'"' -f2 | base64 --decode