4.1 KiB
Запуск контроллеров фреймворка для тестирования
Настройка окружения
Необходимые для работы фреймворка условия перечислены в документе с предусловиями.
Для тестирования контроллеров необходимы:
- Платформа Kubernetes;
- Подключаемые системы:
- Система управления версиями (для тестирования развертывания приложений);
- Реестр образов и пакетов.
- Объектное хранилище.
- Внешний поставщик реквизитов (для тестирования OIDC аутентификации);
- Созданные определения ресурсов фреймворка;
Подключение систем и подготовительные шаги описаны в инструкции.
Параметры конфигурации
Параметры конфигурации описаны в документе в разделе конфигурации контроллера.
Параметры конфигурации могут быть заданы:
- В переменных окружения.
- В файле
.env.
Для запуска также должны быть заданы:
- Переменная окружения
PYTHONPATH. Должна указывать на папку./controller/src. - Переменная окружения
KUBECONFIG. Должна указывать на файл .kubeconfig с реквизитами доступа к платформе Kubernetes.
Варианты запуска
Локальный запуск
Перейти в папку ./controller.
- Создать виртуальное окружение.
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
- Задать параметры конфигурации в
.envфайле или как переменные окружения.
Пример содержимого .env файла:
UNIP_DOMAIN=mlops.hse.ru
Образец .env файла - .env.sample.
Содержимое .env файла можно экспортировать:
export $(grep -v '^#' .env | xargs)
Пример установки параметра конфигурации как переменной окружения:
export UNIP_DOMAIN=mlops.hse.ru
- Запустить контроллер.
kopf run src/main.py --verbose
Чтобы ограничить отслеживаемые контроллером пространства имен только теми, имена которых начинаются с dev,
нужно задать переменную окружения UNIP_CONTROLLER_DEV=True.
Если в кластере Kubernetes одновременно действует несколько контроллеров, то нужно явно разграничить отслеживаемые ими пространства имен:
kopf run src/main.py --verbose --standalone --namespace=dev-pu-user1-pa-app1
Запуск в контейнере Docker
Для запуска контроллера в контейнере Docker необходимо:
- Подготовить файл
.envс параметрами конфигурации. - Файл
kubeconfigвместе с сертификатом CA платформы Kubernetes.
Команда запуска:
docker run -v ./local-path/kube-creds:/kube \
--env KUBECONFIG=/kube/kubeconfig \
--env-file .env \
--name unip-controller \
unip-controller:latest
Или с монтированием .env файла внутрь контейнера:
docker run -v ./local-path/kube-creds:/kube \
-v .env:/controller/.env \
--env KUBECONFIG=/kube/controller-yc-dev.kubeconfig \
--name unip-controller \
unip-controller:latest