Я хочу использовать обслуживающий api, который является частью репо для обслуживания, для создания обслуживающего приложения. Поскольку я пишу собственный контроллер, мне нужно использовать клиент Go. Мне сложно сгенерировать стандартный код с помощью генератора кода. Я слежу за упомянутым ниже блогом о том, как это сделать.
- https://insujang.github.io/2020-02-13/programming-kubernetes-crd/#write-template-code
- https://blog.openshift.com/kubernetes-deep-dive-code-generation-customresources/
Но я не смог этого добиться. Любая помощь приветствуется.
Вероятно, вам следует включить код, который вы пробовали, и более точно указать, что пошло не так, например, с какими ошибками вы столкнулись или каков был ожидаемый результат по сравнению с тем, что было на самом деле. — person coders schedule 06.10.2020
Я не мог этого добиться, это как тупик без надлежащих блогов от самих официальных разработчиков, которые забывают о выполнении. — person coders schedule 06.10.2020
Да, генерация кода для контроллеров — дело не самое простое. И это изменилось с годами.
Чтобы начать писать контроллер с генерацией кода, я бы рекомендовал использовать Kubebuilder и следовать руководству по Kubebuilder. И, возможно, делать нестандартные вещи, когда это понимается.
Руководство Kubebuilder включает главы о том, как сгенерировать код CRD с помощью controller-gen.
Да, я полностью согласен. Нет и надлежащего руководства. вроде застрял .. — person coders; 06.10.2020
@coders вы пробовали руководство по kubebuilder, на которое я ссылался? Это более простой способ создать контроллер в Go. — person coders; 06.10.2020
Вы хоть представляете, как работает этот github.com/knative-sandbox/sample-controller формируется? — person coders; 06.10.2020
вы можете видеть в каталоге
hack/
, он использует старыйcode-generator
github. com / knative-sandbox / sample-controller / tree / master / hack — person coders; 06.10.2020Вы также можете посмотреть operator-sdk, который строится поверх среды выполнения контроллера и kubebuilder для облегчить жизнь разработчикам. В частности, такие вещи, как генерация кода CRD и K8S API — person coders; 06.10.2020
Если честно, Kubebuilder / Operator-SDK (они движутся к объединению проектов), вероятно, самый простой способ начальной загрузки контроллера. Если вы ищете подход более низкого уровня, ознакомьтесь с этим сообщением в блоге: insjang.github.io/2020-02-13/programming-kubernetes-crd. Просто имейте в виду, что здесь используются инструменты, предшествующие GOMODULE, и для работы требуется хитрый обходной путь. Команда Knative более или менее написала свою собственную версию среды выполнения контроллера (основа Kubebuilder), поэтому использование инфраструктуры Knative было бы менее документированным способом достижения той же цели. — person coders; 23.10.2020