提问者:小点点

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


我想使用helm图表在kubernetes中进行一些部署。这是我使用的示例override-value 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秘密的提示吗?


共2个答案

匿名用户

您不能在value. yaml中使用库伯内特斯秘密。在value.yaml中,您只指定Helm图表的输入参数,因此它可能是秘密名称,但不是秘密本身(或它解析的任何内容)。

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

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

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

匿名用户

您可以在Helm中引用K8S值(无论是否为机密),方法是在容器中将它们指定为环境变量。

让您的部署成为mongo. yml

--
kind: Deployment
   --
      --
      containers:
        --
        env:
        - name: DB_URL
          valueFrom:
            configMapKeyRef:
              name: mongo-config
              key: mongo-url
        - name: MONGO_INITDB_ROOT_PASSWORD
          valueFrom:
            secretKeyRef:
              name: mongo-secret
              key: mongo-password  

mongo秘密在哪里

apiVersion: v1
kind: Secret
metadata:
  name: mongo-secret
type: Opaque
data:
  mongo-user: bW9uZ291c2Vy
  mongo-password: bW9uZ29wYXNzd29yZA==

mongo配置是

apiVersion: v1
kind: ConfigMap
metadata:
  name: mongo-config
data:
  mongo-url: mongo-service