Я разрабатываю контроллер с CRD.CRD включает в себя наш пользовательский материал наряду со встроенным core.v1.PodSpec.(v1.13.1)
Я определяю раздел проверки в CRD, который может проверять и применять ограничения на наших настраиваемых полях, но я не могу понять, как это сделать для встроенной PodSpec.PodSpec слишком большой и слишком много вариантов, чтобы вручную добавить это в раздел проверки CRD:
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
name: mystuff.example.com
spec:
group: mystuff.example.com
versions:
- name: v1alpha1
served: true
storage: true
names:
kind: MyStuff
plural: mystuffs
singular: mystuff
shortNames:
- ms
scope: Namespaced
additionalPrinterColumns:
- JSONPath: .status.phase
name: Status
type: string
- JSONPath: .metadata.resourceVersion
name: Version
type: string
validation:
openAPIV3Schema:
properties:
spec:
required:
- myVar1
- myVar2
- podSpec
properties:
myVar1:
type: boolean
myVar2:
type: boolean
# Here I need to validate a valid core.v1.PodSpec
podSpec:
type: core.v1.PodSpec
Как другие люди подходят к этому?
Мне также нужна проверка для любого механизма, в котором пользователь может передать рабочую нагрузку, т. Е. Непосредственно с помощью сервера кубов или с помощью kubectl.
Спасибо за любую помощь.