是否仍然可以在不使用kubectl命令的情况下将xml等配置文件转换为kubernetes configmap yaml文件?假设我要动态创建xml文件,然后将其存储为git repo作为configmap yaml,并且某些操作员可以监视yaml更改并将其部署到集群中。
答案 0 :(得分:2)
无需使用kubectl命令即可将xml等配置文件转换为kubernetes configmap yaml文件
当然,因为kubectl
对yaml
的唯一处理是立即将其转换为json
,然后将POST
(或PUT
或其他)转换为带有content-type: application/json;charset=utf-8
标头的kubernetes api(您可以通过kubectl --v=100 create -f my-thing.yaml
观看它)
因此,问题的答案是使用您喜欢的编程语言,该语言具有json(或positively amazing jq)库,根据需要打包XML,并使用kube-applier之类的内容进行监视和推出更改:
# coding=utf-8
import json
import sys
result = {
"apiVersion": "v1",
"kind": "ConfigMap",
# etc etc
"data": [],
}
for fn in sys.argv[1:]:
with open(fn) as fh:
body = fh.read()
data.append({fn: body})
json.dump(result, sys.stdout) # or whatever