OpenKeel: die souveräne französische Cloud-Lösung mit europäischer Reichweite der inherent-Gruppe inherent entdecken

Deployment

Funktionsgleichheit und Tests

Alles ist getestet und funktional gegen die Originalkomponente validiert.

Funktionsgleich: Für das Ökosystem ändert sich nichts

Gleiche REST-API

  • Pfade, Parameter, HTTP-Statuscodes
  • Fehler-Bodies und Microversions
  • Identische Policies

Gleiche Datenbank

  • Gleiche Tabellen und Spalten
  • Gleiche Schemamigrationen
  • Vorhandene Daten wiederverwendbar

Gleiche RabbitMQ-Nachrichten

  • oslo.messaging-Umschläge
  • Gleiche RPCs und Topics
  • Versionierte Benachrichtigungen

Fünf Teststufen

  1. Tempest

    Offizielle Suites und Plugins (neutron, cinder, keystone, octavia, barbican, designate, heat, manila…) gegen das Labor

  2. Differenzielles CLI

    ok und openstack laufen parallel: gleiche HTTP-Anfragen, gleiche Ausgaben, gleiche Exit-Codes

  3. e2e Replay

    Gegen den Python-Dienst aufgezeichnete Austausche, gegen den Go-Dienst erneut abgespielt (make e2e, report.json)

  4. Galera

    Integrationstests gegen einen echten MariaDB-Galera-Cluster

  5. Unit

    go vet, go test -race -cover; simulierte Kubernetes- und Helm-Clients

Die bekannten Unterschiede jedes Dienstes zu seinem Original sind in openkeel-<service>/docs/CONFORMANCE.md aufgeführt.

Kompatibilität, Modul für Modul

Für jedes Modul: wie viele Operationen der Original-API es bedient und mit welchen Methoden seine Kompatibilität geprüft wird. Jede Zeile führt zu den Tests des Moduls und zu seiner vollständigen API-Tabelle.

ModulImplementierte OperationenTestmethoden
Placement37 / 37Replay aufgezeichneter Austausche, Unit- und Golden Tests, Differenzieller Test, Nebenläufigkeit auf Galera
Nova141 / 273Replay aufgezeichneter Austausche, Unit- und Golden Tests, Nebenläufigkeit auf Galera, End-to-End in einem Lab, Szenario
Zun69 / 73Replay aufgezeichneter Austausche, Unit- und Golden Tests
Masakari21 / 21Replay aufgezeichneter Austausche, Client-Vertrag, Unit- und Golden Tests, Nebenläufigkeit auf Galera
Ironic131 / 131End-to-End in einem Lab, Szenario
Cinder147 / 218Replay aufgezeichneter Austausche, Client-Vertrag, Unit- und Golden Tests, Nebenläufigkeit auf Galera
Glance76 / 83Replay aufgezeichneter Austausche, Client-Vertrag, Nebenläufigkeit auf Galera, Unit- und Golden Tests
Manila132 / 258Replay aufgezeichneter Austausche, Client-Vertrag, End-to-End in einem Lab
Swift und S3—End-to-End in einem Lab
Pure Storage CSI—Client-Vertrag, Unit- und Golden Tests, Szenario
Neutron138 / 368Replay aufgezeichneter Austausche, Client-Vertrag, Nebenläufigkeit auf Galera, End-to-End in einem Lab
Octavia (OVN)297 / 297Differenzieller Test, Unit- und Golden Tests, Tempest, End-to-End in einem Lab
Neutron-FWaaS23 / 23Replay aufgezeichneter Austausche, Differenzieller Test, Unit- und Golden Tests, Nebenläufigkeit auf Galera, End-to-End in einem Lab
Neutron-VPNaaS35 / 35Replay aufgezeichneter Austausche, Unit- und Golden Tests, Szenario, Nebenläufigkeit auf Galera
OVN-BGP-Agent—Unit- und Golden Tests, Szenario
Keystone163 / 259Replay aufgezeichneter Austausche, Unit- und Golden Tests, Client-Vertrag, End-to-End in einem Lab
Barbican57 / 57Replay aufgezeichneter Austausche, Client-Vertrag, Differenzieller Test, Unit- und Golden Tests, Nebenläufigkeit auf Galera
Designate78 / 78Replay aufgezeichneter Austausche, Unit- und Golden Tests, Client-Vertrag
CloudKitty66 / 66Replay aufgezeichneter Austausche, Unit- und Golden Tests, End-to-End in einem Lab
EC2-API100 / 100Replay aufgezeichneter Austausche, Szenario, Client-Vertrag, Nebenläufigkeit auf Galera
Skyline26 / 30Replay aufgezeichneter Austausche, Unit- und Golden Tests, Client-Vertrag, End-to-End in einem Lab, Nebenläufigkeit auf Galera
ok (CLI)—Differenzieller Test, Unit- und Golden Tests, End-to-End in einem Lab
okadm—Unit- und Golden Tests, End-to-End in einem Lab, Client-Vertrag

Die Anzahl der Operationen stammt aus der docs/PLAN.md jedes Moduls (Keystone: aus seinem Go-Router), die Testmethoden aus seiner docs/CONFORMANCE.md; eine vom Modul geplante, aber noch nicht ausgeführte Methode wird hier nicht gezählt und auf der Seite des Moduls entsprechend ausgewiesen.