【问题标题】:Helm referring to kubernetes secrets in enviroment variablesHelm 引用环境变量中的 Kubernetes 机密
【发布时间】:2021-07-29 15:28:37
【问题描述】:

我在 helm 安装中使用了一些环境变量,并希望使用 k8s 密码隐藏密码。

values.yaml

env:
  USER_EMAIL: "test@test.com"
  USER_PASSWORD: "p8ssword"

我想通过 kubernetes 秘密 mysecrets 添加密码,使用创建的

# file: mysecrets.yaml
apiVersion: v1
kind: Secret
metadata:
  name: mysecrets
type: Opaque
data:
  test_user_password: cGFzc3dvcmQ=


然后将其添加到values.yaml

  - name: TEST_USER_PASSWORD
    valueFrom:
      secretKeyRef:
        name: mysecrets
        key: test_user_password

然后我在部署中使用以下内容

        env:
          {{- range $key, $value := $.Values.env }}
          - name: {{ $key }}
            value: {{ $value | quote }}
          {{- end }}

是否可以在values.yaml 中混合环境变量的格式,即,

env:
  USER_EMAIL: "test@test.com"
  - name: USER_PASSWORD
    valueFrom:
      secretKeyRef:
        name: mysecrets
        key: test_user_password

或者有没有办法引用原始格式中的秘密?

【问题讨论】:

    标签: kubernetes-helm


    【解决方案1】:

    计划 1:

    最简单的实现方法之一

    你可以直接使用yaml文件注入的方式,把env部分原封不动的放在这里,这样你就可以将kv表单值和ref表单值写入到需要的格式的values中了。

    如下:

    values.yaml

    env:
      - name: "USER_EMAIL"
        value: "test@test.com"
      - name: "USER_PASSWORD"
        valueFrom:
          secretKeyRef:
            name: mysecrets
            key: test_user_password
    

    deployment.yaml

    containers:
      - name: {{ .Chart.Name }}
        env:
          {{ toYaml .Values.env | nindent xxx }}
        {{- end }}
    

    (ps: xxx --> 实际缩进)

    计划 2:

    通过判断类型来区分场景。

    如下:

    values.yaml

    env:
      USER_EMAIL: 
        type: "kv"
        value: "test@test.com"
      USER_PASSWORD: 
        type: "secretRef"
        name: mysecrets
        key: p8ssword
      USER_CONFIG:
        type: "configmapRef"
        name: myconfigmap
        key: mycm
    

    deployment.yaml

    containers:
      - name: {{ .Chart.Name }}
        env: 
          {{- range $k, $v := .Values.env }}
          - name: {{ $k | quote }}
          {{- if eq $v.type "kv" }}
            value: {{ $v.value | quote }}
          {{- else if eq $v.type "secretRef" }}
            valueFrom:
              secretKeyRef:
                name: {{ $v.name | quote }}
                key: {{ $v.key | quote }}
          {{- else if eq $v.type "configmapRef" }}
            valueFrom:
              configMapKeyRef:
                name: {{ $v.name | quote }}
                key: {{ $v.key | quote }}
          {{- end }}
          {{- end }}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-05-08
      • 2020-07-22
      • 2019-07-04
      • 2023-01-22
      • 2021-10-29
      • 2020-10-05
      • 1970-01-01
      相关资源
      最近更新 更多