有没有办法将像xml这样的配置文件转换为Kubernetes ConfigMap YAML文件,而不使用kubectl命令?比如说,如果我想动态创建xml文件,然后将其作为ConfigMap YAML文件存储在Git仓库中,某个运算符可以监视YAML更改并将其部署到集群中。
将类似xml的配置文件转换为kubernetes configmap yaml文件,而不使用kubectl命令。
当然,因为kubectl对yaml文件唯一的操作就是立即将其转换为json格式,然后使用"content-type: application/json;charset=utf-8"头信息进行POST(或PUT等)到Kubernetes API中(您可以通过"kubectl --v=100 create -f my-thing.yaml"观察该过程)。
所以,回答您的问题是:使用支持json库(或非常出色的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