假设我有一个ConfigMap:
apiVersion: v1
kind: ConfigMap
metadata:
name: london-tz-config
data:
SERVER_TIMEZONE: "Europe/London"我还有大约50个不同的部署。假设其中有20个使用london-tz-config ConfigMap来设置它们的环境,如下所示
template:
metadata:
labels:
app: echo-app
spec:
containers:
- name: echo-app-container
image: ealen/echo-server:latest
ports:
- containerPort: 8080
env:
- name: SERVER_TIMEZONE
valueFrom:
configMapKeyRef:
name: london-tz-config # Reference our ConfigMap here
key: SERVER_TIMEZONE如果不手动检查集群,我就不知道哪个部署在任何给定的时间使用哪个ConfigMaps。
是否有一种方法可以要求Kubernetes向我展示通过其ConfigMap属性包含对给定metadata.name的引用的所有部署?
无论是kubectl还是Kubernetes都可以。
发布于 2020-10-20 21:04:53
您可以使用kubectl get -o json并使用jq解析输出来迭代部署,匹配任何所需的configMapKeyRef.name并返回部署的uniq列表。
这应该是可行的:
kubectl get deployments --all-namespaces -o json | jq -r '.items | map(select(.spec.template.spec.containers[]?.env[]?.valueFrom.configMapKeyRef.name == "london-tz-config" ) | .metadata.name) | .[]' | uniqhttps://devops.stackexchange.com/questions/12607
复制相似问题