如何使用Kustomize在JSON文件中修补ConfigMap?

8

如何使用Kustomize在以下cm中打补丁"db.password"?

配置图:

apiVersion: v1
data:
  dbp.conf: |-
    {
      "db_properties": {
        "db.driver": "com.mysql.jdbc.Driver",
        "db.password": "123456",
        "db.user": "root"
      }
    }

kind: ConfigMap
metadata:
  labels: {}
  name: dbcm
2个回答

1
在应用Kustomize时,在文件中创建一个占位符并将其替换为真实数据。
你的代码应该是这样的:
#!/bin/bash
sed -i "s/PLACE-HOLDER/123456/g" db_config.yaml
kustomize config.yaml >> kustomizeconfig.yaml
kubectl apply -f kustomizeconfig.yaml -n foo

db_config 文件将会是:

apiVersion: v1
data:
  dbp.conf: |-
    {
      "db_properties": {
        "db.driver": "com.mysql.jdbc.Driver",
        "db.password": "PLACE_HODLER",
        "db.user": "root"
      }
    }

kind: ConfigMap
metadata:
  labels: {}
  name: dbcm

注意:此操作应该在流水线上运行,以便从存储库克隆配置文件,因此真实文件不会被更新。

1

您可以使用更新后的值创建新文件,并使用替换命令以及创建命令。

kubectl create configmap NAME --from-file file.name -o yaml --dry-run | kubectl replace -f -

3
谢谢,我需要用 Kustomize 进行修补。就像修补 YAML 文件一样。 - Lior
如果您有文件,可以更新文件的值并运行kubectl apply命令,它将替换配置映射中的现有值。 - Harsh Manvar
OP 询问了关于使用 Kustomize 而非 kubectl 的方式来修补 ConfigMap。 - f-z-N
2
https://github.com/kubernetes-sigs/kustomize/issues/680 - Harsh Manvar
1
https://github.com/kubernetes-sigs/kustomize/issues/3787 - Jonas Kello

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接