【问题标题】:Sharing patches between kustomize overlays - does not recognise transformers在 kustomize 叠加层之间共享补丁 - 不识别转换器
【发布时间】:2020-03-29 23:15:58
【问题描述】:

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

谁能指出我做错了什么?有没有更好的方法来做到这一点?

【问题讨论】:

    标签: kubernetes kustomize


    【解决方案1】:

    您需要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-

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-07-21
        • 2020-12-15
        • 2010-11-03
        • 2020-05-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多