在Kustomize叠加层之间共享补丁-无法识别变压器

时间:2020-03-29 23:15:58

标签: kubernetes kustomize

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

有人可以指出我做错了什么吗?有更好的方法吗?

2 个答案:

答案 0 :(得分:2)

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

安装kustomize后,您可以像下面这样构建清单:

kustomize build >dir<

然后将产生类似于kubectl kustomize >dir<

的STDOUT流

如果您希望直接将结果清单应用于API服务器,则可以将STDOUT直接传送到kubectl apply中。例如:

kustomize build >dir< | kubectl apply -f-

答案 1 :(得分:0)

Kustomize的内置版本很旧,为2.0.3。这是在添加变压器系统之前。您必须使用独立版本的Kustomize。