如何在kubernetes中编辑configmap并覆盖其他Yaml文件中的值?

时间:2019-06-25 10:11:01

标签: kubernetes

我要编辑configmap并替换值。但这应该使用其他YAML来完成,因为我将覆盖值指定为该文件的一部分。

我尝试使用kubectl edit cm -f replace.yaml,但此操作不起作用,所以我想知道新文件的结构。

apiVersion: v1
kind: ConfigMap
metadata:
  name: int-change-change-management-service-configurations
data:
  should_retain_native_dn: "False"
  NADC_IP: "10.11.12.13"
  NADC_USER: "omc"
  NADC_PASSWORD: "hello"
  NADC_PORT: "991"
  plan_compare_wait_time: "1"
  plan_prefix: ""
  ingress_ip: "http://10.12.13.14"

现在让我们假设应该更改NADC_IP,所以我想知道YAML文件的结构以及如何使用它来提供服务?

发生的越权操作仅应在头盔测试期间进行,例如当我跑步时 helm test <release-name>

3 个答案:

答案 0 :(得分:1)

要更新configmap中的变量,您需要执行两个步骤:

首先,更新变量的值:

kubectl create configmap <name_of_configmap> --from-literal=<var_name>=<new_value> -o yaml --dry-run | kubectl replace -f -

因此,在您的情况下,它将如下所示:

kubectl create configmap int-change-change-management-service-configurations --from-literal=NADC_IP=<new_value> -o yaml --dry-run | kubectl replace -f -

第二步,重新启动Pod:

kubectl delete pod <pod_name>

应用将从现在开始使用新值。让我知道,是否适合您。

答案 1 :(得分:0)

  

kubectl获取cm {configmap名称} -o = yaml --export> filename.yaml

您可以尝试一下,它将为您提供yaml格式

  

kubectl获取配置图   完整的更改更改管理服务配置-o yaml

您可以复制内容并将其替换为新的yaml文件并应用更改

编辑:1

如果要通过终端进行编辑,可以运行

  

kubectl编辑configmap {configmap名称}

它将使用vim编辑器,您可以使用编辑命令从终端替换值。

编辑:2

  

kubectl获取cm {configmap名称} -o = yaml --export> filename.yaml

答案 2 :(得分:0)

kubectl replace -f replace.yaml

如果您有这样的配置图:

apiVersion: v1
kind: ConfigMap
metadata:
  name: my-configmap
data:
  should_retain_native_dn: "False"
  NADC_IP: "10.11.12.13"

并且您想更改NADC_IP的值,创建一个清单文件,如下所示:

apiVersion: v1
kind: ConfigMap
metadata:
  name: my-configmap
data:
  should_retain_native_dn: "False"
  NADC_IP: "12.34.56.78" # the new IP

并运行kubectl replace -f replace.yaml