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