XML文件到ConfigMap Yaml

时间:2018-06-28 01:42:08

标签: kubernetes kubectl

是否仍然可以在不使用kubectl命令的情况下将xml等配置文件转换为kubernetes configmap yaml文件?假设我要动态创建xml文件,然后将其存储为git repo作为configmap yaml,并且某些操作员可以监视yaml更改并将其部署到集群中。

1 个答案:

答案 0 :(得分:2)

  

无需使用kubectl命令即可将xml等配置文件转换为kubernetes configmap yaml文件

当然,因为kubectlyaml的唯一处理是立即将其转换为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