Initial commit: VMware vSphere API simulator scaffold.

Add the FastAPI app, PostgreSQL migrations, Docker/Helm packaging, API
contracts, docs, client examples, and the unit/integration/compatibility
test suite for local client and tooling labs without a real vCenter.
This commit is contained in:
2026-07-18 04:42:11 +03:00
commit f8d3cbdd59
422 changed files with 361335 additions and 0 deletions
+35
View File
@@ -0,0 +1,35 @@
**Language / Язык:** [English](../../domains/networking.md) | [Русский](networking.md)
# Networking
Standard networks, distributed portgroups/switches и host networking:
[`app/vsphere/rest/router.py`](../../../app/vsphere/rest/router.py),
[`platform_rest.py`](../../../app/vsphere/rest/platform_rest.py).
## Эндпоинты
| Метод | Путь | Заметки |
|---|---|---|
| GET | `/api/vcenter/network` | Объекты standard `Network` + `DistributedVirtualPortgroup` |
| GET/POST | `/api/vcenter/network/dvs` | Distributed virtual switches |
| POST | `/api/vcenter/network/dvpg` | Создать distributed portgroup |
| GET | `/api/vcenter/host/{host}/networking` | DNS, default gateway, интерфейс `vmk0`, routing |
| GET/PUT/POST | `/api/appliance/networking` \| `/networking/dns/{hostname,servers,domains}` | Networking на уровне appliance vCenter (см. [Appliance](appliance.md)) |
Legacy `GET /rest/vcenter/network` зеркалит список.
## Основные моменты
- `nics[].value.backing` каждой VM указывает либо на `STANDARD_PORTGROUP`
(`network-41`, «VM Network»), либо на `DISTRIBUTED_PORTGROUP`
(`dvportgroup-4N`, с `vlan_id`).
- Топология по умолчанию засевает один `VmwareDistributedVirtualSwitch`
(`dvs-51`, `mtu: 9000`) и 1–3 дополнительных distributed portgroup в
зависимости от размера профиля.
- Host networking (`GET /api/vcenter/host/{host}/networking`) возвращает DNS
servers/domains, default gateway и один management-интерфейс `vmk0` с
детерминированным IPv4 по индексу host.
- Пути Automation API с меткой NSX (tier-0 gateway, projects, edges,
VPC/subnets) — seeded lab stand-in'ы под `namespace-management` — см.
таблицу «Platform surfaces» в [Покрытие API](../api-coverage.md); это не
реальный NSX Manager.