kubernetes - 如何创建一个基本上只是设置另一个图表的值的自定义 Helm 图表?
问题描述
我是 Helm 的新手,我还没有完全掌握这些概念。我目前正在尝试做的是创建一个自定义图表,基本上只是为默认稳定存储库中可用的另一个图表设置特定值。几乎我想做的是有这个:
helm install \
-f my-custom-values.yaml \
stable/target-chart \
--name=my-release
改变成
helm install my-apps/my-release
在my-release
中使用相同的值my-custom-values.yaml
。它本质上是将预先存在的图表与我的自定义值捆绑到一个新的图表中。
有没有办法做到这一点?我想我也许可以克隆源图表,但我觉得这不是一件实际的事情。
解决方案
第一个变体有什么问题?如果您有一个可以传递给 helm 的自定义 values.yaml,为什么需要从命令行中删除它?
但是,如果您准备好玩一下... :)
一种方法是创建自己的图表,该图表主要是空的,但包含一个引用 .yaml 的 requirements.yaml stable/target-chart
。
requirements.yaml(就在 Chart.yaml 旁边)
dependencies:
- name: stable/target-chart
version: 1.0.0.0.0.0
alias: somealiasforvaluesyaml
然后在您的 values.yaml 中覆盖该子图表的值:
somealiasforvaluesyaml:
keyfromthattargetchart: newvalue
subkeyfromthattargetchart:
enabled: true
setting: "value"
您在 requirements.yaml 中提供的别名是图表中 values.yaml 中的部分。
在安装之前,您需要告诉 helm 更新这些要求:
helm repo update
helm dependency update
然后就是helm install
这个(虚拟?)图表。此图表不包含任何资源,在 linux 包管理器中不会被称为包 - 但它们也使用过渡包或只是其他包的集合(如 build-essential)
考虑到您已经有 values.yaml 来覆盖目标图表中的那些,这有点多吗?由于传递给安装的 cust-values .yaml-f
只需要包含自定义项,因为它将修改目标图表中的 values.yaml ,因此问题中的第一个命令看起来是正确的方法。
推荐阅读
- ios - 如何限制 UITextField 中的十进制输入值
- python - 如何根据另一个 df 布尔值修改 df?
- linux - itoa组装实现,div操作导致segfault?
- python - 是否有 Redis-py 函数来获取所有辅助值
- php - 从没有ajax的表单返回一个php值
- aurelia - Aurelia au run --watch... 不看
- java - 同构字符串的时间复杂度
- javascript - 如何在javascript中使用正则表达式来匹配带双引号的字符串
- c - fscanf:如何读取但不分配逗号?
- ios - 在 Swift 中检查 UI TextField 的前 3 个字符是否为数字