Kubernetes 如何从多个ConfigMap资源构建DSN env?

Kubernetes 如何从多个ConfigMap资源构建DSN env?,kubernetes,Kubernetes,为了使服务正常工作,它需要一个名为DSN的环境变量,它会打印成postgres://user:password@postgres.svc.cluster.local:5432/数据库。我使用ConfigMap资源生成的此值: apiVersion: v1 kind: ConfigMap metadata: name: idp-config namespace: diary data: DSN: postgres://user:password@postgres.svc.cluster

为了使服务正常工作,它需要一个名为
DSN
的环境变量,它会打印成
postgres://user:password@postgres.svc.cluster.local:5432/数据库
。我使用
ConfigMap
资源生成的此值:

apiVersion: v1
kind: ConfigMap
metadata:
  name: idp-config
  namespace: diary
data:
  DSN: postgres://user:password@postgres.svc.cluster.local:5432/database

此ConfigMap作为环境变量装载在我的service Pod中。由于这些值不同于
user
password
,并且这些PostgreSQL凭据位于另一个k8s资源中(a
Secret
和a
ConfigMap
),如何在k8s资源yaml中正确构建此
DSN
环境,以便我的服务可以连接到数据库?

深入挖掘我能够找到的Kubernetes文档。根据:

您在Pod配置中定义的环境变量可以在配置中的其他位置使用,例如在为Pod容器设置的命令和参数中。在下面的示例配置中,GREETING、HONORIFIC和NAME环境变量分别设置为Warm GREETING to、the Most honorible和Kubernetes。然后,在传递给env print demo容器的CLI参数中使用这些环境变量

apiVersion: v1
kind: Pod
metadata:
  name: print-greeting
spec:
  containers:
  - name: env-print-demo
    image: bash
    env:
    - name: GREETING
      value: "Warm greetings to"
    - name: HONORIFIC
      value: "The Most Honorable"
    - name: NAME
      value: "Kubernetes"
    command: ["echo"]
    args: ["$(GREETING) $(HONORIFIC) $(NAME)"]