[英]Kubernetes kubectl command to lookup Key in configMap or Secrets
我有大約 10 個 ConfigMap 和一些秘密,它們將我的配置存儲在鍵和值中。 我正在尋找可以用來在任何可用的 configMap 或機密中找到我的密鑰的任何 kubectl 命令? 我知道我可以打開每個文件並找到我的密鑰,但是是否有任何kubectl
命令可以查找所有 configMap 或 Serects 以找到我的密鑰?
這可能不是最好的解決方案,但它有效,目前這是我想到的唯一方法。 如果我能找到不同的解決方案,我會編輯這個答案。
如果您的kubectl
命令將僅指定沒有特定名稱的resource
,它將打印來自該指定資源的所有對象的信息。 kubectl describe cm
將打印所有ConfigMaps
的描述
為了測試,我從文檔示例(使用 data.game.properties 和 data.ui.properties)創建了 5 個ConfigMap 。 在其中 3 個中,我使用值1
、 3
或5
設置了相同的鍵test
。
$ kubectl get cm
NAME DATA AGE
cm1 1 20m
cm2 1 21m
cm3 1 21m
cm4 1 21m
cm5 1 21m
所以最簡單的方法是只使用kubest get cm -o yaml
它將以 YAML 格式打印所有ConfigMaps
,然后通過鍵或值打印grep
它們。
$ kubectl get cm -o yaml | grep test
test=configmap1
{"apiVersion":"v1","data":{"game.properties":"enemies=aliens\nlives=3\ntest=configmap1\n"},"kind":"ConfigMap","metadata":{"annotations":{},"name":"cm1","namespace":"default"}}
test=configmap3
{"apiVersion":"v1","data":{"game.properties":"secret.code.allowed=true\nsecret.code.lives=30\ntest=configmap3\n"},"kind":"ConfigMap","metadata":{"annotations":{},"name":"cm3","namespace":"default"}}
test=configmap5
{"apiVersion":"v1","data":{"ui.properties":"allow.textmode=true\nhow.nice.to.look=fairlyNice \ntest=configmap5\n"},"kind":"ConfigMap","metadata":{"annotations":{},"name":"cm5","namespace":"default"}}
所以cm1
包括test=configmap1
, cm3
包括test=configmap3
和cm5
包括test=configmap5
。 您也可以使用JSON
YAML
此外,由於ConfigMap
是namespaced
,您可以使用-A
標志來檢查所有namespaces
。
$ kubectl get cm -o yaml -A | grep test
它可能難以閱讀,但在控制台 output 中會突出顯示。
你可以對Secrets做同樣的事情。
創建以下 kubectl 插件
#!/bin/bash
kubectl get secrets -o go-template='{{range $s:=.items}}{{range $k,$v:=$s.data}}{{printf "Secret %s: %s\n" $s.metadata.name $k}}{{end}}{{end}}' | grep -i $1
kubectl get configmap -o go-template='{{range $s:=.items}}{{range $k,$v:=$s.data}}{{printf "CM %s: %s\n" $s.metadata.name $k}}{{end}}{{end}}' | grep -i $1
它必須位於您的執行路徑上的某個位置並且是可執行的
# Make script executable
chmod +x /home/mark/bin/kubectl-find-key
# Check it can be found
kubectl plugin list
最后可以如下使用
$ kubectl find key database
CM myapp-details: DATABASE_HOSTNAME
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.