我正在尝试在叠加层之间共享JSON补丁。我可以做类似的事情:
bases:
- ../bases
patchesJson6902:
- target:
...
但是我必须为每个覆盖图复制完整的目标。我宁愿在一个地方描述目标和补丁,然后将其放入需要它的覆盖层中。
因此,我尝试使用this approach,其中您的kustomization.yaml
有一个transformers
directive,指向文件explicitly triggering the plugin。
在the docs中,这似乎应该在叠加层的kustomization.yaml
中起作用:
bases:
- ../bases
transformers:
- ../transformers/example
但是当我运行kubectl apply -k
时,我得到了:
Error: json: unknown field "transformers"
有人可以指出我做错了什么吗?有更好的方法吗?
答案 0 :(得分:2)
您需要install kustomize
二进制文件,而不是使用kubectl
生成这些清单。如@coderanger所述,与kubectl
捆绑在一起的Kustomize版本来自于Transformers之前的发行版。
安装kustomize
后,您可以像下面这样构建清单:
kustomize build >dir<
然后将产生类似于kubectl kustomize >dir<
如果您希望直接将结果清单应用于API服务器,则可以将STDOUT直接传送到kubectl apply
中。例如:
kustomize build >dir< | kubectl apply -f-
答案 1 :(得分:0)
Kustomize的内置版本很旧,为2.0.3。这是在添加变压器系统之前。您必须使用独立版本的Kustomize。