我想检查一下我的kubernetes头盔图没有在values.yaml
中定义未使用的值。这应该包括任何子图表,如果您在顶级subchart.foo.bar: ???
中定义了values.yaml
,那么该关键字肯定会在子图中使用,或者可能是{{1}中提到的快捷方式}。
这是为了防止我们在subchart/values.yaml
中发送伪造的“文档”,例如,如果子图中的某个键已被更改或删除。
理想情况下,还有可能报告哪些子图值未在顶级图表中被覆盖,尽管这不太重要。
是否有任何现有工具可以帮助解决这个问题?
答案 0 :(得分:0)
AFAIK,没有这方面的工具。但是,即使使用bash,也不应该难以制作一个。例如,您需要在templates文件夹中以递归方式导出所有键/值对,如test.test1.test2
和grep。如果您想使用bash阅读yaml,可以安装shyaml
。如果你知道如何用Python编写代码,那就更好了。
答案 1 :(得分:0)
从Helm v3版本开始,您现在可以为值定义架构。在helm install
之类的命令上,您提供的值将根据模式自动进行验证。
请参阅官方文档:https://helm.sh/docs/topics/charts/#schema-files
架构验证也适用于子图表,上面链接的文档中也提到了这一点。