Создайте свойство oneOf с помощью operator-sdk

В настоящее время я новичок в operator-sdk, однако хочу кое-что спросить.

Я пытаюсь создать CRD, содержащий свойство oneOf в спецификации. Однако я застрял в этой задаче.

Когда я искал в Google, я не нашел способа реализовать свойство с помощью operator-sdk.

Если бы я хотел реализовать сгенерировать свойство oneOf в качестве моего CRD, есть ли способ это сделать?

Например,

type: object
properties:
  spec:
    ...
    oneOf:
      - required: [someproperties1]
      - required: [someproperties2]

Спасибо.


person jwl1993    schedule 10.07.2020    source источник


Ответы (1)


Да! Следуйте инструкциям по быстрому запуску Ansible, Helm или Go.

Предполагая, что ваш вопрос касается создания CRD.

Например. если вы следуете быстрому запуску Go, вы можете использовать CLI оператора sdk вот так:

$ operator-sdk add api --api-version=my.example.com/v1alpha1 --kind=OneOf

или с Ansible:

$ operator-sdk new my-operator --api-version=my.example.com/v1alpha1 --kind=OneOf --type=ansible

Обратите внимание, что ваш CRD должен начинаться с заглавных букв (соглашение K8s): OneOf

Теперь, если вы хотите определить спецификацию в CRD вы также можете следовать руководствам по быстрому запуску (шаблон будет создан operator-sdk CLI). Например, для Go в коде будет создана структура:

type OneOfSpec struct {
    // Size is the size of your OneOf
    Size int32 `json:"size"`
}
type OneOfStatus struct {
    // Nodes are the names of the oneof pods
    Nodes []string `json:"nodes"`
}
person Rico    schedule 10.07.2020
comment
Спасибо за ответ!! Я мог понять, как реализовать CRD с opertaor-sdk. Однако я хотел узнать о реализации конкретных методов свойств oneOf в «спецификации» (обычно?). Есть ли какие-нибудь рекомендации? - person jwl1993; 13.07.2020
comment
Вы бежали? make generate после того, как вы определили свои типы? как здесь сказано: sdk.operatorframework.io/ docs / golang / quickstart / вы смотрели, как реализованы другие операторы сообщества? - person Rico; 13.07.2020
comment
На самом деле, я пробовал способ, который приведен выше в комментариях, написанных @JasonKincl, однако кажется, что pr еще не объединены. Честно говоря, я не пытаюсь сгенерировать CRD oneOf, я хочу сгенерировать свойство oneOf в спецификации CRD. - person jwl1993; 17.07.2020
comment
да. в приведенном выше примере размер и узлы являются свойствами. Код вашего контроллера должен будет решить, что делать с этими свойствами. - person Rico; 17.07.2020
comment
Ах ах. Извините за мой плохой английский. Я хочу не свойства. Я хотел реализовать что-то вроде примера выше. Извините за введение в заблуждение. - person jwl1993; 17.07.2020
comment
да. есть довольно много примеров, которым вы можете следовать в Интернете - person Rico; 17.07.2020
comment
Могу ли я получить советы или ссылки, по которым я могу следить? На самом деле я много ищу способов, но мне не удалось реализовать мм .. - person jwl1993; 17.07.2020