WEB UI для диаграммы разывертывания сервисов на основе helm файлов
Find a file
2025-12-22 23:04:13 +03:00
data/key Первый комит. Верис 0.0.7 Установленная в контуре Рексофт. 2025-12-22 22:46:51 +03:00
docs Версия 0.0.7 Фикс недостающих файлов. Отличий по коду нет. 2025-12-22 23:04:13 +03:00
static Версия 0.0.7 Фикс недостающих файлов. Отличий по коду нет. 2025-12-22 23:04:13 +03:00
templates Первый комит. Верис 0.0.7 Установленная в контуре Рексофт. 2025-12-22 22:46:51 +03:00
.gitignore Первый комит. Верис 0.0.7 Установленная в контуре Рексофт. 2025-12-22 22:46:51 +03:00
app.log Первый комит. Верис 0.0.7 Установленная в контуре Рексофт. 2025-12-22 22:46:51 +03:00
Config.yaml Первый комит. Верис 0.0.7 Установленная в контуре Рексофт. 2025-12-22 22:46:51 +03:00
generate_diagramm.py Версия 0.0.7 Фикс недостающих файлов. Отличий по коду нет. 2025-12-22 23:04:13 +03:00
gitlab.py Первый комит. Верис 0.0.7 Установленная в контуре Рексофт. 2025-12-22 22:46:51 +03:00
plantuml.jar Первый комит. Верис 0.0.7 Установленная в контуре Рексофт. 2025-12-22 22:46:51 +03:00
plantuml.py Версия 0.0.7 Фикс недостающих файлов. Отличий по коду нет. 2025-12-22 23:04:13 +03:00
README.md Версия 0.0.7 Фикс недостающих файлов. Отличий по коду нет. 2025-12-22 23:04:13 +03:00
requirements.txt Первый комит. Верис 0.0.7 Установленная в контуре Рексофт. 2025-12-22 22:46:51 +03:00
utils.py Версия 0.0.7 Фикс недостающих файлов. Отличий по коду нет. 2025-12-22 23:04:13 +03:00
web.py Первый комит. Верис 0.0.7 Установленная в контуре Рексофт. 2025-12-22 22:46:51 +03:00

KubeDiagram

Сервис развернут в контуре Рексофт http://192.168.141.21:30010/

Описание

Веб приложение для создания диаграммы развертывания сервисов проекта AMG:

  • читает файлы values.yaml с настройками сервисов, который используются в Helm charts для развертывания Kubernetes
  • сохраняет необходимые настройки всех сервисов в json
  • создает текст диаграммы развёртывания на языке plantuml
  • генерирует png изображение схемы
    • опционально используется локальный рендер plantuml.jar или внешний сервер
  • обеспечивает навигацию по схеме, аналогично картографическим сервисам
  • доп функционал
    • обновления файлов values.yaml из репозитория в gitlab
    • скачивание png
    • скачивание исходного текста схемы в plantuml

Виртуальная среда

Скрипт для создания виртуально среды на другом компьютере

deactivate
python -m venv venv
venv\Scripts\activate
pip install -r requirements.txt

Создание новой виртуальной среды

python -m venv venv

активировать

venv\Scripts\activate

деактивировать

deactivate

Использование файла requirements.txt: Записать список текущих библиотек в файл

pip freeze > requirements.txt

Установить все пакеты из файла зависимостей

pip install -r requirements.txt

Описание компонентов

  1. Config.yaml -настройки скрипта
    • секция env
      • local_render: false - использовать для рендера plantuml.jar
      • plantuml_render_server: http://localhost:8080/img/ - адрес сервиса для внешнего рендера
    • секция git
      • repo_url: git@gitlab.reksoft.ru:convetronic/bim-gw/infra/helmfile.git - адрес репозитория с helm файлами
      • ssh_key_path: data/key/id_rsa - путь до RSA ключа
      • clone_dir: ./data/repository - папка текущего репозитория с helm файлами
        • предыдущая версия сохраняется в папке data\backup
  2. web.py - модуль на Flask для UI
    1. выбор настроек для генерации изображения
    2. создание новой схемы
    3. навигация по картинке как по карте : перемещение при удержании ПКМ, скрол для масштабирования
  3. utils.py - вспомогательный модуль
    1. Читает Config.yaml
    2. обходит все вложенные папки и читает helm файлы (формат yaml) по шаблону
      • *-values_dc1.yaml - прод контур в DC1
      • *-values_dc2.yaml - прод контур в DC2
      • *-values_test.yaml - тест
    3. создает параметры, необходимые для отрисовки диаграммы в файл
      • generated_diagramm_config.json
  4. generate_diagramm.py - скрипт для создания изображения png со схемой сервисов 4. читает файл настроек generated_diagramm_config.json 5. создает текстовый файл с диаграммой в синтаксисе plantuml diagram.plantuml 6. рендерит png изображение diagram.png

Зависимости

  1. java - если для рендера изображения используется plantuml.jar
  2. requirements.txt - необходимые библиотеки Python

TODO

  1. добавить маппинг на название внешний систем согласно файлу
    1. AMG Список сервисов со статусами подключений 20250531.xlsx
    2. сейчас внешние системы именуются по значению в CONNECTOR NAME
  2. дорисовать обратные стрелки от connector-bhs в топики для bim-storage