【问题标题】:Verify that all values for a kubernetes helm chart have been used验证 kubernetes helm chart 的所有值是否都已使用
【发布时间】:2018-04-16 03:28:10
【问题描述】:

我想检查一下我的 kubernetes helm 图表是否没有在 values.yaml 中定义未使用的值。这应该包括任何子图表,如果您在顶级values.yaml 中定义了subchart.foo.bar: ???,则该键肯定会在子图表中使用,或者可能作为subchart/values.yaml 中提到的快捷方式。

这是防止我们在values.yaml 中发送虚假“文档”所必需的,例如,如果子图表中的键已被更改或删除。

理想情况下,还可以报告顶级图表中哪些子图表值没有被覆盖,尽管这不太令人担忧。

是否有任何现有的工具可以帮助解决这个问题?

【问题讨论】:

    标签: kubernetes kubernetes-helm


    【解决方案1】:

    AFAIK,没有用于此的工具。但是,即使使用 bash,制作它也不应该那么难。例如,您需要在模板文件夹中以递归方式导出所有像 test.test1.test2 这样的键/值对和该字符串的 grep。如果你想使用 bash 读取 yaml,可以安装shyaml。如果你知道如何用 Python 编写代码,那就更好了。

    【讨论】:

    • 仅 grep 获取变量的整个路径是不够的,您需要了解模板语言以了解它是否被引用(例如通过更改上下文)或者您确实正在查看真正的参考,而不是看起来像的东西。
    【解决方案2】:

    自 Helm v3 发布以来,您现在可以为您的定义架构。在像 helm install 这样的命令上,您提供的值会自动根据架构进行验证。

    请看官方文档:https://helm.sh/docs/topics/charts/#schema-files

    架构验证也适用于子图表,这在上面链接的文档中也有提及。

    【讨论】:

      猜你喜欢
      • 2018-04-15
      • 1970-01-01
      • 2023-03-23
      • 2021-12-17
      • 2020-09-30
      • 2019-05-15
      • 2021-08-29
      • 2018-02-11
      • 1970-01-01
      相关资源
      最近更新 更多