OpenKeel: the sovereign French Cloud solution of the inherent group, with a European reach Discover inherent

Deployment

Iso-functionality and tests

Everything is tested and functionally validated against the original component.

Iso-functional: nothing changes for the ecosystem

Same REST API

  • Paths, parameters, HTTP status codes
  • Error bodies and microversions
  • Identical policies

Same database

  • Same tables and columns
  • Same schema migrations
  • Existing data reusable

Same RabbitMQ messages

  • oslo.messaging envelopes
  • Same RPCs and topics
  • Versioned notifications

Five levels of tests

  1. Tempest

    Official suites and plugins (neutron, cinder, keystone, octavia, barbican, designate, heat, manila…) against the lab

  2. Differential CLI

    ok and openstack run side by side: same HTTP requests, same outputs, same exit codes

  3. e2e replay

    Exchanges recorded against the Python service, replayed against the Go one (make e2e, report.json)

  4. Galera

    Integration tests against a real MariaDB Galera cluster

  5. Unit

    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.

Compatibility, module by module

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.

ModuleOperations implementedTest methods
Placement37 / 37Replay of recorded exchanges, Unit and golden tests, Differential test, Concurrency on Galera
Nova141 / 273Replay of recorded exchanges, Unit and golden tests, Concurrency on Galera, End to end on a lab, Scenario
Zun69 / 73Replay of recorded exchanges, Unit and golden tests
Masakari21 / 21Replay of recorded exchanges, Client contract, Unit and golden tests, Concurrency on Galera
Ironic131 / 131End to end on a lab, Scenario
Cinder147 / 218Replay of recorded exchanges, Client contract, Unit and golden tests, Concurrency on Galera
Glance76 / 83Replay of recorded exchanges, Client contract, Concurrency on Galera, Unit and golden tests
Manila132 / 258Replay 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
Neutron138 / 368Replay of recorded exchanges, Client contract, Concurrency on Galera, End to end on a lab
Octavia (OVN)297 / 297Differential test, Unit and golden tests, Tempest, End to end on a lab
Neutron-FWaaS23 / 23Replay of recorded exchanges, Differential test, Unit and golden tests, Concurrency on Galera, End to end on a lab
Neutron-VPNaaS35 / 35Replay of recorded exchanges, Unit and golden tests, Scenario, Concurrency on Galera
OVN-BGP-Agent—Unit and golden tests, Scenario
Keystone163 / 259Replay of recorded exchanges, Unit and golden tests, Client contract, End to end on a lab
Barbican57 / 57Replay of recorded exchanges, Client contract, Differential test, Unit and golden tests, Concurrency on Galera
Designate78 / 78Replay of recorded exchanges, Unit and golden tests, Client contract
CloudKitty66 / 66Replay of recorded exchanges, Unit and golden tests, End to end on a lab
EC2 API100 / 100Replay of recorded exchanges, Scenario, Client contract, Concurrency on Galera
Skyline26 / 30Replay 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.