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#
Установка образа Operator SDK#
Примечание
В текущем сценарии использования приведена последовательность создания простого оператора Nginx на основе Helm с использованием инструментов и библиотек, предоставляемых Operator SDK.
В приведенных примерах example.com используется в качестве пространства имен реестра DaPP Hub. Замените его другим значением, если используется другой реестр или пространство имен.
Создайте каталог для проекта и инициализируйте:
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
Установка бинарного файла Operator SDK#
Измените права доступа к файлу
dapp-operator-sdk-2, добавив к нему разрешение на выполнение - флаг+x:sudo chmod +x dapp-operator-sdk-2Это позволит запускать файл как исполняемую программу.
Переместите файл
dapp-operator-sdk-2в подкаталог/usr/local/bin/, используемый для хранения исполняемых файлов, с именемoperator-sdk:sudo mv dapp-operator-sdk-2 /usr/local/bin/operator-sdk
Эти команды можно объединить для упрощения и ускорения процесса:
sudo chmod +x dapp-operator-sdk-2 && sudo mv dapp-operator-sdk-2 /usr/local/bin/operator-sdk
После выполнения команды, Operator SDK можно запускать из любого каталога в терминале, так как он будет находиться в системном пути /usr/local/bin/ и будет исполняемым файлом.