docs: ⛔ STANDS.md — NEVER mix PROD/TEST/DEV environments
This commit is contained in:
@@ -0,0 +1,111 @@
|
||||
# ⛔⛔⛔ ПРАВИЛА РАЗДЕЛЕНИЯ СТЕНДОВ ⛔⛔⛔
|
||||
|
||||
> **НАРУШЕНИЕ = УВОЛЬНЕНИЕ. Без шуток.**
|
||||
|
||||
---
|
||||
|
||||
## Три стенда — три разных мира
|
||||
|
||||
| Стенд | 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
|
||||
|
||||
```bash
|
||||
# ❌ ТАК ДЕЛАТЬ НЕЛЬЗЯ:
|
||||
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)
|
||||
|
||||
```bash
|
||||
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` — конфигурация стендов
|
||||
Reference in New Issue
Block a user