如何在 Kubernetes 中获取动态密钥的 configmap 值

How can I get configmap value where the key is dynamic in Kubernetes

在我的一个部署文件中,我想设置一个环境变量。变量是 KUBE_VERSION,必须从 ConfigMap 中获取值。

  kube_1_21: 1.21.10_1550

这是我想将 1.21.10_1550 设置为 KUBE_VERSION 的 ConfigMap 的一部分,但如果群集是 IKS 1.20,则密钥将为:

kube_1_20: 1.20.21_3456

kube_ 始终是静态的。如何使用正则表达式设置环境变量?

这类东西:


 - name: KUBE_VERSION
            valueFrom:
              configMapKeyRef:
                 name: cluster-info
                 key: "kube_1*"

据我所知,很遗憾,您无法使用正则表达式。此外,您还有关于验证输入数据的正则表达式的信息:

regex used for validation is '[-._a-zA-Z0-9]+')

因此您必须输入 key 作为字母数字字符串,此外您还可以使用字符 -_. 所以这是不可能的在这个地方使用正则表达式。

要解决此问题,您可以编写自定义脚本,即在 Bash 中并将正确的行替换为 sed command