WEB UI для диаграммы разывертывания сервисов на основе helm файлов
| data/key | ||
| docs | ||
| static | ||
| templates | ||
| .gitignore | ||
| app.log | ||
| Config.yaml | ||
| generate_diagramm.py | ||
| gitlab.py | ||
| plantuml.jar | ||
| plantuml.py | ||
| README.md | ||
| requirements.txt | ||
| utils.py | ||
| web.py | ||
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
Описание компонентов
- Config.yaml -настройки скрипта
- секция env
- local_render:
false- использовать для рендера plantuml.jar - plantuml_render_server:
http://localhost:8080/img/- адрес сервиса для внешнего рендера- проверено на docker образе plantuml/plantuml-server. Для адреса http://localhost:8080/img/
- local_render:
- секция 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
- repo_url:
- секция env
- web.py - модуль на Flask для UI
- выбор настроек для генерации изображения
- создание новой схемы
- навигация по картинке как по карте : перемещение при удержании ПКМ, скрол для масштабирования
- utils.py - вспомогательный модуль
- Читает Config.yaml
- обходит все вложенные папки и читает helm файлы (формат yaml) по шаблону
*-values_dc1.yaml- прод контур в DC1*-values_dc2.yaml- прод контур в DC2*-values_test.yaml- тест
- создает параметры, необходимые для отрисовки диаграммы в файл
- generated_diagramm_config.json
- generate_diagramm.py - скрипт для создания изображения png со схемой сервисов 4. читает файл настроек generated_diagramm_config.json 5. создает текстовый файл с диаграммой в синтаксисе plantuml diagram.plantuml 6. рендерит png изображение diagram.png
Зависимости
- java - если для рендера изображения используется plantuml.jar
- requirements.txt - необходимые библиотеки Python
TODO
- добавить маппинг на название внешний систем согласно файлу
- AMG Список сервисов со статусами подключений 20250531.xlsx
- сейчас внешние системы именуются по значению в CONNECTOR NAME
- дорисовать обратные стрелки от connector-bhs в топики для bim-storage