Initial commit: stateful OpenStack API laboratory simulator.

Ship Keystone auth, multi-service handlers (Yoga→Dalmatian), Compose/Helm
packaging, API contract packs, and pytest/Pulumi coverage labs.
This commit is contained in:
2026-07-18 04:26:48 +03:00
commit 6033967e6a
509 changed files with 464404 additions and 0 deletions
+22
View File
@@ -0,0 +1,22 @@
**Language / Язык:** [English](../../domains/README.md) | [Русский](README.md)
# Домены сервисов OpenStack
Руководства по основным специализированным поверхностям. Pack-only сервисы
(Barbican, Manila, Designate, …) покрываются schema-движком и засеваются в
`os_api_objects` — см. [api-surface.md](../api-surface.md) и
[api_coverage.md](../api_coverage.md).
| Руководство | Сервис | Порт |
|---|---|---|
| [keystone.md](keystone.md) | Identity | 5000 |
| [nova.md](nova.md) | Compute | 8774 |
| [neutron.md](neutron.md) | Network | 9696 |
| [glance.md](glance.md) | Image | 9292 |
| [cinder.md](cinder.md) | Block storage | 8776 |
| [placement.md](placement.md) | Placement | 8003 |
| [heat.md](heat.md) | Orchestration | 8004 |
| [swift.md](swift.md) | Object storage | 8080 |
| [ironic.md](ironic.md) | Bare metal | 6385 |
| [octavia.md](octavia.md) | Load balancer | 9876 |
| [schema-services.md](schema-services.md) | Остальные pack-сервисы | разные |
+10
View File
@@ -0,0 +1,10 @@
**Language / Язык:** [English](../../domains/cinder.md) | [Русский](cinder.md)
# Cinder (block storage)
Порт **8776**. Пути под `/v3/``/v3/{project_id}/…`).
## Stateful
CRUD томов. Demo cloud: ~600 volumes (`in-use` / `available`).
Snapshots, types, backups и связанные коллекции — pack/schema-backed.
+10
View File
@@ -0,0 +1,10 @@
**Language / Язык:** [English](../../domains/glance.md) | [Русский](glance.md)
# Glance (image)
Порт **9292**. Пути под `/v2/`.
## Stateful
Список/просмотр/создание/обновление/удаление образов; публичные и project-owned
images. Members/tags обслуживаются из `os_api_objects` в demo seed.
+11
View File
@@ -0,0 +1,11 @@
**Language / Язык:** [English](../../domains/heat.md) | [Русский](heat.md)
# Heat (orchestration)
Порт **8004**. Пути `/v1/{tenant_id}/…`.
## Stateful
Стеки в `os_stacks`. Demo seed добавляет stacks плюс вложенные строки
`stack_resource` / `stack_event` / `software_config` / `software_deployment`
для pack GET-probe'ов.
+10
View File
@@ -0,0 +1,10 @@
**Language / Язык:** [English](../../domains/ironic.md) | [Русский](ironic.md)
# Ironic (bare metal)
Порт **6385**.
## Stateful
Nodes в `os_nodes`. Demo seed создаёт пул ironic-нод; ports/chassis/
allocations — schema-backed примеры.
+21
View File
@@ -0,0 +1,21 @@
**Language / Язык:** [English](../../domains/keystone.md) | [Русский](keystone.md)
# Keystone (identity)
Порт **5000**. Пути под `/v3/`.
## Реализовано (lab)
- `POST /v3/auth/tokens` — password auth, project scope
- Catalog с multi-port endpoints
- Projects, users, roles, role assignments (seed + CRUD через pack/schema)
- Domains (`Default`)
## Seed
Профили minimal и demo создают домен `Default`, роли `admin`/`member` и
пользователей, описанных в [authentication.md](../authentication.md).
## Примечания
Federation, application credentials и полный policy engine вне scope.
+16
View File
@@ -0,0 +1,16 @@
**Language / Язык:** [English](../../domains/neutron.md) | [Русский](neutron.md)
# Neutron (network)
Порт **9696**. Пути под `/v2.0/`.
## Stateful-ресурсы
Networks, subnets, ports, routers, security groups/rules, floating IPs, agents.
## Schema / seeded-расширения
QoS, trunks, RBAC, address scopes, subnet pools, conntrack helpers, port
forwardings, примеры FWaaS/VPNaaS/BGP VPN в demo seed.
Demo добавляет несколько nets/SGs/routers на проект для реалистичной плотности списков.
+21
View File
@@ -0,0 +1,21 @@
**Language / Язык:** [English](../../domains/nova.md) | [Русский](nova.md)
# Nova (compute)
Порт **8774**. Пути под `/v2.1/`.
## Stateful-ресурсы
Servers, flavors, keypairs, server groups, AZ, hypervisors, aggregates,
services, migrations, volume/interface attachments, metadata, tags,
instance actions, consoles (лабораторные URL).
## Demo cloud
~1000 серверов по проектам, metadata/`_tags`, attachments, связанные с volumes
и ports.
## Microversions
Отправляйте `OpenStack-API-Version: compute X.Y` или legacy-заголовок Nova.
Применяются ограничения пакета.
+10
View File
@@ -0,0 +1,10 @@
**Language / Язык:** [English](../../domains/octavia.md) | [Русский](octavia.md)
# Octavia (load balancer)
Порт **9876**. Пути под `/v2/lbaas/…`.
## Stateful
Load balancers в `os_loadbalancers`. Listeners/pools/healthmonitors/providers/
flavors обслуживаются из `os_api_objects` (demo seed их заполняет).
+10
View File
@@ -0,0 +1,10 @@
**Language / Язык:** [English](../../domains/placement.md) | [Русский](placement.md)
# Placement
Порт **8003**.
## Поведение в лаборатории
- `GET /resource_providers` — из demo `os_api_objects` (или fallback stub)
- `GET/PUT /allocations/{consumer_uuid}` — сохраняемые allocations с lab fallback
+14
View File
@@ -0,0 +1,14 @@
**Language / Язык:** [English](../../domains/schema-services.md) | [Русский](schema-services.md)
# Schema-backed сервисы
Эти проекты в основном обслуживаются contract-пакетами + `os_api_objects`
(demo seed вставляет несколько строк на тип ресурса):
Barbican, Manila, Designate, Magnum, Zun, Trove, Mistral, Aodh, CloudKitty,
Freezer, Blazar, Vitrage, Masakari, Tacker, Adjutant, Watcher, Zaqar, Heat-CFN.
Порты: [ports.md](../ports.md). Операции: [api_coverage.md](../api_coverage.md).
CRUD lifecycle проверяется через `examples/python/openstack_surface_probe.py`
и `tests/openstack/conformance/`.
+10
View File
@@ -0,0 +1,10 @@
**Language / Язык:** [English](../../domains/swift.md) | [Русский](swift.md)
# Swift (object storage)
Порт **8080** на **gateway** (внутренний simulator остаётся на 8080 за nginx).
## Stateful
Accounts/containers/objects в таблицах `os_swift_*`. Demo seed создаёт
контейнеры `images` / `backups` / `artifacts` с readme-объектом на проект.