OpenKeel: la soluzione Cloud sovrana, francese e di portata europea, del gruppo inherent Scopri inherent

Deployment

Isofunzionalità e test

Tutto è testato e validato funzionalmente rispetto al componente originale.

Isofunzionale: nulla cambia per l'ecosistema

Stessa API REST

  • Percorsi, parametri, codici di stato HTTP
  • Corpi di errore e microversion
  • Policy identiche

Stesso database

  • Stesse tabelle e colonne
  • Stesse migrazioni di schema
  • Dati esistenti riutilizzabili

Stessi messaggi RabbitMQ

  • envelope oslo.messaging
  • Stessi RPC e topic
  • Notifiche versionate

Cinque livelli di test

  1. Tempest

    Suite e plugin ufficiali (neutron, cinder, keystone, octavia, barbican, designate, heat, manila…) sul laboratorio

  2. CLI differenziale

    ok e openstack eseguiti in parallelo: stesse richieste HTTP, stessi output, stessi codici di uscita

  3. e2e replay

    Scambi registrati sul servizio Python, riprodotti sul servizio Go (make e2e, report.json)

  4. Galera

    Test di integrazione su un vero cluster MariaDB Galera

  5. Unitari

    go vet, go test -race -cover; client Kubernetes e Helm simulati

Le differenze note di ogni servizio rispetto all'originale sono elencate in openkeel-<service>/docs/CONFORMANCE.md.

Compatibilità, modulo per modulo

Per ogni modulo: quante operazioni dell'API originale serve e i metodi che ne verificano la compatibilità. Ogni riga porta ai test del modulo e alla sua tabella API completa.

ModuloOperazioni implementateMetodi di test
Placement37 / 37Replay degli scambi registrati, Test unitari e golden test, Test differenziale, Concorrenza su Galera
Nova141 / 273Replay degli scambi registrati, Test unitari e golden test, Concorrenza su Galera, End-to-end su un laboratorio, Scenario
Zun69 / 73Replay degli scambi registrati, Test unitari e golden test
Masakari21 / 21Replay degli scambi registrati, Contratto client, Test unitari e golden test, Concorrenza su Galera
Ironic131 / 131End-to-end su un laboratorio, Scenario
Cinder147 / 218Replay degli scambi registrati, Contratto client, Test unitari e golden test, Concorrenza su Galera
Glance76 / 83Replay degli scambi registrati, Contratto client, Concorrenza su Galera, Test unitari e golden test
Manila132 / 258Replay degli scambi registrati, Contratto client, End-to-end su un laboratorio
Swift e S3—End-to-end su un laboratorio
CSI Pure Storage—Contratto client, Test unitari e golden test, Scenario
Neutron138 / 368Replay degli scambi registrati, Contratto client, Concorrenza su Galera, End-to-end su un laboratorio
Octavia (OVN)297 / 297Test differenziale, Test unitari e golden test, Tempest, End-to-end su un laboratorio
Neutron-FWaaS23 / 23Replay degli scambi registrati, Test differenziale, Test unitari e golden test, Concorrenza su Galera, End-to-end su un laboratorio
Neutron-VPNaaS35 / 35Replay degli scambi registrati, Test unitari e golden test, Scenario, Concorrenza su Galera
OVN-BGP-Agent—Test unitari e golden test, Scenario
Keystone163 / 259Replay degli scambi registrati, Test unitari e golden test, Contratto client, End-to-end su un laboratorio
Barbican57 / 57Replay degli scambi registrati, Contratto client, Test differenziale, Test unitari e golden test, Concorrenza su Galera
Designate78 / 78Replay degli scambi registrati, Test unitari e golden test, Contratto client
CloudKitty66 / 66Replay degli scambi registrati, Test unitari e golden test, End-to-end su un laboratorio
API EC2100 / 100Replay degli scambi registrati, Scenario, Contratto client, Concorrenza su Galera
Skyline26 / 30Replay degli scambi registrati, Test unitari e golden test, Contratto client, End-to-end su un laboratorio, Concorrenza su Galera
ok (CLI)—Test differenziale, Test unitari e golden test, End-to-end su un laboratorio
okadm—Test unitari e golden test, End-to-end su un laboratorio, Contratto client

Il numero di operazioni proviene dal docs/PLAN.md di ciascun modulo (Keystone: dal suo router Go), i metodi di test dal suo docs/CONFORMANCE.md; un metodo previsto dal modulo ma non ancora eseguito non viene conteggiato qui ed è indicato come tale nella pagina del modulo.