Кубернетес / kubectl распечатать все секреты - PullRequest
0 голосов
/ 11 мая 2018

Я хотел бы использовать kubectl для распечатки всех пар ключ-значение в моих секретах.Я не могу понять, как это сделать в одной строке с флагом -o --jsonpath или по трубопроводу jq.Я, конечно, мог бы сделать сценарий для этого, но я чувствую, что должен быть лучший способ, учитывая, что графический интерфейс kubernetes довольно прост и либерален, когда вы позволяете вам просматривать секреты.

Скажем, я создаю секрет вот так:

kubectl create secret generic testsecret --from-literal=key1=val1 --from-literal=key2=val2

Теперь я могу запустить kubectl get secret testsecret -o json, чтобы получить что-то вроде:

{
    "apiVersion": "v1",
    "data": {
        "key1": "dmFsMQ==",
        "key2": "dmFsMg=="
    },
    ...
}

Я могу сделать что-то вроде

kubectl get secret testsecret -o jsonpath='{.data}'

или

kubectl get secret testsecret -o json | jq '.data'

, чтобы получить мои пары ключ-значение в формате не в списке , тогда мне нужно будет base64 --decodeзначения.

Какой самый простой способ получить чистый список всех моих пар ключ-значение?Бонусные баллы за выполнение всех секретов (в отличие от одного конкретного, как я сделал здесь).

1 Ответ

0 голосов
/ 11 мая 2018

Достаточно недавние версии jq имеют фильтр для декодирования base64, но его можно использовать, только если закодированное значение является допустимой строкой JSON.

В любом случае, вы можете начать с попытки:

.data | map_values(@base64d)
...