Files
“Naeel” 2af2d2af16 chore: registry.kube5s.ru → tf-registry.containerk8s.services.ngcloud.ru
- All code/script/.tf defaults replaced
- Docs annotated with  LEGACY
2026-08-10 11:17:57 +04:00

4.6 KiB

ПРАВИЛА РАЗДЕЛЕНИЯ СТЕНДОВ

НАРУШЕНИЕ = УВОЛЬНЕНИЕ. Без шуток.


Три стенда — три разных мира

Стенд API Токен Провайдер Версия Назначение
PROD deck-api.ngcloud.ru secrets/prod.token Legacy (2.x) 2.1.23 Клиенты, бизнес
TEST deck-api-test.ngcloud.ru secrets/test.token Universal (5.x) 5.0.55 Тестирование
DEV deck-api-dev.ngcloud.ru secrets/dev.token 3.0.1 Не используется

АБСОЛЮТНЫЙ ЗАПРЕТ

1. НЕ генерировать Universal из PROD API

# ❌ ТАК ДЕЛАТЬ НЕЛЬЗЯ:
NUBES_API_ENDPOINT="https://deck-api.ngcloud.ru" go run tools/service_spec_gen

# ✅ ТАК ДЕЛАТЬ ПРАВИЛЬНО:
NUBES_API_ENDPOINT="https://deck-api-test.ngcloud.ru" go run tools/service_spec_gen

2. НЕ публиковать Universal в PROD-реестр без явной команды

PROD реестр (registry.kube5s.ru <!-- ⛔ LEGACY: registry.kube5s.ru ЗАКРЫТ. Актуальный хост: tf-registry.containerk8s.services.ngcloud.ru --> <!-- ⛔ LEGACY: registry.kube5s.ru <!-- ⛔ LEGACY: registry.kube5s.ru ЗАКРЫТ. Актуальный хост: tf-registry.containerk8s.services.ngcloud.ru --> ЗАКРЫТ. Актуальный хост: tf-registry.containerk8s.services.ngcloud.ru -->) содержит версии для клиентов. Universal (5.x) публикуется только после тестирования на TEST стенде.

3. НЕ использовать PROD токен для генерации/тестирования

PROD токен — только для PROD операций. Для всего остального — TEST или DEV токены.


Правильный порядок

Генерация кода (всегда из TEST API)

cd universal_rebuild

# Шаг 1: YAML из TEST API
NUBES_API_TOKEN="<TEST_JWT>" \
NUBES_API_ENDPOINT="https://deck-api-test.ngcloud.ru/api/v1/index.cfm" \
NUBES_SERVICES_FILE="../devops/profiles/test/services_list.txt" \
NUBES_OUTPUT_DIR="/tmp/test_yamls" \
go run ./tools/service_spec_gen

# Шаг 2: Go из YAML
NUBES_RESOURCES_DIR=/tmp/test_yamls \
NUBES_RESOURCES_GEN_DIR=/tmp/test_go \
go run ./tools/gen_v2

# Шаг 3: Документация из YAML
go run ./tools/docs_template_gen_v2 \
  -resources /tmp/test_yamls \
  -docs /tmp/test_docs \
  -services ../devops/profiles/test/services_list.txt

Публикация провайдера

  • TEST: ./devops/03_build_and_upload_provider.sh --profile devops/profiles/test 5.0.56
  • PROD: ./devops/03_build_and_upload_provider.sh --profile devops/profiles/prod 2.1.24

Публикация документации

  • TEST: ./devops/04_build_and_publish_docs.sh --profile devops/profiles/test 5.0.56
  • PROD: ./devops/04_build_and_publish_docs.sh --profile devops/profiles/prod 2.1.24

Профили (источник истины)

Каждый стенд имеет свой profile.env:

devops/profiles/prod/profile.env  → RELEASE_VERSION=2.1.23, TOKEN_FILE=secrets/prod.token
devops/profiles/test/profile.env  → RELEASE_VERSION=5.0.55, TOKEN_FILE=secrets/test.token
devops/profiles/dev/profile.env   → RELEASE_VERSION=3.0.1, TOKEN_FILE=secrets/dev.token

Всегда используй --profile при запуске скриптов!


Проверка перед каждым действием

Перед любым go run, curl, сборкой или публикацией — проверь:

  1. Какой API я дёргаю? deck-api или deck-api-test?
  2. Какой токен использую? PROD или TEST?
  3. Какой профиль? prod или test?
  4. Совпадают ли? PROD токен → PROD API. TEST токен → TEST API.

Если сомневаешься — НЕ ДЕЛАЙ. Спроси.


Связанные документы

  • docs/ops/TESTING.md тесты только в TEST/DEV
  • docs/ops/API_TOKENS.md — матрица токенов
  • REPO_INVENTORY.md — полная карта версий
  • devops/profiles/*/profile.env — конфигурация стендов