我要编辑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>
?
答案 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