diff --git a/.gitignore b/.gitignore index e3955e8..d6d5463 100644 --- a/.gitignore +++ b/.gitignore @@ -36,9 +36,6 @@ provider/generated/ # Локально собранный провайдер под dev_overrides (см. TMP/terraformrc.dev) TMP/devbin/ terraform-provider-nubes - -# === Build artifacts (generated by devops scripts) === -devops/profiles/*/generated/ *.zip *.tar.gz *.sha256 diff --git a/DOCS_PIPELINE/README.md b/DOCS_PIPELINE/README.md index b73db7e..a31a773 100644 --- a/DOCS_PIPELINE/README.md +++ b/DOCS_PIPELINE/README.md @@ -102,7 +102,7 @@ API стенда ──▶ generated/<стенд>/resources_yaml/ ──▶ gene | `scripts/publish-docs.sh` | актуальная заливка docs в S3 (без версии) | | `scripts/publish-doc-page.sh` | заливка одной страницы | | `TOOLS/config/<стенд>/profile.env` | параметры стенда (endpoint, NAMESPACE, VERSION, токен, GPG) | -| `TOOLS/config/registry.env`, `services_list.txt`, `operation_timeouts.json` | конфиги реестра/генерации | +| `TOOLS/config/registry.env`, `TOOLS/config/<стенд>/{services_list.txt,operation_timeouts.json}` | конфиги реестра/генерации | | `TOOLS/bin/` | генераторы: `resource-generator`, `docs-generator`, `yaml-generator` | | `secrets/{dev,test,prod}.token`, `.s3cfg_registry`, `private_key.asc` | токены API, S3-креды, GPG | | `mkdocs.yml` | базовый конфиг MkDocs (тема material, exclude_docs, extra) | diff --git a/HOW_TO/DEVOPS_BUILD_PIPELINE.md b/HOW_TO/DEVOPS_BUILD_PIPELINE.md index 3021968..fddb152 100644 --- a/HOW_TO/DEVOPS_BUILD_PIPELINE.md +++ b/HOW_TO/DEVOPS_BUILD_PIPELINE.md @@ -45,7 +45,7 @@ Provider naming defaults: Script: `TOOLS/scripts/01_generate_yamls.sh --profile TOOLS/config/<стенд>` Input list of services: -- `TOOLS/config/services_list.txt` (service_id only) +- `TOOLS/config/<стенд>/services_list.txt` (service_id + name; у каждого стенда свой список) Token options: - `TOKEN_FILE=/home/naeel/terra/HH-MM-SS.token`, or @@ -106,7 +106,7 @@ export S3_SECRET_KEY=... - The GPG private key must remain stable across releases. Do not regenerate per build. - If the key is regenerated, the registry server must be updated to serve the new public key. - Terraform will fail with `authentication signature from unknown issuer` if the registry public key does not match the signing key. -- `TOOLS/config/services_list.txt` — источник правды по тому, какие сервисы генерируются. +- `TOOLS/config/<стенд>/services_list.txt` — источник правды по тому, какие сервисы генерируются (у каждого стенда свой). - Если меняется версия провайдера — обновить `provider/main.go` (ранее `universal_rebuild/main.go` — устаревший путь). ## One-time GPG bootstrap (do this once, keep the key stable) diff --git a/HOW_TO/HOWTO_ADD_NEW_SERVICE.md b/HOW_TO/HOWTO_ADD_NEW_SERVICE.md index b4fa293..7ec5907 100644 --- a/HOW_TO/HOWTO_ADD_NEW_SERVICE.md +++ b/HOW_TO/HOWTO_ADD_NEW_SERVICE.md @@ -2,7 +2,7 @@ ## 1. Где прописывать -Единственная точка входа — `devops/config/services_list.txt` (или профильный `profiles/{stand}/services_list.txt`). +Единственная точка входа — `TOOLS/config/<стенд>/services_list.txt` (у каждого стенда свой список). Формат строки: ``` @@ -158,21 +158,22 @@ operations: ## 8. Быстрый старт: добавляем новый сервис ```bash -# 1. Добавить строку в services_list.txt -echo "200 my_new_service # Моя новая услуга" >> devops/config/services_list.txt +# 1. Добавить строку в список сервисов нужного стенда +# (TOOLS/config/dev|test|prod/services_list.txt) +echo "200 my_new_service # Моя новая услуга" >> TOOLS/config/test/services_list.txt # 2. Сгенерировать YAML (test-стенд) -devops/01_generate_yamls.sh --profile devops/profiles/test +./TOOLS/scripts/01_generate_yamls.sh --profile TOOLS/config/test # 3. Сгенерировать Go-код + доки -devops/02_generate_resources_and_docs_v2.sh --profile devops/profiles/test +./TOOLS/scripts/02_generate_resources_and_docs_v2.sh --profile TOOLS/config/test # 4. Проверить что появился файл -ls devops/profiles/test/generated/resources_yaml/200_my_new_service.yaml -ls devops/profiles/test/generated/go/200_my_new_service_resource.go +ls generated/test/resources_yaml/200_my_new_service.yaml +ls generated/test/go/200_my_new_service_resource.go # 5. Собрать и задеплоить провайдер -devops/03_build_and_upload_provider.sh --profile devops/profiles/test +./TOOLS/scripts/03_build_and_upload_provider.sh --profile TOOLS/config/test # 6. Написать тестовый манифест в TEST_STAND/my_new_service/main.tf # 7. terraform init && terraform plan && terraform apply diff --git a/HOW_TO/README.md b/HOW_TO/README.md index ea95751..3cbb610 100644 --- a/HOW_TO/README.md +++ b/HOW_TO/README.md @@ -50,7 +50,7 @@ cd /home/naeel/TF/tf_provider | Пайплайн публикации документации | `../DOCS_PIPELINE/README.md`, `../DOCS_PIPELINE/publish-docs.sh` | | Правила генерации кода провайдера (ОБЯЗАТЕЛЬНЫ для генератора) | `../TOOLS/ARCHITECTURE.md` | | Скрипты пайплайна | `../TOOLS/scripts/` | -| Конфиги стендов и общий реестр | `../TOOLS/config/` (`registry.env`, `<стенд>/profile.env`, `services_list.txt`) | +| Конфиги стендов и общий реестр | `../TOOLS/config/` (`registry.env`, `<стенд>/profile.env`, `<стенд>/services_list.txt`) | | Секреты (не коммитить) | `../secrets/` | | Текущая задача по IaC/`modify` | `../NOTES/40_chat_summaries/CHAT_RESUME_IAC_2026-09-24.md` | diff --git a/README.md b/README.md index e7e46e0..3353cb1 100644 --- a/README.md +++ b/README.md @@ -116,7 +116,8 @@ API стенда ──01──▶ generated/<стенд>/resources_yaml/*.yaml - Реестр: `tf-registry.containerk8s.services.ngcloud.ru`; бакет бинарников `nubes-terraform-registry`. - Общий конфиг реестра: `TOOLS/config/registry.env`; стенд-специфика: `TOOLS/config/<стенд>/profile.env` (`NUBES_API_ENDPOINT`, `TOKEN_FILE`, `NAMESPACE`, `VERSION`). -- Список сервисов для генерации: `TOOLS/config/services_list.txt`. +- Список сервисов для генерации: `TOOLS/config/<стенд>/services_list.txt` (у каждого стенда свой; + общего списка нет — см. `HISTORY/2026-09-30_yaml_pipeline_hardening.md`). --- diff --git a/scripts/publish-doc-page.sh b/scripts/publish-doc-page.sh index ef2b0d0..dffd0e5 100755 --- a/scripts/publish-doc-page.sh +++ b/scripts/publish-doc-page.sh @@ -5,12 +5,12 @@ set -euo pipefail # # Usage examples: # ./scripts/publish-doc-page.sh \ -# --profile devops/profiles/test \ +# --profile TOOLS/config/test \ # --version 5.0.17 \ # --page 30_registry/guides/getting-started/index.html # # ./scripts/publish-doc-page.sh \ -# --profile devops/profiles/prod \ +# --profile TOOLS/config/prod \ # --version 2.1.26 \ # --page 30_registry/guides/getting-started/ @@ -31,7 +31,7 @@ Usage: publish-doc-page.sh --profile --version --page [--site-dir ] Required: - --profile Path to stand profile dir (e.g. devops/profiles/test) + --profile Path to stand profile dir (e.g. TOOLS/config/test) --version Docs version (e.g. 5.0.17) --page Relative path inside built site dir, e.g.: 30_registry/guides/getting-started/index.html