From 84a3513f02f36f7d00f0fe7c675afe9bc56a96e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9CNaeel=E2=80=9D?= Date: Sat, 18 Jul 2026 15:48:22 +0400 Subject: [PATCH] =?UTF-8?q?fix:=20terra.k8c.ru=20=E2=86=92=20registry.kube?= =?UTF-8?q?5s.ru=20everywhere?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/publish-docs.yml | 2 +- PROD_STAND/PG1/main.tf | 2 +- PROD_STAND/POSTGRES/main.tf | 2 +- PROD_STAND/RABBIT/main.tf | 2 +- README.md | 2 +- TEST_STAND/LUCEE/main.tf | 2 +- TEST_STAND/MARIA_DB/main.tf | 2 +- TEST_STAND/MARIA_DB/terraformrc.dev | 2 +- TEST_STAND/PG/README.md | 2 +- TEST_STAND/PG/main.tf | 2 +- TEST_STAND/POSTGRES/main.tf | 2 +- TEST_STAND/buck0/README.md | 4 +- TEST_STAND/buck0/main.tf | 2 +- TEST_STAND/kuber/main.tf | 2 +- TOOLS/scripts/04_build_and_publish_docs.sh | 2 +- TOOLS/scripts/build-provider.sh | 2 +- docs/20_discovery/development-journey.md | 6 +-- .../20_discovery/gpg_key_rotation_scenario.md | 8 +-- .../20_discovery/session_report_2026-02-13.md | 2 +- docs/30_registry/guides/getting-started.md | 4 +- docs/50_history/00_system_mechanics.md | 4 +- docs/50_history/01_initial_operator_setup.md | 6 +-- docs/50_history/02_registry_protocol_fix.md | 2 +- .../03_domain_migration_and_hotfix.md | 6 +-- .../09_s3_migration_and_branded_docs.md | 2 +- ...ce_generation_rebuild_and_5_0_1_publish.md | 4 +- ...alysis_pipeline_architecture_2026_06_30.md | 4 +- docs/CHAT_RESUME_PLAN_VM.md | 6 +-- docs/CODEBASE_ANALYSIS_AND_ROADMAP.md | 2 +- docs/MIGRATION_PLAN_FOR_AGENT.md | 20 ++++---- docs/help/BUILD.md | 51 +++++++++++++++++++ docs/help/how-to-docs.md | 6 +-- docs/howitwasdone.md | 2 +- docs/ops/DOMAIN_MIGRATION.md | 12 ++--- docs/ops/STANDS.md | 2 +- mkdocs.yml | 2 +- scripts/publish-doc-page.sh | 2 +- 37 files changed, 119 insertions(+), 68 deletions(-) create mode 100644 docs/help/BUILD.md diff --git a/.github/workflows/publish-docs.yml b/.github/workflows/publish-docs.yml index ee6fe79..0abfb81 100644 --- a/.github/workflows/publish-docs.yml +++ b/.github/workflows/publish-docs.yml @@ -9,7 +9,7 @@ on: env: NAMESPACE: nubes NAME: nubes - DEFAULT_HOST: terra.k8c.ru + DEFAULT_HOST: registry.kube5s.ru jobs: publish: diff --git a/PROD_STAND/PG1/main.tf b/PROD_STAND/PG1/main.tf index e20f5ae..1839d0e 100644 --- a/PROD_STAND/PG1/main.tf +++ b/PROD_STAND/PG1/main.tf @@ -1,7 +1,7 @@ terraform { required_providers { nubes = { - source = "terra.k8c.ru/nubes/nubes" + source = "registry.kube5s.ru/nubes/nubes" version = "2.1.26" } } diff --git a/PROD_STAND/POSTGRES/main.tf b/PROD_STAND/POSTGRES/main.tf index 8994b89..03b993a 100644 --- a/PROD_STAND/POSTGRES/main.tf +++ b/PROD_STAND/POSTGRES/main.tf @@ -1,7 +1,7 @@ terraform { required_providers { nubes = { - source = "terra.k8c.ru/nubes/nubes" + source = "registry.kube5s.ru/nubes/nubes" version = "2.1.12" } } diff --git a/PROD_STAND/RABBIT/main.tf b/PROD_STAND/RABBIT/main.tf index 4f95b83..08c7a19 100644 --- a/PROD_STAND/RABBIT/main.tf +++ b/PROD_STAND/RABBIT/main.tf @@ -2,7 +2,7 @@ terraform { required_providers { nubes = { - source = "terra.k8c.ru/nubes/nubes" + source = "registry.kube5s.ru/nubes/nubes" version = "2.1.10" } } diff --git a/README.md b/README.md index 9295b04..f81c06c 100644 --- a/README.md +++ b/README.md @@ -25,7 +25,7 @@ S3 environment: - `S3_SECRET_KEY` Provider naming defaults: -- `REGISTRY_HOSTNAME`: `terra.k8c.ru` +- `REGISTRY_HOSTNAME`: `registry.kube5s.ru` - `NAMESPACE`: `nubes` - `NAME`: `nubes` diff --git a/TEST_STAND/LUCEE/main.tf b/TEST_STAND/LUCEE/main.tf index a6eb950..96dbd1f 100644 --- a/TEST_STAND/LUCEE/main.tf +++ b/TEST_STAND/LUCEE/main.tf @@ -1,7 +1,7 @@ terraform { required_providers { nubes = { - source = "terra.k8c.ru/nubes-test/nubes" + source = "registry.kube5s.ru/nubes-test/nubes" version = "5.0.61" } } diff --git a/TEST_STAND/MARIA_DB/main.tf b/TEST_STAND/MARIA_DB/main.tf index a6eb950..96dbd1f 100644 --- a/TEST_STAND/MARIA_DB/main.tf +++ b/TEST_STAND/MARIA_DB/main.tf @@ -1,7 +1,7 @@ terraform { required_providers { nubes = { - source = "terra.k8c.ru/nubes-test/nubes" + source = "registry.kube5s.ru/nubes-test/nubes" version = "5.0.61" } } diff --git a/TEST_STAND/MARIA_DB/terraformrc.dev b/TEST_STAND/MARIA_DB/terraformrc.dev index f53903b..19fd202 100644 --- a/TEST_STAND/MARIA_DB/terraformrc.dev +++ b/TEST_STAND/MARIA_DB/terraformrc.dev @@ -1,6 +1,6 @@ provider_installation { dev_overrides { - "terra.k8c.ru/nubes/nubes" = "../../universal_rebuild/bin" + "registry.kube5s.ru/nubes/nubes" = "../../universal_rebuild/bin" } direct {} } diff --git a/TEST_STAND/PG/README.md b/TEST_STAND/PG/README.md index 8d184f0..7a6c31b 100644 --- a/TEST_STAND/PG/README.md +++ b/TEST_STAND/PG/README.md @@ -40,7 +40,7 @@ terraform destroy ## Провайдер -- **Источник**: `terra.k8c.ru/nubes-test/nubes` +- **Источник**: `registry.kube5s.ru/nubes-test/nubes` - **Версия**: `5.0.57` - **API**: `https://lk-api-gateway-test.ngcloud.ru/api/v1/svc` diff --git a/TEST_STAND/PG/main.tf b/TEST_STAND/PG/main.tf index bb4f77f..aa75cc9 100644 --- a/TEST_STAND/PG/main.tf +++ b/TEST_STAND/PG/main.tf @@ -1,7 +1,7 @@ terraform { required_providers { nubes = { - source = "terra.k8c.ru/nubes-test/nubes" + source = "registry.kube5s.ru/nubes-test/nubes" version = "5.0.64" } } diff --git a/TEST_STAND/POSTGRES/main.tf b/TEST_STAND/POSTGRES/main.tf index cf1f7a5..269dd32 100644 --- a/TEST_STAND/POSTGRES/main.tf +++ b/TEST_STAND/POSTGRES/main.tf @@ -2,7 +2,7 @@ terraform { required_providers { nubes = { source = "registry.kube5s.ru/nubes-test/nubes" - version = "5.1.2" + version = "5.1.3" } } } diff --git a/TEST_STAND/buck0/README.md b/TEST_STAND/buck0/README.md index 83ba078..eafe298 100644 --- a/TEST_STAND/buck0/README.md +++ b/TEST_STAND/buck0/README.md @@ -36,6 +36,6 @@ terraform destroy ## Провайдер -- **Источник**: `terra.k8c.ru/nubes-test/nubes` +- **Источник**: `registry.kube5s.ru/nubes-test/nubes` - **Версия**: `5.0.75` -- **Registry**: `https://terra.k8c.ru` +- **Registry**: `https://registry.kube5s.ru` diff --git a/TEST_STAND/buck0/main.tf b/TEST_STAND/buck0/main.tf index 346a620..c0f7d7a 100644 --- a/TEST_STAND/buck0/main.tf +++ b/TEST_STAND/buck0/main.tf @@ -1,7 +1,7 @@ terraform { required_providers { nubes = { - source = "terra.k8c.ru/nubes-test/nubes" + source = "registry.kube5s.ru/nubes-test/nubes" version = "5.0.64" } } diff --git a/TEST_STAND/kuber/main.tf b/TEST_STAND/kuber/main.tf index 1c57185..440ee9c 100644 --- a/TEST_STAND/kuber/main.tf +++ b/TEST_STAND/kuber/main.tf @@ -1,7 +1,7 @@ terraform { required_providers { nubes = { - source = "terra.k8c.ru/nubes-test/nubes" + source = "registry.kube5s.ru/nubes-test/nubes" version = "5.0.68" } } diff --git a/TOOLS/scripts/04_build_and_publish_docs.sh b/TOOLS/scripts/04_build_and_publish_docs.sh index 8d7d00d..90975db 100755 --- a/TOOLS/scripts/04_build_and_publish_docs.sh +++ b/TOOLS/scripts/04_build_and_publish_docs.sh @@ -64,7 +64,7 @@ if [[ -z "$VERSION" ]]; then exit 2 fi -REGISTRY_HOST="${REGISTRY_HOST:-terra.k8c.ru}" +REGISTRY_HOST="${REGISTRY_HOST:-registry.kube5s.ru}" NAMESPACE="${NAMESPACE:-nubes}" PROVIDER_NAME="${PROVIDER_NAME:-nubes}" export REGISTRY_HOST NAMESPACE PROVIDER_NAME VERSION diff --git a/TOOLS/scripts/build-provider.sh b/TOOLS/scripts/build-provider.sh index 8ea9b79..27ff492 100755 --- a/TOOLS/scripts/build-provider.sh +++ b/TOOLS/scripts/build-provider.sh @@ -34,7 +34,7 @@ BUILD_DIR="${BUILD_DIR:-${ROOT_DIR}/artifacts/provider_build}" GPG_KEY_FILE="${GPG_KEY_FILE:-${ROOT_DIR}/secrets/private_key.asc}" VERSION="${1:-2.0.2}" -REGISTRY_HOSTNAME="${REGISTRY_HOSTNAME:-terra.k8c.ru}" +REGISTRY_HOSTNAME="${REGISTRY_HOSTNAME:-registry.kube5s.ru}" NAMESPACE="${NAMESPACE:-nubes}" PROVIDER_NAME="${PROVIDER_NAME:-nubes}" S3_BUCKET="${S3_BUCKET:-terraform-registry}" diff --git a/docs/20_discovery/development-journey.md b/docs/20_discovery/development-journey.md index 428d475..d61ee9a 100644 --- a/docs/20_discovery/development-journey.md +++ b/docs/20_discovery/development-journey.md @@ -847,7 +847,7 @@ $ ls -lh terraform-provider-nubes ### 14.1 Проблемы "Последней мили" После настройки SSL и Ingress возникли сложности с установкой провайдера командой `terraform init`: 1. **Checksum Mismatch**: Пересборка кода провайдера меняла хэш бинарника, требуя обновления файла `SHA256SUMS`. -2. **S3 Signature Mismatch**: Registry Server выдавал клиенту (Terraform) прямые Presigned URL на S3. Terraform пытался скачать файл, обращаясь к `terra.k8c.ru`, но подпись была сгенерирована для внутреннего хоста. Это приводило к ошибкам 403 Forbidden. +2. **S3 Signature Mismatch**: Registry Server выдавал клиенту (Terraform) прямые Presigned URL на S3. Terraform пытался скачать файл, обращаясь к `registry.kube5s.ru`, но подпись была сгенерирована для внутреннего хоста. Это приводило к ошибкам 403 Forbidden. 3. **GPG Verification Failure**: Terraform (современные версии) требует обязательной подписи бинарных файлов GPG ключом. Без этого установка прерывалась с ошибкой `authentication signature from unknown issuer`. ### 14.2 Комплексное решение @@ -866,9 +866,9 @@ Terraform Registry Protocol требует передачи публичных 3. **Критический шаг**: Публичный ключ GPG (ASCII Armor) был "зашит" прямо в исходный код Registry Server (`main.go`). Теперь сервер при отдаче ссылки на скачивание также отдает ключ, которым клиент может проверить подпись. ### 14.3 Итог -Провайдер `terra.k8c.ru/nubes/nubes` версии `1.0.0` успешно инициализируется! +Провайдер `registry.kube5s.ru/nubes/nubes` версии `1.0.0` успешно инициализируется! ``` -Installed terra.k8c.ru/nubes/nubes v1.0.0 (self-signed, key ID FFE0F4D723F14BCA) +Installed registry.kube5s.ru/nubes/nubes v1.0.0 (self-signed, key ID FFE0F4D723F14BCA) Terraform has been successfully initialized! ``` Это полностью закрывает вопрос доставки провайдера (Provider Delivery) и позволяет переходить к полноценному использованию. diff --git a/docs/20_discovery/gpg_key_rotation_scenario.md b/docs/20_discovery/gpg_key_rotation_scenario.md index 799f220..3c26b58 100644 --- a/docs/20_discovery/gpg_key_rotation_scenario.md +++ b/docs/20_discovery/gpg_key_rotation_scenario.md @@ -5,7 +5,7 @@ ## 1. Проблема (Контекст) При попытке выполнить `terraform init` клиент получал ошибку проверки сигнатуры. **Диагностика показала:** -* Terraform Registry Server (на `terra.k8c.ru`) в своем коде (`main.go`) отдавал клиентам публичный GPG ключ с ID `3534B7A1E185F2C1`. +* Terraform Registry Server (на `registry.kube5s.ru`) в своем коде (`main.go`) отдавал клиентам публичный GPG ключ с ID `3534B7A1E185F2C1`. * Приватный ключ для этого ID отсутствовал в окружении, поэтому новые сборки провайдера невозможно было подписать так, чтобы они прошли проверку этим ключом. * Реестр был "рассинхронизирован" с артефактами. @@ -63,7 +63,7 @@ gpg --batch --generate-key gpg-gen-key.conf ``` ### Шаг 4: Публикация в S3 -Загружены три обязательных файла в структуру директорий реестра (`terra.k8c.ru/nubes/nubes/1.0.0/`): +Загружены три обязательных файла в структуру директорий реестра (`registry.kube5s.ru/nubes/nubes/1.0.0/`): 1. Сам архив: `terraform-provider-nubes_1.0.0_linux_amd64.zip` 2. Файл сумм: `terraform-provider-nubes_1.0.0_SHA256SUMS` 3. Подпись сумм: `terraform-provider-nubes_1.0.0_SHA256SUMS.sig` @@ -77,13 +77,13 @@ gpg --batch --generate-key gpg-gen-key.conf ```hcl provider "nubes" { - source = "terra.k8c.ru/nubes/nubes" + source = "registry.kube5s.ru/nubes/nubes" version = "1.0.0" } ``` Лог `terraform init`: -> Installed terra.k8c.ru/nubes/nubes v1.0.0 (self-signed, key ID BC2B32E138B12582) +> Installed registry.kube5s.ru/nubes/nubes v1.0.0 (self-signed, key ID BC2B32E138B12582) ### Функциональное тестирование Был проведен полный цикл создания ресурсов через скачанный провайдер: diff --git a/docs/20_discovery/session_report_2026-02-13.md b/docs/20_discovery/session_report_2026-02-13.md index 5dbfa78..8e604fb 100644 --- a/docs/20_discovery/session_report_2026-02-13.md +++ b/docs/20_discovery/session_report_2026-02-13.md @@ -26,7 +26,7 @@ - Published provider 2.0.6 to registry S3 via devops/03_build_and_upload_provider.sh. ## Terraform test_dummy -- terraform init -upgrade pulled terra.k8c.ru/nubes/nubes v2.0.6. +- terraform init -upgrade pulled registry.kube5s.ru/nubes/nubes v2.0.6. - terraform plan: 2 changes (nubes_postgres.db2, nubes_lucee.app1) with Vault TLS handshake timeouts. - terraform apply failed: API error 408 during modify (failed to set param 267). diff --git a/docs/30_registry/guides/getting-started.md b/docs/30_registry/guides/getting-started.md index aedee15..b13378c 100644 --- a/docs/30_registry/guides/getting-started.md +++ b/docs/30_registry/guides/getting-started.md @@ -24,7 +24,7 @@ terraform { required_providers { nubes = { - source = "terra.k8c.ru/nubes/nubes" + source = "registry.kube5s.ru/nubes/nubes" version = "2.1.23" # Поставьте нужную вам версию провайдера } } @@ -249,7 +249,7 @@ resource "nubes_nodejs" "app3" { Ниже полный пример `resources.tf` для RabbitMQ + Lucee UI + NodeJS воркера. Комментарий: UI Lucee отправляет CRUD‑запросы в RabbitMQ, а применение изменений в Postgres выполняет отдельный воркер на NodeJS. -Сервис Postgres должен быть запущен заранее. В данном примере используется Postgres из раздела https://terra.k8c.ru/docs/nubes/nubes/2.1.7/30_registry/guides/getting-started/#lucee-postgress +Сервис Postgres должен быть запущен заранее. В данном примере используется Postgres из раздела https://registry.kube5s.ru/docs/nubes/nubes/2.1.7/30_registry/guides/getting-started/#lucee-postgress ```hcl title="resources.tf" # RabbitMQ кластер для демо. diff --git a/docs/50_history/00_system_mechanics.md b/docs/50_history/00_system_mechanics.md index 4e22fe7..d8e7bea 100644 --- a/docs/50_history/00_system_mechanics.md +++ b/docs/50_history/00_system_mechanics.md @@ -22,7 +22,7 @@ ### 3.1. Переменные Окружения (ENV) * **`REGISTRY_HOSTNAME`**: Ключевая переменная. * Где задается: `Deployment` (operator & registry-server). - * Значение по умолчанию: `terra.k8c.ru`. + * Значение по умолчанию: `registry.kube5s.ru`. * Влияние: * **Operator**: Передает это значение в Job. * **Job**: Использует как часть пути в S3 (`bucket/HOSTNAME/...`). @@ -32,7 +32,7 @@ ### 3.2. Структура S3 Бакет: `terraform-providers` Схема пути: `{hostname}/{namespace}/{provider_name}/{version}/{file}` -Пример: `terra.k8c.ru/hashicorp/scaffolding/0.0.1/terraform-provider-scaffolding_0.0.1_linux_amd64.zip` +Пример: `registry.kube5s.ru/hashicorp/scaffolding/0.0.1/terraform-provider-scaffolding_0.0.1_linux_amd64.zip` ### 3.3. RBAC (Security) * Оператор работает от имени SA `terraform-operator`. diff --git a/docs/50_history/01_initial_operator_setup.md b/docs/50_history/01_initial_operator_setup.md index 20234b2..853d054 100644 --- a/docs/50_history/01_initial_operator_setup.md +++ b/docs/50_history/01_initial_operator_setup.md @@ -79,11 +79,11 @@ - `S3` (Storage) - `terraform-operator` (Controller) - `registry-server` (API) -- Настроен Ingress на домен `terra.k8c.ru`. +- Настроен Ingress на домен `registry.kube5s.ru`. - Проведен успешный тестовый прогон: - CR `scaffolding-v0-0-1` создан. - Job `build-scaffolding-v0-0-1` успешно отработал. - - Артефакты появились в S3 по корректному пути: `/data/terraform-providers/terra.k8c.ru/hashicorp/scaffolding/0.0.1/`. + - Артефакты появились в S3 по корректному пути: `/data/terraform-providers/registry.kube5s.ru/hashicorp/scaffolding/0.0.1/`. ## 5. Как использовать @@ -93,7 +93,7 @@ terraform { required_providers { scaffolding = { - source = "terra.k8c.ru/hashicorp/scaffolding" + source = "registry.kube5s.ru/hashicorp/scaffolding" version = "0.0.1" } } diff --git a/docs/50_history/02_registry_protocol_fix.md b/docs/50_history/02_registry_protocol_fix.md index 8d5e789..de7e5c1 100644 --- a/docs/50_history/02_registry_protocol_fix.md +++ b/docs/50_history/02_registry_protocol_fix.md @@ -65,4 +65,4 @@ gpgKey := GPGPublicKey{ ## Результат Команда `terraform init` успешно прошла проверку подписи и установила провайдер: -> Installed terra.k8c.ru/nubes/nubes v1.0.0 (self-signed, key ID FFE0F4D723F14BCA) +> Installed registry.kube5s.ru/nubes/nubes v1.0.0 (self-signed, key ID FFE0F4D723F14BCA) diff --git a/docs/50_history/03_domain_migration_and_hotfix.md b/docs/50_history/03_domain_migration_and_hotfix.md index f156150..be7bbc2 100644 --- a/docs/50_history/03_domain_migration_and_hotfix.md +++ b/docs/50_history/03_domain_migration_and_hotfix.md @@ -1,8 +1,8 @@ -# 03. Миграция на terra.k8c.ru и Hot-Patch Registry Server +# 03. Миграция на registry.kube5s.ru и Hot-Patch Registry Server **Дата**: 23 января 2026 **Статус**: Успешно -**Задача**: Перевести Terraform Registry с домена `terrareg.kube5s.ru` на `terra.k8c.ru` и заставить работать `terraform init` в новом кластере без доступа к Docker Registry. +**Задача**: Перевести Terraform Registry с домена `terrareg.kube5s.ru` на `registry.kube5s.ru` и заставить работать `terraform init` в новом кластере без доступа к Docker Registry. --- @@ -19,7 +19,7 @@ ### Этап 1: Обновление манифестов С помощью `sed` и ручных правок заменены все вхождения домена. - Обновлены Ingress, Deployment (env vars), Build Script. -- Ingress настроен на `terra.k8c.ru` с использованием `cert-manager` (LetsEncrypt). +- Ingress настроен на `registry.kube5s.ru` с использованием `cert-manager` (LetsEncrypt). ### Этап 2: Проблема "Unknown Issuer" При попытке `terraform init` возникла ошибка: diff --git a/docs/50_history/09_s3_migration_and_branded_docs.md b/docs/50_history/09_s3_migration_and_branded_docs.md index b342828..a34473d 100644 --- a/docs/50_history/09_s3_migration_and_branded_docs.md +++ b/docs/50_history/09_s3_migration_and_branded_docs.md @@ -37,7 +37,7 @@ | Ошибка | Причина | Решение | | :--- | :--- | :--- | | `CrashLoopBackOff` | Бинарник в образе всё еще ожидал старые ENV | Массовая замена через `sed` и `replace_string`, пересборка образа. | -| 404 на страницах документации | `docs.go` искал файлы по ключу `terra.k8c.ru/docs/...` | Исправлен `docsObjectKey`: теперь префикс `docs/` фиксирован. | +| 404 на страницах документации | `docs.go` искал файлы по ключу `registry.kube5s.ru/docs/...` | Исправлен `docsObjectKey`: теперь префикс `docs/` фиксирован. | | Громкие предупреждения MkDocs | Ссылки на несуществующие файлы в `nav` | Очистка `mkdocs.yml` от лишних ссылок и стабов. | ## 5. Итог diff --git a/docs/50_history/17_subresource_generation_rebuild_and_5_0_1_publish.md b/docs/50_history/17_subresource_generation_rebuild_and_5_0_1_publish.md index 4f7e6b2..470cea0 100644 --- a/docs/50_history/17_subresource_generation_rebuild_and_5_0_1_publish.md +++ b/docs/50_history/17_subresource_generation_rebuild_and_5_0_1_publish.md @@ -57,8 +57,8 @@ Date: 2026-02-27 - Bump version to 5.0.1 ## Build and Publish Results -- Provider build/upload (5.0.1): success for linux/windows/darwin; GPG signed; uploaded to S3 path terra.k8c.ru/nubes/nubes/5.0.1/. -- Docs publish (5.0.1): success; mkdocs warnings about pages not in nav (expected). Published to https://terra.k8c.ru/docs/nubes/nubes/5.0.1/. +- Provider build/upload (5.0.1): success for linux/windows/darwin; GPG signed; uploaded to S3 path registry.kube5s.ru/nubes/nubes/5.0.1/. +- Docs publish (5.0.1): success; mkdocs warnings about pages not in nav (expected). Published to https://registry.kube5s.ru/docs/nubes/nubes/5.0.1/. ## Notes and Observations - Initial build attempt for 2.1.12 failed due to missing resources_yaml package embed; resolved by adding resources_yaml/embed.go. diff --git a/docs/50_history/24_ai_analysis_pipeline_architecture_2026_06_30.md b/docs/50_history/24_ai_analysis_pipeline_architecture_2026_06_30.md index 8e46517..93a0fcf 100644 --- a/docs/50_history/24_ai_analysis_pipeline_architecture_2026_06_30.md +++ b/docs/50_history/24_ai_analysis_pipeline_architecture_2026_06_30.md @@ -85,7 +85,7 @@ │ 4. Подписывает GPG (secrets/private_key.asc) │ │ 5. Загружает в S3 (s3.msk-1.ngcloud.ru) │ │ Путь: {hostname}/{namespace}/{name}/{version}/ │ -│ Пример: terra.k8c.ru/nubes/nubes/5.0.51/ │ +│ Пример: registry.kube5s.ru/nubes/nubes/5.0.51/ │ └─────────────────────────────────────────────────────────────────────┘ │ ▼ @@ -121,7 +121,7 @@ devops/profiles/ ### Universal Rebuild (`universal_rebuild/`) - **50+ ресурсов**, **полностью сгенерированы** - 3 слоя: `internal/core/` (универсальный клиент) → `internal/resources_core/` (CRUD-логика) → `internal/resources_gen/` (сгенерированные ресурсы) -- Registry: `terra.k8c.ru/nubes/nubes` +- Registry: `registry.kube5s.ru/nubes/nubes` - Версия: 5.0.51 ### Почему два? diff --git a/docs/CHAT_RESUME_PLAN_VM.md b/docs/CHAT_RESUME_PLAN_VM.md index a99135a..e0948c0 100644 --- a/docs/CHAT_RESUME_PLAN_VM.md +++ b/docs/CHAT_RESUME_PLAN_VM.md @@ -5,7 +5,7 @@ ## Контекст - Репозиторий: /home/naeel/terra - Генератор провайдера: /home/naeel/terra/nubes_provider_gen -- Адрес провайдера (актуально): terra.k8c.ru/nubes/nubes +- Адрес провайдера (актуально): registry.kube5s.ru/nubes/nubes - Registry S3 bucket: terraform-registry (endpoint s3.msk-1.ngcloud.ru) - Dev override: /home/naeel/terra/test_persistent/dev_override.tfrc @@ -17,7 +17,7 @@ - /home/naeel/terra/test_persistent/main.tf - Добавлен ресурс nubes_vm.test_vm (использует vapp_uid xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx, образ Ubuntu_22-20G). 3) **Провайдер v2.0.0 собран и загружен в registry**: - - Артефакты в S3 по пути: s3://terraform-registry/terra.k8c.ru/nubes/nubes/2.0.0/ + - Артефакты в S3 по пути: s3://terraform-registry/registry.kube5s.ru/nubes/nubes/2.0.0/ - Файлы: terraform-provider-nubes_2.0.0_linux_amd64.zip, _SHA256SUMS, _SHA256SUMS.sig 4) **GPG ключ в наличии**: - Key ID: FFE0F4D723F14BCA @@ -27,7 +27,7 @@ - vapp_uid найден в debug_vm/terraform.tfvars ## Текущие проблемы -- Terraform init без dev_override лезет в terra.k8c.ru и может падать. +- Terraform init без dev_override лезет в registry.kube5s.ru и может падать. - Для apply нужны актуальные токены (401 были частые). ## План действий (VM) diff --git a/docs/CODEBASE_ANALYSIS_AND_ROADMAP.md b/docs/CODEBASE_ANALYSIS_AND_ROADMAP.md index 1c558ca..808f042 100644 --- a/docs/CODEBASE_ANALYSIS_AND_ROADMAP.md +++ b/docs/CODEBASE_ANALYSIS_AND_ROADMAP.md @@ -33,7 +33,7 @@ | Компонент | Каталог | Версия | Registry Address | Статус | |-----------|---------|--------|------------------|--------| | **Legacy Provider** | `/internal/`, `/main.go` | dev | `registry.terraform.io/nubes/nubes` | Ручной код, 13 ресурсов | -| **Universal Provider** | `/universal_rebuild/` | 5.0.18 | `terra.k8c.ru/nubes/nubes` | Генерируемый, ~50 ресурсов | +| **Universal Provider** | `/universal_rebuild/` | 5.0.18 | `registry.kube5s.ru/nubes/nubes` | Генерируемый, ~50 ресурсов | ### Архитектурные слои diff --git a/docs/MIGRATION_PLAN_FOR_AGENT.md b/docs/MIGRATION_PLAN_FOR_AGENT.md index 4d8b7ef..441e83c 100644 --- a/docs/MIGRATION_PLAN_FOR_AGENT.md +++ b/docs/MIGRATION_PLAN_FOR_AGENT.md @@ -14,7 +14,7 @@ ## Контекст -Terraform-провайдер Nubes Cloud сейчас работает на self-managed K8s (terra.k8c.ru). +Terraform-провайдер Nubes Cloud сейчас работает на self-managed K8s (registry.kube5s.ru). Цель: подготовить инфраструктуру к передаче в Nubes Managed Kubernetes под управление их DevOps. Nubes (nubes.ru) — российский cloud-провайдер, собственный DC Tier III (Москва), имеет Managed K8s, Harbor, S3. @@ -71,7 +71,7 @@ charts/ **Требования к `values.yaml`:** ```yaml global: - registryHostname: "terra.k8c.ru" # Переопределяется при миграции + registryHostname: "registry.kube5s.ru" # Переопределяется при миграции namespace: "terraform-registry" registry: @@ -111,7 +111,7 @@ operator: ingress: enabled: true className: "nginx" - host: "terra.k8c.ru" # Переопределяется + host: "registry.kube5s.ru" # Переопределяется tls: enabled: true issuer: "letsencrypt-prod" # НЕ ТРОГАТЬ LetsEncrypt issuer! @@ -139,7 +139,7 @@ networkPolicy: **Требования к `values-dev.yaml`:** ```yaml global: - registryHostname: "terra.k8c.ru" + registryHostname: "registry.kube5s.ru" registry: replicas: 1 pdb: @@ -499,20 +499,20 @@ spec: **Это НЕ код — это инструкция для DevOps. Записать в `docs/ops/DOMAIN_MIGRATION.md`:** ```markdown -# Миграция домена terra.k8c.ru → registry.nubes.ru +# Миграция домена registry.kube5s.ru → registry.nubes.ru ## Фаза 1: Dual-domain (параллельная работа) -1. Настроить Ingress с двумя hosts: terra.k8c.ru + registry.nubes.ru +1. Настроить Ingress с двумя hosts: registry.kube5s.ru + registry.nubes.ru 2. Оба домена указывают на один Registry Server 3. Обновить provider main.go: Address → registry.nubes.ru -4. Старый адрес terra.k8c.ru продолжает работать +4. Старый адрес registry.kube5s.ru продолжает работать ## Фаза 2: Миграция клиентов 1. Документировать новый registry address для пользователей 2. .terraformrc mirror config для переходного периода: provider_installation { direct { - exclude = ["terra.k8c.ru/*/*"] + exclude = ["registry.kube5s.ru/*/*"] } network_mirror { url = "https://registry.nubes.ru/v1/providers/" @@ -520,11 +520,11 @@ spec: } ## Фаза 3: Редирект -1. terra.k8c.ru Ingress → 301 redirect на registry.nubes.ru +1. registry.kube5s.ru Ingress → 301 redirect на registry.nubes.ru 2. Мониторинг: отслеживать запросы на старый домен ## Фаза 4: Деком (через 6+ месяцев) -1. Убрать terra.k8c.ru из Ingress +1. Убрать registry.kube5s.ru из Ingress 2. DNS → удалить A/CNAME запись ``` diff --git a/docs/help/BUILD.md b/docs/help/BUILD.md new file mode 100644 index 0000000..0879374 --- /dev/null +++ b/docs/help/BUILD.md @@ -0,0 +1,51 @@ +# Сборка и публикация — инструкция + +> TEST стенд. ВМ: `naeel@5.172.178.213` + +## 1. Сгенерировать YAML из API + +```bash +cd /home/naeel/tf_provider +./TOOLS/scripts/01_generate_yamls.sh --profile TOOLS/config/test +``` + +## 2. Сгенерировать Go-код и документацию + +```bash +cd /home/naeel/tf_provider +./TOOLS/scripts/02_generate_resources_and_docs_v2.sh --profile TOOLS/config/test +``` + +## 3. Собрать провайдер и залить в S3 + +ТОЛЬКО на ВМ: + +```bash +cd /home/naeel/tf_provider +./TOOLS/scripts/03_build_and_upload_provider.sh --profile TOOLS/config/test +``` + +## 4. Собрать документацию и залить в S3 + +```bash +cd /home/naeel/tf_provider +./TOOLS/scripts/04_build_and_publish_docs.sh --profile TOOLS/config/test +``` + +## После сборки + +```bash +# Коммит и пуш ИЗМЕНЕНИЙ В КОДЕ (не generated) +cd /home/naeel/tf_provider +git add -A +git commit -m "описание" +git push + +# Синкнуть сгенерированное на ВМ (если п.3 не на ВМ) +rsync -avz -e "ssh ..." generated/test/ naeel@5.172.178.213:/home/naeel/tf_provider/generated/test/ +``` + +## Версия + +Версия в `TOOLS/config/test/profile.env` → `VERSION="X.Y.Z"` +Повышать при ЛЮБОМ изменении кода провайдера. diff --git a/docs/help/how-to-docs.md b/docs/help/how-to-docs.md index cb869dd..99a30f4 100644 --- a/docs/help/how-to-docs.md +++ b/docs/help/how-to-docs.md @@ -82,13 +82,13 @@ export S3_SECRET_KEY=... Пример: ```bash -./scripts/publish-docs.sh site terra.k8c.ru nubes nubes 2.0.2 +./scripts/publish-docs.sh site registry.kube5s.ru nubes nubes 2.0.2 ``` Что делает: - Копирует `site/` → `s3://terraform-registry/docs/nubes/nubes/2.0.2/` - Выставляет public policy -- Итоговый URL: `https://terra.k8c.ru/docs/nubes/nubes/2.0.2/` +- Итоговый URL: `https://registry.kube5s.ru/docs/nubes/nubes/2.0.2/` **S3 credentials** (любой из способов): - Переменные окружения: `S3_ENDPOINT`, `S3_ACCESS_KEY`, `S3_SECRET_KEY` @@ -128,7 +128,7 @@ export S3_SECRET_KEY=... - `S3_ENDPOINT` - `S3_ACCESS_KEY` - `S3_SECRET_KEY` -- `REGISTRY_HOSTNAME` (опционально, по умолчанию `terra.k8c.ru`) +- `REGISTRY_HOSTNAME` (опционально, по умолчанию `registry.kube5s.ru`) --- diff --git a/docs/howitwasdone.md b/docs/howitwasdone.md index 44359f9..d074f93 100644 --- a/docs/howitwasdone.md +++ b/docs/howitwasdone.md @@ -265,4 +265,4 @@ Referer должен совпадать со стендом (test/dev/prod). Н Кратко: реализована для ресурса Tubulus через ModifyPlan + askGemini, с защитой от двойного вызова AI. ### 4.7 Прямая ссылка -https://terra.k8c.ru/docs/nubes/nubes/2.0.0/howitwasdone/ +https://registry.kube5s.ru/docs/nubes/nubes/2.0.0/howitwasdone/ diff --git a/docs/ops/DOMAIN_MIGRATION.md b/docs/ops/DOMAIN_MIGRATION.md index 434b2b7..ad6564c 100644 --- a/docs/ops/DOMAIN_MIGRATION.md +++ b/docs/ops/DOMAIN_MIGRATION.md @@ -1,10 +1,10 @@ -# Миграция домена terra.k8c.ru → registry.nubes.ru +# Миграция домена registry.kube5s.ru → registry.nubes.ru ## Фаза 1: Dual-domain (параллельная работа) -1. Настроить Ingress с двумя hosts: `terra.k8c.ru` + `registry.nubes.ru` +1. Настроить Ingress с двумя hosts: `registry.kube5s.ru` + `registry.nubes.ru` 2. Оба домена указывают на один Registry Server 3. Обновить provider `main.go`: Address → `registry.nubes.ru` -4. Старый адрес `terra.k8c.ru` продолжает работать +4. Старый адрес `registry.kube5s.ru` продолжает работать ## Фаза 2: Миграция клиентов 1. Документировать новый registry address для пользователей @@ -12,7 +12,7 @@ ```hcl provider_installation { direct { - exclude = ["terra.k8c.ru/*/*"] + exclude = ["registry.kube5s.ru/*/*"] } network_mirror { url = "https://registry.nubes.ru/v1/providers/" @@ -21,9 +21,9 @@ provider_installation { ``` ## Фаза 3: Редирект -1. `terra.k8c.ru` Ingress → 301 redirect на `registry.nubes.ru` +1. `registry.kube5s.ru` Ingress → 301 redirect на `registry.nubes.ru` 2. Мониторинг: отслеживать запросы на старый домен ## Фаза 4: Деком (через 6+ месяцев) -1. Убрать `terra.k8c.ru` из Ingress +1. Убрать `registry.kube5s.ru` из Ingress 2. DNS → удалить A/CNAME запись diff --git a/docs/ops/STANDS.md b/docs/ops/STANDS.md index 21ff428..9df8ba0 100644 --- a/docs/ops/STANDS.md +++ b/docs/ops/STANDS.md @@ -29,7 +29,7 @@ NUBES_API_ENDPOINT="https://deck-api-test.ngcloud.ru" go run tools/service_spec_ ### 2. НЕ публиковать Universal в PROD-реестр без явной команды -PROD реестр (`terra.k8c.ru`) содержит версии для клиентов. +PROD реестр (`registry.kube5s.ru`) содержит версии для клиентов. Universal (5.x) публикуется только после тестирования на TEST стенде. ### 3. НЕ использовать PROD токен для генерации/тестирования diff --git a/mkdocs.yml b/mkdocs.yml index c0850a4..cf691d7 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -1,5 +1,5 @@ site_name: Провайдер Terraform Nubes -site_url: https://terra.k8c.ru/docs/nubes/nubes/2.0.1/ +site_url: https://registry.kube5s.ru/docs/nubes/nubes/2.0.1/ exclude_docs: | README.md diff --git a/scripts/publish-doc-page.sh b/scripts/publish-doc-page.sh index e80f37b..02d5322 100755 --- a/scripts/publish-doc-page.sh +++ b/scripts/publish-doc-page.sh @@ -20,7 +20,7 @@ PROFILE_DIR="" SITE_DIR="${ROOT_DIR}/site" PAGE_REL="" VERSION="" -REGISTRY_HOST="${REGISTRY_HOST:-terra.k8c.ru}" +REGISTRY_HOST="${REGISTRY_HOST:-registry.kube5s.ru}" NAMESPACE="${NAMESPACE:-nubes}" PROVIDER_NAME="${PROVIDER_NAME:-nubes}" S3CFG_REGISTRY="${S3CFG_REGISTRY:-${ROOT_DIR}/secrets/.s3cfg_registry}"