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](README.md) | [Русский](../ru/domains/README.md)
|
||||
|
||||
# OpenStack service domains
|
||||
|
||||
Guides for the main specialized surfaces. Pack-only services (Barbican, Manila,
|
||||
Designate, …) are covered generically by the schema engine and seeded into
|
||||
`os_api_objects` — see [api-surface.md](../api-surface.md) and
|
||||
[api_coverage.md](../api_coverage.md).
|
||||
|
||||
| Guide | Service | Port |
|
||||
|---|---|---|
|
||||
| [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) | Remaining pack services | various |
|
||||
@@ -0,0 +1,10 @@
|
||||
**Language / Язык:** [English](cinder.md) | [Русский](../ru/domains/cinder.md)
|
||||
|
||||
# Cinder (block storage)
|
||||
|
||||
Port **8776**. Paths under `/v3/` (and `/v3/{project_id}/…`).
|
||||
|
||||
## Stateful
|
||||
|
||||
Volumes CRUD. Demo cloud: ~600 volumes (`in-use` / `available`).
|
||||
Snapshots, types, backups, and related collections are pack/schema-backed.
|
||||
@@ -0,0 +1,10 @@
|
||||
**Language / Язык:** [English](glance.md) | [Русский](../ru/domains/glance.md)
|
||||
|
||||
# Glance (image)
|
||||
|
||||
Port **9292**. Paths under `/v2/`.
|
||||
|
||||
## Stateful
|
||||
|
||||
Image list/show/create/update/delete; public + project-owned images.
|
||||
Members/tags served from `os_api_objects` in the demo seed.
|
||||
@@ -0,0 +1,11 @@
|
||||
**Language / Язык:** [English](heat.md) | [Русский](../ru/domains/heat.md)
|
||||
|
||||
# Heat (orchestration)
|
||||
|
||||
Port **8004**. Paths `/v1/{tenant_id}/…`.
|
||||
|
||||
## Stateful
|
||||
|
||||
Stacks in `os_stacks`. Demo seed adds stacks plus nested
|
||||
`stack_resource` / `stack_event` / `software_config` / `software_deployment`
|
||||
rows for pack GET probes.
|
||||
@@ -0,0 +1,10 @@
|
||||
**Language / Язык:** [English](ironic.md) | [Русский](../ru/domains/ironic.md)
|
||||
|
||||
# Ironic (bare metal)
|
||||
|
||||
Port **6385**.
|
||||
|
||||
## Stateful
|
||||
|
||||
Nodes in `os_nodes`. Demo seed creates a pool of ironic nodes; ports/chassis/
|
||||
allocations are schema-backed samples.
|
||||
@@ -0,0 +1,21 @@
|
||||
**Language / Язык:** [English](keystone.md) | [Русский](../ru/domains/keystone.md)
|
||||
|
||||
# Keystone (identity)
|
||||
|
||||
Port **5000**. Paths under `/v3/`.
|
||||
|
||||
## Implemented (lab)
|
||||
|
||||
- `POST /v3/auth/tokens` — password auth, project scope
|
||||
- Catalog with multi-port endpoints
|
||||
- Projects, users, roles, role assignments (seeded + CRUD via pack/schema)
|
||||
- Domains (Default)
|
||||
|
||||
## Seed
|
||||
|
||||
Minimal and demo profiles create `Default` domain, roles `admin`/`member`, and
|
||||
users documented in [authentication.md](../authentication.md).
|
||||
|
||||
## Notes
|
||||
|
||||
Federation, application credentials, and full policy engine are out of scope.
|
||||
@@ -0,0 +1,16 @@
|
||||
**Language / Язык:** [English](neutron.md) | [Русский](../ru/domains/neutron.md)
|
||||
|
||||
# Neutron (network)
|
||||
|
||||
Port **9696**. Paths under `/v2.0/`.
|
||||
|
||||
## Stateful resources
|
||||
|
||||
Networks, subnets, ports, routers, security groups/rules, floating IPs, agents.
|
||||
|
||||
## Schema / seeded extensions
|
||||
|
||||
QoS, trunks, RBAC, address scopes, subnet pools, conntrack helpers, port
|
||||
forwardings, FWaaS/VPNaaS/BGP VPN samples in demo seed.
|
||||
|
||||
Demo adds multiple nets/SGs/routers per project for realistic list density.
|
||||
@@ -0,0 +1,20 @@
|
||||
**Language / Язык:** [English](nova.md) | [Русский](../ru/domains/nova.md)
|
||||
|
||||
# Nova (compute)
|
||||
|
||||
Port **8774**. Paths under `/v2.1/`.
|
||||
|
||||
## Stateful resources
|
||||
|
||||
Servers, flavors, keypairs, server groups, AZ, hypervisors, aggregates,
|
||||
services, migrations, volume/interface attachments, metadata, tags,
|
||||
instance actions, consoles (lab URLs).
|
||||
|
||||
## Demo cloud
|
||||
|
||||
~1000 servers across projects, metadata/`_tags`, attachments linked to volumes
|
||||
and ports.
|
||||
|
||||
## Microversions
|
||||
|
||||
Send `OpenStack-API-Version: compute X.Y` or Nova legacy header. Pack gates apply.
|
||||
@@ -0,0 +1,10 @@
|
||||
**Language / Язык:** [English](octavia.md) | [Русский](../ru/domains/octavia.md)
|
||||
|
||||
# Octavia (load balancer)
|
||||
|
||||
Port **9876**. Paths under `/v2/lbaas/…`.
|
||||
|
||||
## Stateful
|
||||
|
||||
Load balancers in `os_loadbalancers`. Listeners/pools/healthmonitors/providers/
|
||||
flavors are served from `os_api_objects` (demo seed populates them).
|
||||
@@ -0,0 +1,10 @@
|
||||
**Language / Язык:** [English](placement.md) | [Русский](../ru/domains/placement.md)
|
||||
|
||||
# Placement
|
||||
|
||||
Port **8003**.
|
||||
|
||||
## Lab behaviour
|
||||
|
||||
- `GET /resource_providers` — from demo `os_api_objects` (or fallback stub)
|
||||
- `GET/PUT /allocations/{consumer_uuid}` — persisted allocations with lab fallback
|
||||
@@ -0,0 +1,14 @@
|
||||
**Language / Язык:** [English](schema-services.md) | [Русский](../ru/domains/schema-services.md)
|
||||
|
||||
# Schema-backed services
|
||||
|
||||
These projects are primarily driven by contract packs + `os_api_objects`
|
||||
(demo seed inserts multiple rows per resource type):
|
||||
|
||||
Barbican, Manila, Designate, Magnum, Zun, Trove, Mistral, Aodh, CloudKitty,
|
||||
Freezer, Blazar, Vitrage, Masakari, Tacker, Adjutant, Watcher, Zaqar, Heat-CFN.
|
||||
|
||||
Ports: [ports.md](../ports.md). Operations: [api_coverage.md](../api_coverage.md).
|
||||
|
||||
CRUD lifecycle is exercised by `examples/python/openstack_surface_probe.py`
|
||||
and `tests/openstack/conformance/`.
|
||||
@@ -0,0 +1,10 @@
|
||||
**Language / Язык:** [English](swift.md) | [Русский](../ru/domains/swift.md)
|
||||
|
||||
# Swift (object storage)
|
||||
|
||||
Port **8080** on the **gateway** (internal simulator remains on 8080 behind nginx).
|
||||
|
||||
## Stateful
|
||||
|
||||
Accounts/containers/objects in `os_swift_*` tables. Demo seed creates
|
||||
`images` / `backups` / `artifacts` containers with a readme object per project.
|
||||
Reference in New Issue
Block a user