Общее описание системы
Labforge - микросервисная система, главная задача которой - автоматическое массовое развертывание изолированных по умолчанию стендов Proxmox.
Используемое стороннее ПО
В составе ПО используются следующие модули с открытым исходным кодом:
Концепция работы сервисов
- Микросервисы конфигурируются посредством переменных окружения либо
.envфайла. Подробнее в конфигурации сервисов - Микросервисы используют сервис
auth-serviceдля авторизации между собой. Данный сервис позволяет авторизоваться в Keycloak и получить JWT токен - Микросервисы находятся в одной виртуальной сети и имеют возможность взаимодействовать между собой. Альтернативный процесс в разработке
Задачи сервисов
Labforge состоит из группы сервисов, которые можно поделить на следющие группы:
- Мониторинг - Grafana, nginx-prometheus-exporter, Prometheus, Cadvisor. Данное ПО используется для сбора данных мониторинга и его представления в виде дашбордов
- Авторизация - auth-service, Keycloak. Первый сервис является прокси для передачи информации о пользователях и проведения валидации JWT-токенов, Keycloak проводит OAuth2 авторизацию и интегрируется со сторонними источниками авторизации
- Развертывание - cluster-manager, deployment-api, jobservice, jobservice-api. Отвечают за хранение данных Proxmox-узлов, шаблонов развертывания и их выполнение
- Frontend - frontend-server, kroki-proxy. Выполнение запросов от лица пользователей, визуализация данных.
Схема взамодействия сервисов
