Same REST API
- Paths, parameters, HTTP status codes
- Error bodies and microversions
- Identical policies
OpenKeel: the sovereign French Cloud solution of the inherent group, with a European reach Discover inherent
Deployment
Everything is tested and functionally validated against the original component.
Official suites and plugins (neutron, cinder, keystone, octavia, barbican, designate, heat, manila…) against the lab
ok and openstack run side by side: same HTTP requests, same outputs, same exit codes
Exchanges recorded against the Python service, replayed against the Go one (make e2e, report.json)
Integration tests against a real MariaDB Galera cluster
go vet, go test -race -cover; fake Kubernetes and Helm clients
Known differences of each service with its original are listed in openkeel-<service>/docs/CONFORMANCE.md.
For each module: how many operations of the original API it serves, and the methods that check it stays compatible. Each line leads to the module's tests and to its full API table.
| Module | Operations implemented | Test methods |
|---|---|---|
| Placement | 37 / 37 | Replay of recorded exchanges, Unit and golden tests, Differential test, Concurrency on Galera |
| Nova | 141 / 273 | Replay of recorded exchanges, Unit and golden tests, Concurrency on Galera, End to end on a lab, Scenario |
| Zun | 69 / 73 | Replay of recorded exchanges, Unit and golden tests |
| Masakari | 21 / 21 | Replay of recorded exchanges, Client contract, Unit and golden tests, Concurrency on Galera |
| Ironic | 131 / 131 | End to end on a lab, Scenario |
| Cinder | 147 / 218 | Replay of recorded exchanges, Client contract, Unit and golden tests, Concurrency on Galera |
| Glance | 76 / 83 | Replay of recorded exchanges, Client contract, Concurrency on Galera, Unit and golden tests |
| Manila | 132 / 258 | Replay of recorded exchanges, Client contract, End to end on a lab |
| Swift and S3 | — | End to end on a lab |
| Pure Storage CSI | — | Client contract, Unit and golden tests, Scenario |
| Neutron | 138 / 368 | Replay of recorded exchanges, Client contract, Concurrency on Galera, End to end on a lab |
| Octavia (OVN) | 297 / 297 | Differential test, Unit and golden tests, Tempest, End to end on a lab |
| Neutron-FWaaS | 23 / 23 | Replay of recorded exchanges, Differential test, Unit and golden tests, Concurrency on Galera, End to end on a lab |
| Neutron-VPNaaS | 35 / 35 | Replay of recorded exchanges, Unit and golden tests, Scenario, Concurrency on Galera |
| OVN-BGP-Agent | — | Unit and golden tests, Scenario |
| Keystone | 163 / 259 | Replay of recorded exchanges, Unit and golden tests, Client contract, End to end on a lab |
| Barbican | 57 / 57 | Replay of recorded exchanges, Client contract, Differential test, Unit and golden tests, Concurrency on Galera |
| Designate | 78 / 78 | Replay of recorded exchanges, Unit and golden tests, Client contract |
| CloudKitty | 66 / 66 | Replay of recorded exchanges, Unit and golden tests, End to end on a lab |
| EC2 API | 100 / 100 | Replay of recorded exchanges, Scenario, Client contract, Concurrency on Galera |
| Skyline | 26 / 30 | Replay of recorded exchanges, Unit and golden tests, Client contract, End to end on a lab, Concurrency on Galera |
| ok (CLI) | — | Differential test, Unit and golden tests, End to end on a lab |
| okadm | — | Unit and golden tests, End to end on a lab, Client contract |
Operation counts come from each module's docs/PLAN.md (Keystone: from its Go router), test methods from its docs/CONFORMANCE.md; a method the module plans but has not run yet is not counted here and is shown as such on the module's page.