如何在 Helm 中仅呈现选定的模板?

sac*_*rus 6 kubernetes-helm

我的掌舵图中有大约 20 个 yaml + 大量依赖项,我想检查特定一个的渲染输出。helm template渲染所有 yaml 并生成一百行代码。有没有办法(甚至有一个正则表达式会很好)只呈现选定的模板(通过文件或例如名称)。

edb*_*ead 16

来自helm 模板文档

-s, --show-only stringArray 只显示从给定模板呈现的清单

仅渲染一种资源使用 helm template -s templates/deployment.yaml .

  • 一张小纸条。不要在“templates”文件夹之前使用任何内容。例如,如果您运行 ```helm template -s ./templates/deployment.yaml .``` 它将失败,并显示错误 ```错误:在图表中找不到模板 ./templates/deployment.yaml``` (10认同)
  • 对于具有别名的子图,您可以使用别名。`舵模板。--values=myvalues.yaml --仅显示图表/(图表别名)/templates/deployment.yaml`。当您执行整个图表的“helm template”时,它与“#comment”标题中显示的路径相同。 (3认同)
  • 如何对子图 yaml 文件执行此操作? (2认同)

dee*_*ive 5

helm template如果图表位于子目录内,则使用渲染单个 yaml 文件会很棘手

如果目录结构如下

|app
|-k8s
|--templates
|---deployment.yaml
|---cronjob.yaml
|--values-env1.yaml
|--values-env2.yaml
|--Chart.yaml
Run Code Online (Sandbox Code Playgroud)

例如,如果cronjob.yaml只需要生成清单,则命令将是

helm template ./app/k8s -s templates/cronjob.yaml -f ./app/k8s/values-env1.yaml
Run Code Online (Sandbox Code Playgroud)