Operator-sdk#
Operator-sdk - инструмент, разработанный для создания приложений-операторов DropApp. Operator-sdk помогает разработчикам приложений-операторов DropApp быстрее разрабатывать, упрощать управление операторами и обеспечивать совместимость с DropApp.
Таблица. Общие команды и параметры.
Команда |
Описание |
|---|---|
|
Инициализация проекта оператора в текущем каталоге |
|
Инициализация проекта оператора в текущем каталоге с помощью специального плагина. Чтобы проверить доступные плагины, запустите |
|
Позволяет создавать собственные API с помощью GKV, расширяя API DropApp с помощью |
|
Для создания шаблонов web-перехватчиков для API, объявленных в проекте. Опция поддерживается только проектами на основе языка Go |
|
Создание образа оператора |
|
Создание и отправка образа оператора для реестра |
|
Установка CRD в кластер |
|
Удаление CRD в кластере |
|
Запуск контроллера локально и вне кластера |
|
Развертывание проекта в кластере |
|
Отмена развертывания проекта в кластер |
Таблица. Список команд для проведения тестирования проектов.
Команда |
Описание |
|---|---|
|
Запуск тестов |
|
Запуск тестов Go, действителен только для операторов Go |
|
Запуск молекулярных тестов, действителен только для операторов на основе Ansible |
|
Запуск тестов Helm, действителен только для операторов на базе Helm |
Примечание
В таблицах приведен не полный список целей и команд make. Для вывода полного списка введите команду make help в командной строке.
Установка Operator-sdk#
Примечание
В текущем сценарии использования приведена последовательность создания простого оператора Nginx на основе Helm с использованием инструментов и библиотек, предоставляемых Operator-sdk. Helm не входит в состав продукта и требует дополнительной установки.
В приведенных примерах example.com используется в качестве namespace реестра DaPP Hub. Замените его другим значением, если используется другой реестр или namespace.
Создайте каталог для проекта и инициализируйте:
mkdir nginx-operator cd nginx-operator operator-sdk init --domain example.com --plugins helmСоздайте API nginx, используя встроенный шаблон диаграмм Helm (из
helm create):operator-sdk create api --group demo --version v1alpha1 --kind NginxСоздавайте и продвигайте образ своего оператора:
`make docker-build docker-push IMG="example.com/nginx-operator:v0.0.1"`Установите Operator Lifecycle Manager:
operator-sdk olm installСделайте привязку оператора, затем создайте и отправьте образ связки (по умолчанию:
example.com/nginx-operator-bundle:v0.0.1):make bundle IMG="example.com/nginx-operator:v0.0.1" make bundle-build bundle-push IMG="example.com/nginx-operator:v0.0.1"Выше приведена команда
make, которая создает дваbundleфайла и устанавливает их на сервер nginx. Первый файл будет содержать пакет с именемexample.com/nginx-operator, а второй файл будет содержать пакет с именемexample.com/nginx-operator:v0.0.1. Это может помочь улучшить производительность сервера, так как каждый пакет будет обрабатываться отдельно, а не все вместе.Команда
makeиспользует опциюbundle-buildдля создания двух отдельныхbundleфайлов. Опцияbundle-pushиспользуется для установки этих двух пакетов на сервер nginx.Запустите пакет:
operator-sdk run bundle example.com/nginx-operator-bundle:v0.0.1Создайте образец пользовательского ресурса nginx:
kubectl apply -f config/samples/demo_v1alpha1_nginx.yaml nginx.demo.example.com/nginx-sample createdУдалите Operator-sdk:
operator-sdk cleanup nginx-operatorРазверните Operator-sdk:
make deploy IMG="example.com/nginx-operator:v0.0.1"Создайте образец пользовательского ресурса nginx:
kubectl apply -f config/samples/demo_v1alpha1_nginx.yaml nginx.demo.example.com/nginx-sample createdУдалите deployment Operator-sdk:
make undeploy