Kubernetes-以编程方式更新ConfigMap

Kubernetes-以编程方式更新ConfigMap,kubernetes,Kubernetes,我有一个Kubernetes部署,它使用一个配置映射和一些经常更新的配置。目前,我必须手动更新此配置,方法是在本地计算机上运行脚本,通过kubectl更新ConfigMap 有没有一种方法可以从Kubernetes内部或外部使用Kubernetes API以更自动化的方式实现这一点?如果您看一看,有许多语言的Kubernetes客户端。Python和Go是官方支持的。您可以通过调用客户端来自动化这些步骤 如果您了解Python,您可以参考以下内容 关于在内部和外部使用API,您可以查看。这特别解

我有一个Kubernetes部署,它使用一个配置映射和一些经常更新的配置。目前,我必须手动更新此配置,方法是在本地计算机上运行脚本,通过kubectl更新ConfigMap


有没有一种方法可以从Kubernetes内部或外部使用Kubernetes API以更自动化的方式实现这一点?

如果您看一看,有许多语言的Kubernetes客户端。Python和Go是官方支持的。您可以通过调用客户端来自动化这些步骤

如果您了解Python,您可以参考以下内容

关于在内部和外部使用API,您可以查看。这特别解释了如何从pod访问API

KUBE_TOKEN=$(</var/run/secrets/kubernetes.io/serviceaccount/token)
curl -sSk -H "Authorization: Bearer $KUBE_TOKEN" https://$KUBERNETES_SERVICE_HOST:$KUBERNETES_PORT_443_TCP_PORT/api/v1/namespaces/iot2cloud/configmaps
我以前遇到过一些问题,但当更改补丁请求的标题时。我可以更新我的配置映射。但请注意令牌权限服务帐户

KUBE_TOKEN=$(</var/run/secrets/kubernetes.io/serviceaccount/token)
curl -sSk -H "Authorization: Bearer $KUBE_TOKEN" https://$KUBERNETES_SERVICE_HOST:$KUBERNETES_PORT_443_TCP_PORT/api/v1/namespaces/iot2cloud/configmaps
def updateConfigMap(token):
   print(token)
   token = "Bearer {}".format(token)
   headers = {"Content-Type": "application/merge-patch+json", "authorization":token}

r = requests.patch("{}/api/v1/namespaces/default/configmaps/CONFIMAPNAME".format(KUBERNETES_MASTER), verify=False, headers=headers, json=configData)
return r.content