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:
@@ -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-сервисы | разные |
|
||||
@@ -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.
|
||||
@@ -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.
|
||||
@@ -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'ов.
|
||||
@@ -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 примеры.
|
||||
@@ -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.
|
||||
@@ -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 на проект для реалистичной плотности списков.
|
||||
@@ -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.
|
||||
Применяются ограничения пакета.
|
||||
@@ -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 их заполняет).
|
||||
@@ -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
|
||||
@@ -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/`.
|
||||
@@ -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-объектом на проект.
|
||||
Reference in New Issue
Block a user