docs(tools): канонический пайплайн + история ужесточения генерации YAML
- TOOLS/README.md: раздел «Канонический пайплайн (порядок шагов)» и описание безопасной генерации (staging → атомарная замена, бэкапы, маркер .stand); - TOOLS/ARCHITECTURE.md: ссылки devops/… → TOOLS/config/<stand>/…; - HISTORY/2026-09-30_yaml_pipeline_hardening.md: полная история изменений (что было не так, что сделано, прогон по стендам, коммиты, проверки).
This commit is contained in:
@@ -2,6 +2,45 @@
|
||||
|
||||
Каждый инструмент — независимый Go-модуль.
|
||||
|
||||
## Канонический пайплайн (порядок шагов)
|
||||
|
||||
```bash
|
||||
# 1) YAML-спеки сервисов из API (per-stand!)
|
||||
./TOOLS/scripts/01_generate_yamls.sh --profile TOOLS/config/dev
|
||||
|
||||
# 2) Go-ресурсы + документация из этих YAML
|
||||
./TOOLS/scripts/02_generate_resources_and_docs_v2.sh --profile TOOLS/config/dev
|
||||
|
||||
# 3) (релиз) сборка 3 платформ + публикация в реестр
|
||||
./TOOLS/scripts/03_build_and_upload_provider.sh --profile TOOLS/config/dev
|
||||
```
|
||||
|
||||
`--profile` обязателен: без него скрипты выходят с кодом 2 (никаких дефолтов).
|
||||
|
||||
### Шаг 1 — безопасная генерация YAML
|
||||
|
||||
`01_generate_yamls.sh` работает по принципу «сначала во временное, потом атомарная замена»:
|
||||
|
||||
- генерация идёт в staging-каталог `generated/<stand>/resources_yaml.staging.<pid>/`;
|
||||
- рабочий `generated/<stand>/resources_yaml/` **не** удаляется и **не** модифицируется до полного успеха;
|
||||
- при полном успехе старый каталог уезжает в бэкап `resources_yaml.bak-<UTC>`,
|
||||
а staging встаёт на его место (атомарный `mv` в пределах одного FS),
|
||||
хранятся последние `KEEP_BACKUPS` (по умолчанию 5);
|
||||
- при любой ошибке замена **отменяется**: старый каталог цел, частичный результат лежит в staging для разбора, скрипт выходит с кодом 1;
|
||||
- в каталоге лежит маркер `.stand`, защищающий от генерации не в тот стенд.
|
||||
|
||||
Перегенерировать все стенды подряд:
|
||||
|
||||
```bash
|
||||
for s in dev test prod; do
|
||||
./TOOLS/scripts/01_generate_yamls.sh --profile TOOLS/config/$s || break
|
||||
done
|
||||
```
|
||||
|
||||
> Примечание: часть параметров API отдаёт со случайным `default`-суффиксом
|
||||
> (`db-ievgpdvu` → `db-ujama5rb` и т.п.), поэтому побайтовое сравнение двух
|
||||
> прогонов даёт различия в этих строках — это не регрессия.
|
||||
|
||||
## yaml-generator
|
||||
|
||||
API Nubes → `resources_yaml/*.yaml`
|
||||
|
||||
Reference in New Issue
Block a user