首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >动态更新configmap值

动态更新configmap值
EN

Stack Overflow用户
提问于 2021-01-20 15:47:48
回答 2查看 684关注 0票数 1

我有以下配置图

代码语言:javascript
复制
apiVersion: v1
kind: ConfigMap
metadata:
  name: test
data:
  application.properties: |+
  key1: value1
  key2: value2
  keyN: valueN

Configmap已挂载到pod,并且工作正常。

我的要求是以编程方式替换某些键的值。我可以运行shell/python脚本,也可以运行任何kubectl命令。

EN

回答 2

Stack Overflow用户

发布于 2021-01-20 16:07:05

您可以使用kubectl patch命令更新K8s资源。

代码语言:javascript
复制
kubectl patch configmap/test \
  --type=json \
  '-p=[{"op": "replace","path": "/data/key1", "value": "test1"}]'

正如Henry提到的那样,需要注意的重要一点是,应用程序还必须在属性更改后重新读取它们。

票数 0
EN

Stack Overflow用户

发布于 2021-01-20 19:50:25

您可以使用Bash脚本动态替换ConfigMaps中的某些键和值。

我已经创建了简单的bash脚本来演示它如何在我的kubeadm集群v1.20上工作:

代码语言:javascript
复制
#!/bin/bash

keyName="key1"
value="value100"

read -p 'Enter ConfigMap name: ' configmapName

if kubectl get cm ${configmapName} 1> /dev/null 2>&1; then
        echo "ConfigMap name to modify: ${configmapName}"
else
        echo "ERROR: bad ConfigMap name"
        exit 1
fi

kubectl patch cm ${configmapName} -p "{\"data\":{\"${keyName}\":\"${value}\"}}"

在上面的示例中,您需要传递ConfigMap名称并设置您想要修改的内容。

此外,您可能希望以类似于configmapName值的方式将keyNamevalue值作为命令行参数进行传递。

您可以看到上述脚本如何工作的示例:

代码语言:javascript
复制
root@kmaster:~# ./replaceValue.sh 
Enter ConfigMap name: test
ConfigMap name to modify: test
configmap/test patched
root@kmaster:~# kubectl describe cm test
Name:         test
Namespace:    default
Labels:       <none>
Annotations:  <none>

Data
====
application.properties:
----

key1:
----
value100
key2:
----
value2
keyN:
----
valueN
Events:  <none>
root@kmaster:~# 

注意:如果你想用kubectl replace代替kubectl patch,你可以使用下面的命令(例如sourceValue="key1: value1"destinationValue="key1: value100")

代码语言:javascript
复制
kubectl get cm ${configmapName} -o yaml | sed "s/${sourceValue}/${destinationValue}/" | kubectl replace -f -
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65805148

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档