Alp*_*esh 3 kubernetes kubernetes-helm kubernetes-secrets configmap
我有一个 configMap 文件:
apiVersion: v1
kind: ConfigMap
metadata:
labels:
owner: testdb
name: testdb-configmap
data:
host: postgres
port: "5432"
Run Code Online (Sandbox Code Playgroud)
和一个秘密文件:
aapiVersion: v1
kind: Secret
type: Opaque
metadata:
labels:
owner: testdb
name: testdb-secret
namespace: test
data:
user: dGVzdA==
pwd: dGVzdA==
Run Code Online (Sandbox Code Playgroud)
我想构建一个环境变量,CONNECTION_STRING
如下所示:
env:
- name: CONNECTION_STRING
value: "Host=<host-from-configmap>;Username=<user-from-secret>;Password=<password-from-secret>;Port=<port-from-configmap>;Pooling=False;"
Run Code Online (Sandbox Code Playgroud)
我想知道这是否可能,如果可以,那么如何?我也考虑过使用.tpl
(命名模板),但找不到方法。
笔记
由于我无权访问图像,因此CONNECTION_STRING
我必须以这种方式构建它。这些配置映射和秘密文件也将保持这样。
Dav*_*aze 11
Kubernetes 可以根据其他环境变量设置环境变量。这是 Kubernetes Pod 的核心功能,不依赖于 Helm 的任何内容。
您的值使用四个组件,两个来自 ConfigMap,两个来自 Secret。您需要将其中每一个声明为单独的环境变量,然后声明一个将它们连接在一起的主环境变量。
env:
- name: TESTDB_HOST
valueFrom:
configMapKeyRef:
name: testdb-configmap # {{ include "chart.name" . }}
key: host
- name: TESTDB_PORT
valueFrom:
configMapKeyRef:
name: testdb-configmap
key: port
- name: TESTDB_USER
valueFrom:
secretKeyRef:
name: testdb-secret
key: user
- name: TESTDB_PASSWORD
valueFrom:
secretKeyRef:
name: testdb-secret
key: password
- name: CONNECTION_STRING
value: Host=$(TESTDB_HOST);Username=$(TESTDB_USER);Password=$(TESTDB_PASSWORD);PORT=$(TESTDB_PORT);Pooling=False;
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2883 次 |
最近记录: |