Перейти к содержанию

Общее описание системы

Labforge - микросервисная система, главная задача которой - автоматическое массовое развертывание изолированных по умолчанию стендов Proxmox.

Используемое стороннее ПО

В составе ПО используются следующие модули с открытым исходным кодом:

Концепция работы сервисов

  1. Микросервисы конфигурируются посредством переменных окружения либо .env файла. Подробнее в конфигурации сервисов
  2. Микросервисы используют сервис auth-service для авторизации между собой. Данный сервис позволяет авторизоваться в Keycloak и получить JWT токен
  3. Микросервисы находятся в одной виртуальной сети и имеют возможность взаимодействовать между собой. Альтернативный процесс в разработке

Задачи сервисов

Labforge состоит из группы сервисов, которые можно поделить на следющие группы:

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

Схема взамодействия сервисов

Общая схема

Исходный код схемы