Misma API REST
- Rutas, parámetros, códigos de estado HTTP
- Cuerpos de error y microversiones
- Políticas idénticas
OpenKeel: la solución Cloud soberana, francesa y de alcance europeo, del grupo inherent Descubrir inherent
Despliegue
Todo está probado y validado funcionalmente frente al componente original.
Suites y plugins oficiales (neutron, cinder, keystone, octavia, barbican, designate, heat, manila…) frente al laboratorio
ok y openstack se ejecutan en paralelo: mismas peticiones HTTP, mismas salidas, mismos códigos de salida
Intercambios grabados frente al servicio Python y reproducidos frente al servicio Go (make e2e, report.json)
Pruebas de integración frente a un clúster MariaDB Galera real
go vet, go test -race -cover; clientes Kubernetes y Helm simulados
Las diferencias conocidas de cada servicio con su original se enumeran en openkeel-<service>/docs/CONFORMANCE.md.
Para cada módulo: cuántas operaciones de la API original sirve y los métodos que verifican que sigue siendo compatible. Cada línea lleva a los tests del módulo y a su tabla de API completa.
| Módulo | Operaciones implementadas | Métodos de prueba |
|---|---|---|
| Placement | 37 / 37 | Replay de los intercambios grabados, Tests unitarios y golden tests, Test diferencial, Concurrencia en Galera |
| Nova | 141 / 273 | Replay de los intercambios grabados, Tests unitarios y golden tests, Concurrencia en Galera, De extremo a extremo en un laboratorio, Escenario |
| Zun | 69 / 73 | Replay de los intercambios grabados, Tests unitarios y golden tests |
| Masakari | 21 / 21 | Replay de los intercambios grabados, Contrato de cliente, Tests unitarios y golden tests, Concurrencia en Galera |
| Ironic | 131 / 131 | De extremo a extremo en un laboratorio, Escenario |
| Cinder | 147 / 218 | Replay de los intercambios grabados, Contrato de cliente, Tests unitarios y golden tests, Concurrencia en Galera |
| Glance | 76 / 83 | Replay de los intercambios grabados, Contrato de cliente, Concurrencia en Galera, Tests unitarios y golden tests |
| Manila | 132 / 258 | Replay de los intercambios grabados, Contrato de cliente, De extremo a extremo en un laboratorio |
| Swift y S3 | — | De extremo a extremo en un laboratorio |
| CSI de Pure Storage | — | Contrato de cliente, Tests unitarios y golden tests, Escenario |
| Neutron | 138 / 368 | Replay de los intercambios grabados, Contrato de cliente, Concurrencia en Galera, De extremo a extremo en un laboratorio |
| Octavia (OVN) | 297 / 297 | Test diferencial, Tests unitarios y golden tests, Tempest, De extremo a extremo en un laboratorio |
| Neutron-FWaaS | 23 / 23 | Replay de los intercambios grabados, Test diferencial, Tests unitarios y golden tests, Concurrencia en Galera, De extremo a extremo en un laboratorio |
| Neutron-VPNaaS | 35 / 35 | Replay de los intercambios grabados, Tests unitarios y golden tests, Escenario, Concurrencia en Galera |
| OVN-BGP-Agent | — | Tests unitarios y golden tests, Escenario |
| Keystone | 163 / 259 | Replay de los intercambios grabados, Tests unitarios y golden tests, Contrato de cliente, De extremo a extremo en un laboratorio |
| Barbican | 57 / 57 | Replay de los intercambios grabados, Contrato de cliente, Test diferencial, Tests unitarios y golden tests, Concurrencia en Galera |
| Designate | 78 / 78 | Replay de los intercambios grabados, Tests unitarios y golden tests, Contrato de cliente |
| CloudKitty | 66 / 66 | Replay de los intercambios grabados, Tests unitarios y golden tests, De extremo a extremo en un laboratorio |
| API EC2 | 100 / 100 | Replay de los intercambios grabados, Escenario, Contrato de cliente, Concurrencia en Galera |
| Skyline | 26 / 30 | Replay de los intercambios grabados, Tests unitarios y golden tests, Contrato de cliente, De extremo a extremo en un laboratorio, Concurrencia en Galera |
| ok (CLI) | — | Test diferencial, Tests unitarios y golden tests, De extremo a extremo en un laboratorio |
| okadm | — | Tests unitarios y golden tests, De extremo a extremo en un laboratorio, Contrato de cliente |
Los recuentos de operaciones proceden del docs/PLAN.md de cada módulo (Keystone: de su router en Go) y los métodos de prueba de su docs/CONFORMANCE.md; un método previsto por el módulo pero aún no ejecutado no se cuenta aquí y se muestra como tal en la página del módulo.