首页 > 解决方案 > 在 kustomize 叠加层之间共享补丁 - 不识别转换器

问题描述

我正在尝试在叠加层之间共享 JSON 补丁。我可以做类似的事情:

bases:
- ../bases
patchesJson6902:
- target:
  ...

但是我必须为每个覆盖复制完整的目标。我更愿意在一个地方描述目标和补丁,然后将其拉入需要它的叠加层。

因此,我尝试在您有一个指令的情况下使用这种方法,指向一个显式触发插件的文件。kustomization.yamltransformers

文档看来,这应该适用于我的叠加层kustomization.yaml

bases:
- ../bases

transformers:
- ../transformers/example

但是当我跑步时,kubectl apply -k我得到:

Error: json: unknown field "transformers"

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

标签: kuberneteskustomize

解决方案


您需要安装二进制文件而kustomize不是kubectl用来生成这些清单。正如@coderanger 提到的,捆绑的 Kustomize 版本kubectl来自早于 Transformers 的版本。

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

kustomize build >dir<

然后将产生类似于以下的 STDOUT 流kubectl kustomize >dir<

如果您希望直接将生成的清单应用到您的 API 服务器,则可以将 STDOUT 直接通过管道传输到kubectl apply. 例如:

kustomize build >dir< | kubectl apply -f-


推荐阅读