OpenKeel: la solución Cloud soberana, francesa y de alcance europeo, del grupo inherent Descubrir inherent

Arquitectura

Lo que el rewrite deja fuera

OpenKeel conserva las API de OpenStack, no toda la mecánica que hay detrás. Algunas funcionalidades se dejan a la plataforma Cloud Native subyacente (KubeVirt, CDI, CSI, OVN, Medik8s, ExternalDNS, el propio Kubernetes), otras estaban obsoletas en upstream y parte de la mecánica interna es más sencilla en Go. Cada una se enumera con el motivo de su exclusión y la razón por la que la solución en su conjunto no se ve afectada.

Tres motivos para excluir una funcionalidad

Plataforma

Asumido por la plataforma Cloud Native

Kubernetes y sus operadores ya ejecutan, mueven, reparan y conectan las cargas de trabajo: OpenKeel los controla en lugar de reimplementarlos, por lo que la funcionalidad sigue existiendo, una capa más abajo.

Upstream

Obsoleto o sin uso en upstream

API obsoletas, proxies hacia servicios eliminados y drivers para back ends que OpenKeel no utiliza: nada en la plataforma los llama.

Go

Mecánica interna simplificada

Celdas, topologías RPC, agentes por host, asistentes de privilegios: sustituidos por mecanismos más sencillos con la misma API REST y el mismo comportamiento visto por los clientes.

Módulo a módulo

Cada línea enlaza con la página del componente, que indica el motivo, el efecto y el documento de origen.

  • 78funcionalidades excluidas, en 22 módulos
  • 38Asumido por la plataforma Cloud Native
  • 8Obsoleto o sin uso en upstream
  • 32Mecánica interna simplificada

Cómputo y capacidad

MóduloFuncionalidad excluidaKindAsumido por
PlacementModo sin autenticación noauth2Mecánica interna simplificada—
PlacementMigraciones de datos en línea para bases de datos antiguasObsoleto o sin uso en upstream—
PlacementMiddleware CORSAsumido por la plataforma Cloud NativeIngress (Gateway API)
PlacementLogs en archivos, osprofiler, middleware healthcheckAsumido por la plataforma Cloud NativeKubernetes probes, OpenTelemetry
NovaCells v2, cell0 y build requestsMecánica interna simplificada—
Novanova-compute por host y drivers libvirtAsumido por la plataforma Cloud NativeKubeVirt
NovaAPI proxy obsoletas (imágenes, volúmenes, redes)Obsoleto o sin uso en upstream—
NovaSuspensión a discoAsumido por la plataforma Cloud NativeKubeVirt
NovaEspera de network-vif-plugged y timeouts de conexión de VIFAsumido por la plataforma Cloud NativeOVN CNI
ZunDemonio Docker, zun-cni y kuryr-libnetworkAsumido por la plataforma Cloud NativePods de Kubernetes, Kata Containers
ZunPause, unpause y commitAsumido por la plataforma Cloud NativeKubernetes
ZunCapa de escritura conservada tras stopAsumido por la plataforma Cloud NativeKubernetes
ZunBúsqueda de imágenes Docker, docker load, redes DockerAsumido por la plataforma Cloud NativeKubernetes (kubelet)
ZunReserva de DISK_GB en PlacementAsumido por la plataforma Cloud NativeKubernetes (ephemeral-storage)
ZunRPC de RabbitMQ hacia zun-computeMecánica interna simplificada—
MasakariMonitor de hosts masakari-monitorsAsumido por la plataforma Cloud NativeMedik8s
MasakariRPC de oslo.messaging y coordinación toozMecánica interna simplificadaKubernetes Leases
MasakariLogbook de taskflow y flujos de recuperación personalizadosMecánica interna simplificada—
MasakariOpciones del servidor WSGI, healthcheck, filtros osapi_v1Asumido por la plataforma Cloud NativeKubernetes probes
IronicRPC de RabbitMQ entre API y conductorMecánica interna simplificada—
IronicURL temporales de Swift para imágenesMecánica interna simplificada—
IronicScripts de arranque de Kolla y sudoMecánica interna simplificadaKubernetes

Almacenamiento

MóduloFuncionalidad excluidaKindAsumido por
CinderDrivers de volumen de fabricantes y FC zone managerAsumido por la plataforma Cloud NativeCSI (Longhorn por defecto)
CinderMigración de volúmenes entre backendsAsumido por la plataforma Cloud NativeCSI
CinderReplicación de Cinder y failover_hostAsumido por la plataforma Cloud NativeCSI
CinderClave de Barbican por volumen cifradoAsumido por la plataforma Cloud NativeVolúmenes cifrados de Longhorn
CinderCasts RPC y planificación según estadísticas por poolMecánica interna simplificada—
CinderClústeres activo-activo y os-hostsMecánica interna simplificadaKubernetes Leases
GlanceCaché de imágenes y herramientas glance-cacheAsumido por la plataforma Cloud NativeCDI
GlanceStores rbd, swift, s3, cinder y vmwareAsumido por la plataforma Cloud NativeCDI, CSI (Longhorn)
GlancePlugin image_conversion (qemu-img)Asumido por la plataforma Cloud NativeCDI
GlanceEjecutor de taskflowMecánica interna simplificada—
ManilaDrivers de recursos compartidos de fabricantesAsumido por la plataforma Cloud NativeNFS-Ganesha sobre CSI (Longhorn)
ManilaRPC de RabbitMQ y bloqueos locales del hostMecánica interna simplificadaKubernetes Leases
ManilaRecursos compartidos CIFS y reversión in situ a un snapshotAsumido por la plataforma Cloud NativeCSI
Swift y S3Proxy, anillos y demonios de almacenamiento de SwiftAsumido por la plataforma Cloud NativeRook-Ceph RGW
Swift y S3Capa S3 independiente (s3api, ec2-api-s3)Asumido por la plataforma Cloud NativeRook-Ceph RGW

