K8s的秘密组成
K8s secret composition
我正在使用 helm/k8s 部署第三方 (prisma) 容器。容器需要一个类似于
的 yaml 形式的环境变量
port: 4466
managementApiSecret: $PRISMA_SECRET
databases:
default:
connector: postgres
host: postgresql
port: 5432
user: postgres
password: $PG_SECRET
migrations: true
我可以访问 postgres 密码和 managementApiSecret 作为单独机密中的值。我正在尝试创建 pod 来获取这两个秘密并使用它们来创建环境变量。我目前尝试的解决方案看起来像这样。
containers:
- name: prisma
image: 'prismagraphql/prisma:1.14'
ports:
- name: prisma-4466
containerPort: 4466
env:
- name: PG_SECRET
valueFrom:
secretKeyRef:
name: postgresql
key: postgres-password
- name: PRISMA_CONFIG
value: |
port: 4466
managementApiSecret: $PRISMA_SECRET
databases:
default:
connector: postgres
host: postgresql
port: 5432
user: postgres
password: $PG_SECRET
migrations: true
这似乎行不通(因为秘密是在 kubectl 申请时评估的?)。有没有其他方法可以使用秘密信息创建环境变量?
来自 envvar 文档:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.12/#envvar-v1-core
Variable references $(VAR_NAME) are expanded using the previous defined environment variables in the container and any service environment variables.
您的第二个 envvar 可以使用早期 envvar 的值作为 $(PG_SECRET)
我正在使用 helm/k8s 部署第三方 (prisma) 容器。容器需要一个类似于
的 yaml 形式的环境变量port: 4466
managementApiSecret: $PRISMA_SECRET
databases:
default:
connector: postgres
host: postgresql
port: 5432
user: postgres
password: $PG_SECRET
migrations: true
我可以访问 postgres 密码和 managementApiSecret 作为单独机密中的值。我正在尝试创建 pod 来获取这两个秘密并使用它们来创建环境变量。我目前尝试的解决方案看起来像这样。
containers:
- name: prisma
image: 'prismagraphql/prisma:1.14'
ports:
- name: prisma-4466
containerPort: 4466
env:
- name: PG_SECRET
valueFrom:
secretKeyRef:
name: postgresql
key: postgres-password
- name: PRISMA_CONFIG
value: |
port: 4466
managementApiSecret: $PRISMA_SECRET
databases:
default:
connector: postgres
host: postgresql
port: 5432
user: postgres
password: $PG_SECRET
migrations: true
这似乎行不通(因为秘密是在 kubectl 申请时评估的?)。有没有其他方法可以使用秘密信息创建环境变量?
来自 envvar 文档:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.12/#envvar-v1-core
Variable references $(VAR_NAME) are expanded using the previous defined environment variables in the container and any service environment variables.
您的第二个 envvar 可以使用早期 envvar 的值作为 $(PG_SECRET)