如何在掌舵图中引用kubernetes的秘密?

时间:2019-10-18 08:42:23

标签: kubernetes kubernetes-helm kubernetes-secrets

我想使用头盔图在kubernetes中进行一些部署。这是我使用的样本覆盖值Yaml:

imageRepository: ""

ocbb:
    imagePullPolicy: IfNotPresent
    TZ: UTC
    logDir: /oms_logs
    tnsAdmin: /oms/ora_k8
    LOG_LEVEL: 3
    wallet:
        client: 
        server: 
        root:
    db:
        deployment:
            imageName: init_db
            imageTag:
        host: 192.168.88.80
        port:
        service:
        alias:
        schemauser: pincloud
        schemapass:
        schematablespace: pincloud
        indextablespace: pincloudx
        nls_lang: AMERICAN_AMERICA.AL32UTF8
        charset: AL32UTF8
        pipelineschemauser: ifwcloud
        pipelineschemapass:
        pipelineschematablespace: ifwcloud
        pipelineindextablespace: ifwcloudx
        pipelinealias:
        queuename:

在此文件中,我必须设置一些涉及凭证的值,例如schemapass,pipelineschemapass ... 文档说明,我必须生成kubernetes机密才能执行此操作,并将此密钥添加到具有相同路径层次结构的yaml文件中。

我生成了一些kubernetes机密,例如:

kubectl create secret generic schemapass --from-literal=password='pincloud'

现在,我不知道如何在yaml文件中引用这个新生成的秘密。关于如何在Yaml图表中设置schemapass字段以引用kubernetes机密的任何技巧?

1 个答案:

答案 0 :(得分:3)

您不能在values.yaml中使用Kubernetes机密。在values.yaml中,您仅指定“舵图”的输入参数,因此它可以是秘密名称,但不能是秘密本身(或它所解析的任何内容)。

如果您想在容器中使用机密,则可以将其作为环境变量插入:

env:
- name: SECRET_VALUE_ENV
  valueFrom:
    secretKeyRef:
      name: schemapass
      key: password

您可以在Hazelcast Enterprise Helm Chart中查看更多信息。我们正是这样做的。您在values.yaml中指定密钥名称,然后使用环境变量将密钥注入到容器中。

相关问题