Kubernetes - 嵌套变量的 ConfigMap

Rah*_*ulB 5 kubernetes configmap

我们在 AKS 集群中部署了一个映像,需要在部署期间使用配置映射更新其配置条目。

配置文件具有以下键,我们尝试替换“ChildKey”的值而不替换整个文件 -

{
  "ParentKey": {
    "ChildKey": "123"
  }
}
Run Code Online (Sandbox Code Playgroud)

配置映射看起来像 -

apiVersion: v1
data:
  ParentKey: |
    ChildKey: 456
kind: ConfigMap
name: cf
Run Code Online (Sandbox Code Playgroud)

在部署中,configmap的使用方式如下 -

apiVersion: extensions/v1beta1
kind: Deployment
spec:
  template:
    metadata:
      creationTimestamp: null
      labels:
        app: abc
    spec:
      containers:
      - env:
        - name: ParentKey
          valueFrom:
            configMapKeyRef:
              key: ParentKey
              name: cf
Run Code Online (Sandbox Code Playgroud)

替换件不适用于上述设置。是否有不同的方法来声明嵌套结构的键名称?

Rah*_*ulB 0

我们通过以下方式解决了这个问题 -

configmap 具有更简单的结构 - 只有子元素 -

apiVersion: v1
data:
  ChildKey: 456
kind: ConfigMap
name: cf
Run Code Online (Sandbox Code Playgroud)

在部署中,环境变量 key 指的是子键,如下所示 -

apiVersion: extensions/v1beta1
kind: Deployment
spec:
  template:
    metadata:
      creationTimestamp: null
      labels:
        app: abc
    spec:
      containers:
      - env:
        - name: ParentKey__ChildKey
          valueFrom:
            configMapKeyRef:
              key: ChildKey
              name: cf
Run Code Online (Sandbox Code Playgroud)

发布此供参考。