k8s — несколько ссылок владельца в CRDs

#kubernetes #kubernetes-custom-resources #merge-strategy

#kubernetes #kubernetes-пользовательские ресурсы #стратегия слияния

Вопрос:

Допустим, у меня есть следующий CRD:

 ...
kind: SomeCRD
metadata:
  ownerReferences:
  - uid: aaa
    name: name-a
...
 

Когда я бегу kubectl apply -f some.yaml куда-нибудь.yaml — это следующее

 ...
kind: SomeCRD
metadata:
  ownerReferences:
  - uid: bbb
    name: name-b
...
 

Я бы хотел, чтобы ссылки владельца были объединены следующим образом:

 ...
kind: SomeCRD
metadata:
  ownerReferences:
  - uid: aaa
    name: name-a
  - uid: bbb
    name: name-b
...
 

Возможно ли это? В настоящее kubectl apply время просто заменил бы существующие ownerReferences aaa на bbb , в то время как он объединил бы ownerReferences aaa и bbb для собственных типов, таких как Pod.

Если я правильно понимаю, стратегическое слияние по умолчанию не поддерживается для CRDS, но, начиная с 1.16 / 1.17, мы можем определить стратегию слияния в схеме CRDS (документ k8s). В идеале мы могли бы определить стратегию слияния для metadata.ownerReferences в схеме someCRD, и это решило бы проблему здесь, но metadata принадлежит apiserver и не может быть переопределено в CRDs. Такое ощущение metadata , что он застрял в каком-то неудачном состоянии, когда это собственный тип k8s, но обрабатывается как неструктурированное поле, когда оно находится в CRDs.

Есть какой-нибудь способ заставить это работать или я что-то упускаю?

Заранее спасибо! 🙂