2

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

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

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

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

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

bases:
- ../bases

transformers:
- ../transformers/example

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

Error: json: unknown field "transformers"

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

4

2 回答 2

3

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

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

kustomize build >dir<

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

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

kustomize build >dir< | kubectl apply -f-

于 2020-03-30T03:37:45.517 回答
2

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

于 2020-03-30T02:54:22.957 回答