【问题标题】:ConfigMap value as input for another variable inside containerConfigMap 值作为容器内另一个变量的输入
【发布时间】:2021-05-12 06:05:14
【问题描述】:

如何将下面部分中声明的 $LOCAL_IP_DB 变量的 ConfigMap 用作另一个声明的变量的输入? $LOCAL_IP_DB 是在db-secret configmap 中定义的通用键,但是还有另一个环境变量需要它吗?如何让它发挥作用?

spec:
      containers:
        - env:
            - name: LOCAL_IP_DB
              valueFrom:
                configMapKeyRef:
                    name: db-secret
                    key: LOCAL_IP_DB
            - name: LOG_Files
              value: \\${LOCAL_IP_DB}\redis\files\

【问题讨论】:

    标签: kubernetes nested environment-variables containers configmap


    【解决方案1】:

    关键是使用:$() 而不是${}

    example-pod.yaml:

    apiVersion: v1
    kind: Pod
    metadata:
      name: example
    spec:
      containers:
      - name: example
        image: bash
        args: [printenv]
        env:
        - name: LOCAL_IP_DB
          valueFrom:
            configMapKeyRef:
              name: db-secret
              key: LOCAL_IP_DB
        - name: LOG_FILES
          value: \$(LOCAL_IP_DB)\redis\files\
    

    example-configmap.yaml:

    apiVersion: v1
    data:
      LOCAL_IP_DB: 192.168.0.1
    kind: ConfigMap
    metadata:
      name: db-secret
    

    测试:

    controlplane $ kubectl apply -f example-pod.yaml -f example-configmap.yaml 
    controlplane $ kubectl logs example | grep 192
    LOCAL_IP_DB=192.168.0.1
    LOG_FILES=\192.168.0.1\redis\files\
    

    您可以在此处找到有关此功能的更多信息:link

    注意,如果您想管理机密,建议使用Secret 方法。

    【讨论】:

      猜你喜欢
      • 2012-03-30
      • 2019-05-08
      • 1970-01-01
      • 2015-11-04
      • 1970-01-01
      • 2021-01-11
      • 2016-01-08
      • 1970-01-01
      • 2018-10-08
      相关资源
      最近更新 更多