gpt4 book ai didi

kubernetes - 部署yaml中的 Helm 引用 secret

转载 作者:行者123 更新时间:2023-12-04 02:03:53 24 4
gpt4 key购买 nike

我正在寻找一种可能的方法来引用我的 deployment.yaml(1 行)中的 secret

目前我正在使用

containers:
- name: {{ template "myapp.name" . }}
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
imagePullPolicy: Always
env:
- name: COUCHDB_USER
valueFrom:
secretKeyRef:
name: {{ .Release.Name }}-secrets
key: COUCHDB_USER
- name: COUCHDB_PASSWORD
valueFrom:
secretKeyRef:
name: {{ .Release.Name }}-secrets
key: COUCHDB_PASSWORD

通过尽可能小的修改,我想实现这样的目标:

containers:
- name: {{ template "myapp.name" . }}
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
imagePullPolicy: Always
env:
- name: COUCHDB_URL
value: http://${COUCHDB_USER}:${COUCHDB_PASSWORD}@{{ .Release.Name }}-couchdb:5984

如果我可以在部署期间的 1 步中执行此操作,而不是传递 2 个 env vars 并在我的应用程序中解析它们,那就太糟糕了。

最佳答案

如果不设置 COUCHDB_USER,我看不到任何实现它的方法和 COUCHDB_PASSWORD在容器环境中。

一种解决方法是,您可以在 container.EnvFrom 中指定您的 secret 。和你所有的 secret keys将转换为环境变量。然后,您可以使用这些环境变量来创建复合环境(即 COUCHDB_URL)。

仅供引用,要从 kubernetes 中的另一个 env 创建 env,()用来。花括号{}在这一刻不会工作。

一个样本是,

apiVersion: v1
kind: Secret
metadata:
name: mysecret
type: Opaque
data:
COUCHDB_USER: YWRtaW4=
COUCHDB_PASSWORD: MWYyZDFlMmU2N2Rm
---
apiVersion: v1
kind: Pod
metadata:
name: secret-env-pod
spec:
containers:
- name: mycontainer
image: redis
envFrom:
- secretRef:
name: mysecret
env:
- name: COUCHDB_URL
value: http://$(COUCHDB_USER):$(COUCHDB_PASSWORD)rest-of-the-url

您可以确认,输出,
$ kubectl exec -it secret-env-pod bash

root@secret-env-pod:/data# env | grep COUCHDB
COUCHDB_URL=http://admin:1f2d1e2e67dfrest-of-the-url
COUCHDB_PASSWORD=1f2d1e2e67df
COUCHDB_USER=admin

在您的情况下,容器的 yaml 是:

    containers:
- name: {{ template "myapp.name" . }}
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
imagePullPolicy: Always
envFrom:
- secretRef:
name: {{ .Release.Name }}-secrets
env:
- name: COUCHDB_URL
value: http://$(COUCHDB_USER):$(COUCHDB_PASSWORD)@{{ .Release.Name }}-couchdb:5984

关于kubernetes - 部署yaml中的 Helm 引用 secret ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54121153/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com