我正在尝试在叠加层之间共享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"

谁能指出我做错了什么?有一个更好的方法吗?

最佳答案

您需要将kustomize二进制文件install而不是使用kubectl生成这些 list 。如@coderanger所述,与kubectl bundle 在一起的Kustomize版本来自于Transformers之前的发行版。

安装kustomize之后,您可以像下面这样构建 list :
kustomize build >dir<
然后将产生类似于kubectl kustomize >dir<的STDOUT流

如果您希望直接将结果 list 应用于API服务器,则可以将STDOUT直接通过管道传递到kubectl apply。例如:
kustomize build >dir< | kubectl apply -f-

08-03 13:08