Compare commits
5 Commits
Author | SHA1 | Date | |
---|---|---|---|
960122974e | |||
2914c5f444 | |||
011ee485aa | |||
dac88324a5 | |||
e89ef4c1ec |
20
README.md
20
README.md
@ -3,16 +3,28 @@
|
|||||||
|
|
||||||
kubers is a super simple tool that reveals k8s secrets using kubectl and yq
|
kubers is a super simple tool that reveals k8s secrets using kubectl and yq
|
||||||
|
|
||||||
|
The tool requires `yq` and `kubectl`
|
||||||
|
|
||||||
Usage:
|
Usage:
|
||||||
kubers [-V | --version] [-h | --help] [-n | --namespace <namespace>] [-c <name>=<value>]
|
kubers [-V | --version] [-h | --help] [-n | --namespace <namespace>] [-c <name>=<value>]
|
||||||
<secret_name> [<entry_name>]
|
<secret_name> [<entry_name>]
|
||||||
|
|
||||||
Examples:
|
Examples:
|
||||||
If you want to reveal all entries in the current k8s namespace
|
If you want to reveal all entries in the current k8s namespace
|
||||||
$ kubers
|
|
||||||
|
```
|
||||||
|
$ kubers $SECRET_NAME
|
||||||
|
```
|
||||||
|
|
||||||
If you want to reveal only one entry from the secret in the current namepspace
|
If you want to reveal only one entry from the secret in the current namepspace
|
||||||
$ kubers
|
|
||||||
|
```
|
||||||
|
$ kubers $SECRET_NAME $SECRET_ENTRY
|
||||||
|
```
|
||||||
|
|
||||||
If you want to reveal a secret from another namespace
|
If you want to reveal a secret from another namespace
|
||||||
$ kubers -n
|
|
||||||
|
```
|
||||||
|
$ kubers -n $SECRET_NAME
|
||||||
|
```
|
||||||
|
|
@ -20,6 +20,7 @@ funcion _kubers() {
|
|||||||
_values compadd $(kubectl get namespaces --no-headers -o custom-columns=":metadata.name")
|
_values compadd $(kubectl get namespaces --no-headers -o custom-columns=":metadata.name")
|
||||||
;;
|
;;
|
||||||
secret)
|
secret)
|
||||||
|
NAMESPACE=$(kubectl config view --minify -o jsonpath='{..namespace}')
|
||||||
for (( i = 1; i <= $#words - 1; i++ )); do
|
for (( i = 1; i <= $#words - 1; i++ )); do
|
||||||
if [[ $words[$i] == -n || $words[$i] == --namespace ]]; then
|
if [[ $words[$i] == -n || $words[$i] == --namespace ]]; then
|
||||||
NAMESPACE=$words[$((i+1))]
|
NAMESPACE=$words[$((i+1))]
|
||||||
@ -40,4 +41,4 @@ funcion _kubers() {
|
|||||||
_values compadd $(for KEY in $(kubectl --namespace $NAMESPACE get secret $SECRET_NAME -o yaml | yq '.data | keys' | sed -e "s/- //"); do echo $KEY; done)
|
_values compadd $(for KEY in $(kubectl --namespace $NAMESPACE get secret $SECRET_NAME -o yaml | yq '.data | keys' | sed -e "s/- //"); do echo $KEY; done)
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
|
16
kubers
16
kubers
@ -11,13 +11,21 @@ KUBERS_VERSION=0.1.0
|
|||||||
function append_to_secret() {
|
function append_to_secret() {
|
||||||
SECRET=$1
|
SECRET=$1
|
||||||
KEY=$2
|
KEY=$2
|
||||||
|
QUIET=$3
|
||||||
VALUE=$(kubectl -n $NAMESPACE get secret $SECRET -o yaml| yq ".data.\"$KEY\"" | base64 -d)
|
VALUE=$(kubectl -n $NAMESPACE get secret $SECRET -o yaml| yq ".data.\"$KEY\"" | base64 -d)
|
||||||
|
SECRET_DATA="test"
|
||||||
if (( $(grep -c . <<<"$VALUE") > 1 )); then
|
if (( $(grep -c . <<<"$VALUE") > 1 )); then
|
||||||
SECRET="$KEY: |-\n$(echo $VALUE| sed -e 's/^/ /')"
|
SECRET_DATA="|-\n$(echo $VALUE| sed -e 's/^/ /')"
|
||||||
|
SECRET="$KEY: $SECRET_DATA"
|
||||||
else
|
else
|
||||||
SECRET="$KEY: $VALUE"
|
SECRET_DATA="$VALUE"
|
||||||
|
SECRET="$KEY: $SECRET_DATA"
|
||||||
|
fi
|
||||||
|
if [[ $QUIET != "" ]]; then
|
||||||
|
printf "$VALUE"
|
||||||
|
else
|
||||||
|
printf "$SECRET"
|
||||||
fi
|
fi
|
||||||
printf "$SECRET"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function show_help() {
|
function show_help() {
|
||||||
@ -104,7 +112,7 @@ fi
|
|||||||
|
|
||||||
SECRET=()
|
SECRET=()
|
||||||
if [[ $SECRET_ENTRY != "" ]]; then
|
if [[ $SECRET_ENTRY != "" ]]; then
|
||||||
SECRET+=$(append_to_secret $SECRET_NAME $SECRET_ENTRY)
|
SECRET+=$(append_to_secret $SECRET_NAME $SECRET_ENTRY 1)
|
||||||
else
|
else
|
||||||
for SECRET_ENTRY in $(kubectl -n $NAMESPACE get secret $SECRET_NAME -o yaml | yq '.data | keys' | sed -e "s/- //"); do
|
for SECRET_ENTRY in $(kubectl -n $NAMESPACE get secret $SECRET_NAME -o yaml | yq '.data | keys' | sed -e "s/- //"); do
|
||||||
SECRET+=("$(append_to_secret $SECRET_NAME $SECRET_ENTRY)");
|
SECRET+=("$(append_to_secret $SECRET_NAME $SECRET_ENTRY)");
|
||||||
|
Reference in New Issue
Block a user