将XML文件转换为ConfigMap YAML

8
有没有办法将像xml这样的配置文件转换为Kubernetes ConfigMap YAML文件,而不使用kubectl命令?比如说,如果我想动态创建xml文件,然后将其作为ConfigMap YAML文件存储在Git仓库中,某个运算符可以监视YAML更改并将其部署到集群中。

这个回答解决了你的问题吗?即在ConfigMap中嵌入XML文件?https://medium.com/@dheeraj007tripathi/configmap-and-kubernetes-overriding-configuration-files-5db9e6da08c9 - Berin Loritsch
1个回答

2

将类似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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接