113 lines
4.6 KiB
Markdown
113 lines
4.6 KiB
Markdown
<!-- ⛔ LEGACY: deck-api.ngcloud.ru ЗАКРЫВАЕТСЯ. Актуальный API: lk-api-gateway.ngcloud.ru/api/v1/svc -->
|
|
# ⛔⛔⛔ ПРАВИЛА РАЗДЕЛЕНИЯ СТЕНДОВ ⛔⛔⛔
|
|
|
|
> **НАРУШЕНИЕ = УВОЛЬНЕНИЕ. Без шуток.**
|
|
|
|
---
|
|
|
|
## Три стенда — три разных мира
|
|
|
|
| Стенд | 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 реестр (`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)
|
|
|
|
```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` — конфигурация стендов
|