4.2 KiB
4.2 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 реестр (terra.k8c.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, сборкой или публикацией — проверь:
- Какой API я дёргаю?
deck-apiилиdeck-api-test? - Какой токен использую? PROD или TEST?
- Какой профиль? prod или test?
- Совпадают ли? PROD токен → PROD API. TEST токен → TEST API.
Если сомневаешься — НЕ ДЕЛАЙ. Спроси.
Связанные документы
docs/ops/TESTING.md— ⛔ тесты только в TEST/DEVdocs/ops/API_TOKENS.md— матрица токеновREPO_INVENTORY.md— полная карта версийdevops/profiles/*/profile.env— конфигурация стендов