首页 > 解决方案 > Kubernetes kubectl 命令在 configMap 或 Secrets 中查找 Key

问题描述

我有大约 10 个 ConfigMap 和一些秘密,它们将我的配置存储在键和值中。我正在寻找任何可以用来在任何可用的 configMap 或秘密中找到我的密钥的 kubectl 命令?我知道我可以打开每个文件并找到我的密钥,但是是否有任何kubectl命令可以查找所有 configMap 或 Serects 以找到我的密钥?

标签: kubernetes

解决方案


创建以下 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

推荐阅读