Redes

MóduloFuncionalidad excluidaKindAsumido por
NeutronDrivers de mecanismo no OVN y agentes por hostAsumido por la plataforma Cloud NativeOVN
NeutronServicio Octavia, driver amphora y housekeepingAsumido por la plataforma Cloud NativeLoad balancers de OVN
NeutronTerminación TLS de Octavia mediante BarbicanMecánica interna simplificada—
NeutronNotificaciones AMQP de recursosMecánica interna simplificada—
Octavia (OVN)Carga de providers Python y driver agentMecánica interna simplificada—
Octavia (OVN)Plugin de Octavia de neutron-ovn-db-sync-utilMecánica interna simplificada—
Octavia (OVN)Opciones de endpoint de keystoneauth obsoletasObsoleto o sin uso en upstream—
Neutron-FWaaSDriver de agente, iptables, conntrack y NFLOGAsumido por la plataforma Cloud NativeOVN
Neutron-FWaaSneutron-ovn-db-sync-util manualMecánica interna simplificada—
Neutron-FWaaSCarga de service_plugins dentro de neutron-serverMecánica interna simplificadaKubernetes Deployments
Neutron-VPNaaSDriver Libreswan y antigua ruta del agente L3Obsoleto o sin uso en upstream—
Neutron-VPNaaSRPC de RabbitMQ y notificaciones de agentesMecánica interna simplificada—
Neutron-VPNaaSrootwrap y drivers de interfazMecánica interna simplificadaKubernetes DaemonSet
OVN-BGP-AgentDrivers Southbound, EVPN y L2 extendidoMecánica interna simplificada—
OVN-BGP-AgentMétodos de exposición l2vni y dinámicosObsoleto o sin uso en upstream—
OVN-BGP-AgentDemonios privsep y oslo.concurrencyMecánica interna simplificadaKubernetes DaemonSet

Identidad y seguridad

MóduloFuncionalidad excluidaKindAsumido por
KeystoneFormato de notificación basicMecánica interna simplificada—
KeystoneLogs en archivos, osprofiler, healthcheck, CORSAsumido por la plataforma Cloud NativeProbes de Kubernetes, OpenTelemetry, Ingress
BarbicanProceso barbican-retryObsoleto o sin uso en upstream—
BarbicanAlmacén de secretos y CA de DogtagObsoleto o sin uso en upstream—
BarbicanLogs en archivos, middleware healthcheck, oslo_reportsAsumido por la plataforma Cloud NativeKubernetes probes

Servicios y orquestación

MóduloFuncionalidad excluidaKindAsumido por
Designatemdns, AXFR/NOTIFY y destinos de poolAsumido por la plataforma Cloud NativeExternalDNS
DesignateRPC de central, worker y producer, y bloqueos toozMecánica interna simplificadaKubernetes Leases
DesignateRegistros SPF, SSHFP, CAA, CERT, HTTPS, SVCBAsumido por la plataforma Cloud NativeExternalDNS
DesignateZonas secundarias en proveedores DNS en la nubeAsumido por la plataforma Cloud NativeExternalDNS
CloudKittyPyScripts (Python ejecutado por el servicio)Mecánica interna simplificadaCEL
CloudKittyColectores Gnocchi y Aetos, fetcher GnocchiAsumido por la plataforma Cloud NativePrometheus
CloudKittyElasticsearch, OpenSearch, Loki y almacenamiento v1Asumido por la plataforma Cloud NativeInfluxDB
CloudKittyRPC de RabbitMQ y bloqueos toozMecánica interna simplificadaKubernetes Leases
API EC2Servidor ec2-api-s3Asumido por la plataforma Cloud NativeRook-Ceph RGW
API EC2Servicio ec2-api-metadataAsumido por la plataforma Cloud NativeKubeVirt (cloud-init)
API EC2Bloqueo de archivo por host para la VPC por defectoMecánica interna simplificada—

Consola y herramientas

MóduloFuncionalidad excluidaKindAsumido por
Skylinenginx y skyline-nginx-generatorMecánica interna simplificada—
SkylineOrígenes permitidos de CORSObsoleto o sin uso en upstream—
SkylineRutas de documentación de FastAPI y generadores sin conexiónMecánica interna simplificada—
ok (CLI)Shell interactivo cmd2Mecánica interna simplificada—
ok (CLI)Plugins de Python instalados por separadoMecánica interna simplificada—
okadmPreparación de hosts por SSH e inventario de AnsibleAsumido por la plataforma Cloud NativeKubernetes
okadmAgentes libvirt y OVS en los hostsAsumido por la plataforma Cloud NativeKubeVirt, OVN, CSI
okadmMariaDB, RabbitMQ y Memcached desplegados a manoAsumido por la plataforma Cloud NativeOperadores de Kubernetes
okadmCadena de herramientas Python, Ansible y helm o kubectlMecánica interna simplificada—

El trabajo aún no realizado no se enumera aquí: figura en los Known gaps del docs/CONFORMANCE.md de cada módulo.