Kustomize 将一个补丁应用于多种资源类型(添加 ownerReferences)

时间:2021-02-15 09:05:35

标签: kubernetes kubectl kustomize

我正在尝试使用 kustomize 应用一个补丁,将 ownerReferences 添加到基础中的所有资源

我想做这样的事情:

# kustomization.yaml
resources:
  - deployment.yaml
  - svc.yaml
secretGenerator:
- name: mysecret
  files:
    - mysecret.txt
patches:
  - owner_references.yaml

# owner_references.yaml
metadata:
  ownerReferences:
    - apiVersion: my.crdapi/v1
      blockOwnerDeletion: true
      controller: true
      kind: MyCrd
      name: all-the-things
      uid: <todo>

但我收到错误:

error unmarshaling JSON: while decoding JSON: Object 'Kind' is missing in

所以看起来kustomize需要一个“种类:”补丁?但是我想打补丁所有资源..

谁能建议一个好的方法来做到这一点?谢谢:)

1 个答案:

答案 0 :(得分:1)

合并补丁不支持这种事情,因为他们需要 GKV 和名称/命名空间来知道它是针对哪个对象的补丁。不过,您可以使用 JSON 补丁来做到这一点。 (只是更丑,对不起)