我对从 Helm 图表生成 docker-compose.yaml 文件感兴趣。有没有好的方法或工具可以做到这一点?
我意识到这与大多数人所做的相反。为什么我想这样做:
任何人都可以建议如何执行此操作,或者针对开发计算机上遇到的时间/资源问题提出不同的解决方案吗?
虽然我 100% 同意应该有一个工具来在两个堆栈之间执行翻译。一种说法是“我们不想维护两组配置”,但仍然想要两组配置。
更容易让您的开发人员使用与生产中使用的相同的堆栈,而不是相反。
也就是说,我倾向于使用 xslt 和 xpath 的方法。即使这样,结果也不一样。
Helm Charts 通常包含机密和配置文件以及部署和容器规范。 Docker-compose 仅需要部署/容器规范。所以我的流程是让 helm 生成 kubernetes deployment.yml 到 stdout 的结果,然后使用 yml 到 xml mitter。从那里使用 xmlstarlet 和 xslt 模板以及所需的 xpath 选择来创建生成的 docker-compose.yml 文件。
听起来很复杂,但这只是常见的 UNIX 文本处理(例如
helm install --dry-run --debug | yaml2xml | xml tr ~/lib/docker-compose.xslt /dev/stdin > ./docker-compose.yml && pipx run yamllint ./docker-compose.yml
)。