bases:
- common.yaml
releases:
- name: controller
values:
- values/controller-values.yaml
hooks:
- events: [ "presync" ]
....
- events: [ "postsync" ]
.....common.yaml
environments:
default:
values:
- values/common-values.yaml共值
a:b当我将钩子的值添加到common.values时,我想将它的值移到文件中,但是我想将它添加到不同的文件中,而不是普通的文件中,所以我尝试添加基。
bases:
- common.yaml
- hooks.yaml
releases:
- name: controller
values:
- values/controller-values.yaml
hooks:
{{ toYaml .Values.hooks | indent 6 }}hooks.yaml
environments:
default:
values:
- values/hooks-values.yamlhooks-values.yaml
hooks:
- events: [ "presync" ]
....
- events: [ "postsync" ]
.....但是我得到了一个错误解析: template: stringTemplate:21:21:在<.Values.hooks>:map上执行“<.Values.hooks>”没有键“钩子”的条目
我也试着改变它
hooks:
- values/hooks-values.yaml我得到了一个错误行22:无法将!!str values/...解封为event.Hook
发布于 2022-01-06 18:54:33
我认为第一个问题是当在common.yaml和hooks.yaml下指定bases:时,它们没有正确地合并。由于它们提供了相同的密钥,很可能是后面在bases:中包含的密钥覆盖了另一个密钥。
要解决这个问题,可以在helmfile中使用bases中的单个条目:
bases:
- common.yaml然后将您的值文件添加到common.yaml
environments:
default:
values:
- values/common-values.yaml
- values/hooks-values.yaml我不认为这是最佳实践,但它应该有效:)
第二个问题是,bases是特殊处理的,即在处理基础分层之前呈现helmfile.yaml,因此当您可以在helmfile中直接引用它们时,您的值(来自bases)是不可用的。如果您直接将environments嵌入到helmfile中,就可以了。但是,如果您想继续使用bases,似乎有几个解决办法,最简单的方法似乎是在bases之后添加---,这在在同一线程上的下一个注释中已经解释过了。
因此,您的helmfile的工作版本可以是:
bases:
- common.yaml
---
releases:
- name: controller
chart: stable/nginx
version: 1.24.1
values:
- values/controller-values.yaml
hooks:
{{ toYaml .Values.hooks | nindent 6 }}PS:chart: stable/nginx是随机选择的,以便能够helmfile build__。
https://stackoverflow.com/questions/70362614
复制相似问题