Php динамическая страница формирования конфига из темплейта
длинно:
Страничка или несколько
1 - На главной страничке форма выбора, вида списка, составленного из имен файлов из директории env проекта
например:
- full_env1
- small_env1
- tiny_env1
2 - Выбирается одно, далее на страничке, в секцию справа подгружается из данного файла список имен компонент (это докер-имеджей)
например:
- nginx
- php
- mysql
3 -Напротив каждого рисуется выбор версии выпадающим списком
Список строится путем запроса по API к докер-реджестри /указывается в конфиге, дефолтно в конфиге - докерхаб/
Эта часть уже написана - указано в примере ниже, выгрести надо только тэги
Версия - это тег имеджа на реджестри
Дефолтно не выбрано, пользователь должен проставить версию
рисуем 5-10 последних,свежих (значение в конфиге), потом "..." при нажатии на которые список вываливает весь
Список можно хранить в директории tmp проекта, но тогда надо будет рядом с выбором версий сделать значек по которому список будет перегенерен путем запроса
4 -При выбранных версиях компонентов появляется кнопка, пусть будет со словом "generate"
При нажатии кнопки генерируется конфиг на основе темплейта из директории templates имя которого соответствует имени окружения
5 - Для дебага конфиг выводится "под кат" (при выставленном флаге дебаг в конфиге) и присутствует кнопка "run" по которой пусть:
a) снерированный конфиг кладется в папочку generated проекта
б) имя конфига берется как: окружение + имя_пользователя (из переменных веб-сервера, если есть ldap - то это пользователя ldap, если нет - anonymous) + текущая дата в формате YY.MM.DD.HH.mm
в) вызывается шелл команда, например "docker stack deploy путь_до_сгенеренного_конфига имя_из_предыдущего_пункта"
6 - рисуется на странице кружок ожидания, "под кат" выводится лог команды из предыдущего пункта
7 - по окончанию команды рисуется зеленый или красный кружечек в зависимости от exit-code команды
8 - лог команды кладется рядом с генеренным конфигом в формате тоже_имя.log
9 - появляется кнопка сбросить все и вернуться в начало для следующего запуска
для примера есть готовое на php общение с реджестри - https://github.com/zhangsean/registry-ui
Темплейты обсудим с исполнителем
Готов на вариант без красивостей, с последующим натягиванием красивостей