unip-controller/docs/setup/controller.md
2025-04-15 20:56:15 +03:00

4.1 KiB
Raw Blame History

Запуск контроллеров фреймворка для тестирования

Настройка окружения

Необходимые для работы фреймворка условия перечислены в документе с предусловиями.

Для тестирования контроллеров необходимы:

  1. Платформа Kubernetes;
  2. Подключаемые системы:
    1. Система управления версиями (для тестирования развертывания приложений);
    2. Реестр образов и пакетов.
    3. Объектное хранилище.
    4. Внешний поставщик реквизитов (для тестирования OIDC аутентификации);
  3. Созданные определения ресурсов фреймворка;

Подключение систем и подготовительные шаги описаны в инструкции.

Параметры конфигурации

Параметры конфигурации описаны в документе в разделе конфигурации контроллера.

Параметры конфигурации могут быть заданы:

  1. В переменных окружения.
  2. В файле .env.

Для запуска также должны быть заданы:

  1. Переменная окружения PYTHONPATH. Должна указывать на папку ./controller/src.
  2. Переменная окружения KUBECONFIG. Должна указывать на файл .kubeconfig с реквизитами доступа к платформе Kubernetes.

Варианты запуска

Локальный запуск

Перейти в папку ./controller.

  1. Создать виртуальное окружение.
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
  1. Задать параметры конфигурации в .env файле или как переменные окружения.

Пример содержимого .env файла:

UNIP_DOMAIN=mlops.hse.ru

Образец .env файла - .env.sample.

Содержимое .env файла можно экспортировать:

export $(grep -v '^#' .env | xargs)

Пример установки параметра конфигурации как переменной окружения:

export UNIP_DOMAIN=mlops.hse.ru
  1. Запустить контроллер.
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 необходимо:

  1. Подготовить файл .env с параметрами конфигурации.
  2. Файл 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