我想截取helm YAML,并使用Python脚本对其进行自定义,然后安装它。我一直在做类似helm template | python3 script... | kubectl apply -f -
的事情,但这当然不会在我的集群中创建helm版本,所以我失去了helm rollback
等。
我曾考虑过使用Kustoize,但它没有我想要的功能。
有没有一种方法可以使用预先生成的YAML,比如helm template
或helm install --dry-run
,然后使用helm安装/升级?
这不是后渲染器的用途吗?
请参阅https://helm.sh/docs/topics/advanced/#post-呈现
后渲染器可以是任何在STDIN上接受渲染的Kubernetes清单并在STDOUT上返回有效Kubernete清单的可执行文件。在发生故障时,它应该返回一个非0的退出代码。这是唯一的";API";在两个组件之间。它允许在渲染后处理中有很大的灵活性。
后渲染器可以与安装、升级和模板一起使用。要使用后期渲染器,请使用--post-renderer标志,其中包含要使用的渲染器可执行文件的路径:
$ helm install mychart stable/wordpress --post-renderer ./path/to/executable
我自己还没有用过,但如果你想运行自己的替代Kustoize,它看起来很有趣。
请参阅https://github.com/vmware-tanzu/carvel-ytt/tree/develop/examples/helm-ytt-post-renderer举一个不是kustosize的例子。