如何在 helm chart 中引用 kubernetes secrets?
How to reference kubernetes secrets in helm chart?
我想使用 helm 图表在 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 secret,例如:
kubectl create secret generic schemapass --from-literal=password='pincloud'
现在我不知道如何在我的 yaml 文件中引用这个新生成的秘密。关于如何在 yaml 图表中设置 schemapass 字段以引用 kubernetes secret 的任何提示?
您不能在 values.yaml
中使用 Kubernetes 密钥。在 values.yaml
中,您只需指定 Helm Chart 的输入参数,因此它可以是秘密名称,而不是秘密本身(或它解析的任何内容)。
如果你想在你的容器中使用这个秘密,那么你可以将它作为一个环境变量插入:
env:
- name: SECRET_VALUE_ENV
valueFrom:
secretKeyRef:
name: schemapass
key: password
您可以在 Hazelcast Enterprise Helm Chart 中查看更多信息。我们正是这样做的。您在 values.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
我想使用 helm 图表在 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 secret,例如:
kubectl create secret generic schemapass --from-literal=password='pincloud'
现在我不知道如何在我的 yaml 文件中引用这个新生成的秘密。关于如何在 yaml 图表中设置 schemapass 字段以引用 kubernetes secret 的任何提示?
您不能在 values.yaml
中使用 Kubernetes 密钥。在 values.yaml
中,您只需指定 Helm Chart 的输入参数,因此它可以是秘密名称,而不是秘密本身(或它解析的任何内容)。
如果你想在你的容器中使用这个秘密,那么你可以将它作为一个环境变量插入:
env:
- name: SECRET_VALUE_ENV
valueFrom:
secretKeyRef:
name: schemapass
key: password
您可以在 Hazelcast Enterprise Helm Chart 中查看更多信息。我们正是这样做的。您在 values.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