【问题标题】:Kubernetes set env variable to value from configMap after encoding itKubernetes 在编码后将 env 变量设置为来自 configMap 的值
【发布时间】:2020-11-11 23:54:39
【问题描述】:

我有一个与 this example in the docs 非常相似的 Pod 配置文件,我从 configMap 文件中设置了一些环境变量。
现在我需要添加另一个变量,但我需要 base64 对其进行编码。当我通过应用b64enc 函数从values 获取数据时,我可以轻松做到这一点,但是从configMap 获取值时我不知道该怎么做

这是我能做到的

env:
  - name: PLAIN_VALUE
    valueFrom:
      configMapKeyRef:
        name: myconfig
        key: PLAIN_VALUE
  - name: ENCODED_VALUE_FROM_VALUES
    value: {{ .Values.myConfig.plainValue | b64enc | quote }}

我想做类似以下的事情

env:
  - name: ENCODED_VALUE
    valueFrom:
      configMapKeyRef:
        name: myconfig
        key: PLAIN_VALUE
        transformation: b64enc

我怎样才能b64encvalueFrom: configMapKeyRef: myconfig/PLAIN_VALUE
附言configMapRef 也可以,我可以为该值创建一个单独的配置文件。

【问题讨论】:

标签: kubernetes yaml configmap


【解决方案1】:

在这种情况下,您应该使用机密。它对base64 中的值进行编码。

您可以使用kubectl command 轻松创建秘密,例如:

kubectl create secret generic test-secret --from-literal='your_value'

当涉及到passing encoded values to pods 时,它的工作方式与 configmap 类似。

env:
  - name: ENCODED_VALUE
    valueFrom:
      secretKeyRef:
        name: myconfig
        key: value
    

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-29
    • 2023-04-09
    • 2021-09-21
    相关资源
    最近更新 更多