我想使用 helm 和一个适合我的需求的自定义
value.yaml
文件来部署 nextcloud。我是否必须指定原始value.yaml
给出的所有值,或者是否可以只更改所需的值,例如,如果我唯一想要更改的是主机地址,我的文件可以如下所示:
nextcloud:
host: 192.168.178.10
而不是复制此文件并仅更改几个值。
由于用户@Kun Li的回答解决了根本问题,我想在自定义Helm图表时添加一些示例以及一些额外的参考。
正如问题中所问:
我是否必须指定原始 value.yaml 中给出的所有值,或者是否可以仅更改所需的值
简而言之,您不需要指定所有值。您只能更改其中一些(例如问题中的
host
)。
更改数值的方法如下:
- 用
传递的各个参数(如--set
)helm install --set foo=bar ./mychart
- 如果使用
标志 (helm install
) 传递到helm upgrade
或-f
,则为值文件helm install -f myvals.yaml ./mychart
- 如果这是子图表,则为父图表的
文件values.yaml
- 图表中的
文件values.yaml
您可以通过以下官方
Helm
文档了解更多相关信息:
旁注!
以上要点按优先顺序设置。第一个 (
) 将具有最高优先级来覆盖这些值。--set
附注!
此示例假设您位于拉取的 Helm 图表的目录中并且您正在使用 Helm v3
使用问题中使用的
nextcloud
Helm 图表,您可以通过以下方式设置 nextcloud.host
值:
new-values.yaml
将其传入(无论优先级较低,都将使用 Helm 图表中的 values.yaml
):
$ helm install NAME . -f new-values.yaml
new-values.yaml
nextcloud:
host: 192.168.0.2
helm install NAME . --set nextcloud.host=192.168.0.2
您可以通过以下任一方式检查更改是否正确完成:
$ helm template .
- 正如用户@David Maze 所指出的$ helm install NAME . --dry-run --debug
您在值文件中将
nextcloud
拼错为 nextlcoud
。