Expand lab seed tiers, OpenAPI PARAMS, and console DATA/Params UX.
This commit is contained in:
+15
-61
@@ -2,75 +2,29 @@
|
||||
|
||||
# Профили seed
|
||||
|
||||
Seed **атомарно** заменяет инвентарь vSphere, используя детерминированные
|
||||
MOID, чтобы лаборатории были воспроизводимыми. Определения находятся в
|
||||
[`app/vsphere/profiles.py`](../../app/vsphere/profiles.py).
|
||||
Seed атомарно заменяет инвентарь vSphere с детерминированными MOID.
|
||||
Определения: [`app/vsphere/profiles.py`](../../app/vsphere/profiles.py).
|
||||
|
||||
```bash
|
||||
make seed # по умолчанию: large (10 хостов / 1000 ВМ)
|
||||
make seed # по умолчанию: large (10 hosts / 1000 VMs)
|
||||
VSPHERE_PROFILE=small make seed
|
||||
VSPHERE_PROFILE=big make seed
|
||||
VSPHERE_PROFILE=minimal make seed
|
||||
```
|
||||
|
||||
## Профили
|
||||
|
||||
| Профиль | Содержимое |
|
||||
|---|---|
|
||||
| `small` | 3 хоста ESXi, 2 datastore, 2 сети, один datacenter/cluster/resource-pool и пять именованных ВМ: `web-01`, `web-02`, `db-01`, `app-01`, `jumpbox` (смешанные состояния питания). Используется unit/integration-тестами. |
|
||||
| `large` (по умолчанию) | Настраиваемое число хостов/ВМ (`SEED_VSPHERE_LARGE_HOSTS` по умолчанию 10, `SEED_VSPHERE_LARGE_VMS` по умолчанию 1000), 4 datastore, 4 сети/portgroup, `VmwareDistributedVirtualSwitch`, папки ВМ production/staging/templates. Первые пять ВМ совпадают по именам с `small` для стабильности кулинарных книг; остальные генерируются (префиксы ролей `web-`, `app-`, `db-`, `cache-`, `batch-`, `jump-`, `ci-`, `mon-`, `log-`, `ml-`). |
|
||||
| `demo-cluster` | `large` с 20 хостами / 1000 ВМ — набор данных в форме предприятия для демо UI. |
|
||||
| Профиль | Hosts | VMs | Datastores | Networks | Folders† | Content extras |
|
||||
|---|---:|---:|---:|---:|---:|---:|
|
||||
| `minimal` | 3 | 5 | 1 | 1 | 8 | ×1 |
|
||||
| `small` | 3 | 50 | 2 | 2 | 8 | ×1 |
|
||||
| `large` (default) | 10 | 1000 | 4 | 4 | 10 | ×2 |
|
||||
| `big` | 20 | 2000 | 8 | 8 | 14 | ×4 |
|
||||
|
||||
Каждый профиль также загружает четыре лабораторные учётные записи, права,
|
||||
привязанные к ролям (см. [Авторизация](domains/authz.md)), и — там, где
|
||||
существуют таблицы платформы — стартовую content library, категории/теги
|
||||
тегирования и метаданные файлов datastore (`seed_platform_extras`).
|
||||
† Spine + team folders на крупных тирах.
|
||||
|
||||
## Примеры
|
||||
`demo-cluster` = алиас `big`. Reset / unload → `minimal`.
|
||||
|
||||
```bash
|
||||
make seed # large, 10 хостов / 1000 ВМ
|
||||
VSPHERE_PROFILE=small make seed
|
||||
VSPHERE_PROFILE=demo-cluster make seed
|
||||
VSPHERE_PROFILE=large VSPHERE_HOSTS=20 VSPHERE_VMS=5000 make seed
|
||||
```
|
||||
## Web UI
|
||||
|
||||
Либо запустите CLI seed напрямую с базовыми переменными окружения (например,
|
||||
из скрипта без `make` или на шаге CI):
|
||||
|
||||
```bash
|
||||
SEED_VSPHERE_PROFILE=small \
|
||||
docker compose run --rm --entrypoint python simulator -m app.simulation.seed_cli
|
||||
```
|
||||
|
||||
## Форма топологии
|
||||
|
||||
Каждый профиль строит один и тот же скелет (папка `Datacenters` →
|
||||
`Datacenter` → подпапки host/vm/datastore/network → один
|
||||
`ClusterComputeResource` + `ResourcePool`), затем масштабирует хосты,
|
||||
datastore, portgroup и ВМ. MOID ВМ имеют вид `vm-{100+n}`; MOID хостов —
|
||||
`host-{10+n}`; каждая ВМ несёт одинаковую форму оборудования, используемую
|
||||
как REST (`hardware/*`), так и SOAP (`VirtualMachineConfigInfo`) ответами —
|
||||
NIC, диски, CD-ROM, порядок загрузки и синтетический guest IP/файловая
|
||||
система.
|
||||
|
||||
## Демо-кластер через UI
|
||||
|
||||
Интерактивная консоль может загружать демо-набор данных и делать reseed по
|
||||
запросу:
|
||||
|
||||
- `POST /ui/api/demo/load` — загружает `demo-cluster`
|
||||
- `POST /ui/api/demo/unload` — очищает состояние, созданное через API, затем
|
||||
загружает `small`
|
||||
- `GET /ui/api/demo/state`
|
||||
- `POST /ui/api/vsphere/seed?profile=small|large|demo-cluster` — reseed
|
||||
любого профиля
|
||||
|
||||
Эти вспомогательные эндпоинты UI ориентированы на разработку и сегодня не
|
||||
имеют отдельной аутентификации. Считайте их только лабораторными органами
|
||||
управления.
|
||||
|
||||
## Reseed в сравнении с состоянием клиентов
|
||||
|
||||
Terraform, Pulumi и Ansible могут по-прежнему хранить состояние ресурсов
|
||||
после reseed (MOID и имена ВМ могут измениться). Выполните refresh или
|
||||
destroy/recreate внешнего состояния после замены инвентаря PostgreSQL. См.
|
||||
[Эксплуатация](operations.md) и [Клиенты](clients.md).
|
||||
Панель **DATA** — три карточки (Small / Large / Big) и **Reset to minimal**.
|
||||
|
||||
Reference in New Issue
Block a user