OpenKeel : la solution Cloud souveraine, française à portée européenne du groupe inherent Découvrir inherent

Architecture

Ce que la réécriture écarte

OpenKeel conserve les API OpenStack, pas toute la mécanique qui se trouve derrière. Certaines fonctionnalités sont laissées à la plateforme Cloud Native sous-jacente (KubeVirt, CDI, CSI, OVN, Medik8s, ExternalDNS, Kubernetes lui-même), certaines étaient obsolètes en amont, et une partie de la mécanique interne est plus simple en Go. Chacune est listée avec la raison de son exclusion et la raison pour laquelle la solution dans son ensemble n'est pas affectée.

Trois raisons d'écarter une fonctionnalité

Plateforme

Assuré par la plateforme Cloud Native

Kubernetes et ses opérateurs exécutent, déplacent, réparent et connectent déjà les charges de travail : OpenKeel les pilote au lieu de les réimplémenter, la fonctionnalité existe donc toujours, une couche plus bas.

En amont

Obsolète ou inutilisé en amont

API dépréciées, proxys vers des services supprimés et drivers pour des back ends qu'OpenKeel n'utilise pas : rien dans la plateforme ne les appelle.

Go

Mécanique interne simplifiée

Cellules, topologies RPC, agents par hôte, assistants de privilèges : remplacés par des mécanismes plus simples, avec la même API REST et le même comportement vu par les clients.

Module par module

Chaque ligne renvoie à la page du composant, qui donne la raison, l'effet et le document source.

  • 78fonctionnalités écartées, dans 22 modules
  • 38Assuré par la plateforme Cloud Native
  • 8Obsolète ou inutilisé en amont
  • 32Mécanique interne simplifiée

Calcul et capacités

ModuleFonctionnalité écartéeKindRepris par
PlacementMode non authentifié noauth2Mécanique interne simplifiée—
PlacementMigrations de données en ligne pour les anciennes basesObsolète ou inutilisé en amont—
PlacementMiddleware CORSAssuré par la plateforme Cloud NativeIngress (Gateway API)
PlacementLogs dans des fichiers, osprofiler, middleware healthcheckAssuré par la plateforme Cloud NativeKubernetes probes, OpenTelemetry
NovaCells v2, cell0 et build requestsMécanique interne simplifiée—
Novanova-compute par hôte et drivers libvirtAssuré par la plateforme Cloud NativeKubeVirt
NovaAPI proxy dépréciées (images, volumes, réseaux)Obsolète ou inutilisé en amont—
NovaSuspension sur disqueAssuré par la plateforme Cloud NativeKubeVirt
NovaAttente de network-vif-plugged et timeouts de branchement des VIFAssuré par la plateforme Cloud NativeOVN CNI
ZunDémon Docker, zun-cni et kuryr-libnetworkAssuré par la plateforme Cloud NativePods Kubernetes, Kata Containers
ZunPause, unpause et commitAssuré par la plateforme Cloud NativeKubernetes
ZunCouche inscriptible conservée à l'arrêtAssuré par la plateforme Cloud NativeKubernetes
ZunRecherche d'images Docker, docker load, réseaux DockerAssuré par la plateforme Cloud NativeKubernetes (kubelet)
ZunRéservation DISK_GB dans PlacementAssuré par la plateforme Cloud NativeKubernetes (ephemeral-storage)
ZunRPC RabbitMQ vers zun-computeMécanique interne simplifiée—
MasakariMoniteur d'hôtes masakari-monitorsAssuré par la plateforme Cloud NativeMedik8s
MasakariRPC oslo.messaging et coordination toozMécanique interne simplifiéeKubernetes Leases
MasakariLogbook taskflow et flux de reprise personnalisésMécanique interne simplifiée—
MasakariOptions du serveur WSGI, healthcheck, filtres osapi_v1Assuré par la plateforme Cloud NativeKubernetes probes
IronicRPC RabbitMQ entre API et conductorMécanique interne simplifiée—
IronicURL temporaires Swift pour les imagesMécanique interne simplifiée—
IronicScripts de démarrage Kolla et sudoMécanique interne simplifiéeKubernetes

Stockage

ModuleFonctionnalité écartéeKindRepris par
CinderDrivers de volumes constructeurs et FC zone managerAssuré par la plateforme Cloud NativeCSI (Longhorn par défaut)
CinderMigration de volumes entre backendsAssuré par la plateforme Cloud NativeCSI
CinderRéplication Cinder et failover_hostAssuré par la plateforme Cloud NativeCSI
CinderClé Barbican par volume chiffréAssuré par la plateforme Cloud NativeVolumes chiffrés Longhorn
CinderCasts RPC et ordonnancement sur les statistiques par poolMécanique interne simplifiée—
CinderClusters actif-actif et os-hostsMécanique interne simplifiéeKubernetes Leases
GlanceCache d'images et outils glance-cacheAssuré par la plateforme Cloud NativeCDI
GlanceStores rbd, swift, s3, cinder et vmwareAssuré par la plateforme Cloud NativeCDI, CSI (Longhorn)
GlancePlugin image_conversion (qemu-img)Assuré par la plateforme Cloud NativeCDI
GlanceExécuteur taskflowMécanique interne simplifiée—
ManilaDrivers de partage constructeursAssuré par la plateforme Cloud NativeNFS-Ganesha sur CSI (Longhorn)
ManilaRPC RabbitMQ et verrous locaux à l'hôteMécanique interne simplifiéeKubernetes Leases
ManilaPartages CIFS et retour sur place à un snapshotAssuré par la plateforme Cloud NativeCSI
Swift et S3Proxy, anneaux et démons de stockage SwiftAssuré par la plateforme Cloud NativeRook-Ceph RGW
Swift et S3Couche S3 séparée (s3api, ec2-api-s3)Assuré par la plateforme Cloud NativeRook-Ceph RGW

Réseau

ModuleFonctionnalité écartéeKindRepris par
NeutronDrivers de mécanisme non OVN et agents par hôteAssuré par la plateforme Cloud NativeOVN
NeutronService Octavia, driver amphora et housekeepingAssuré par la plateforme Cloud NativeLoad balancers OVN
NeutronTerminaison TLS Octavia via BarbicanMécanique interne simplifiée—
NeutronNotifications AMQP sur les ressourcesMécanique interne simplifiée—
Octavia (OVN)Chargement de providers Python et driver agentMécanique interne simplifiée—
Octavia (OVN)Plugin Octavia de neutron-ovn-db-sync-utilMécanique interne simplifiée—
Octavia (OVN)Options d'endpoint keystoneauth dépréciéesObsolète ou inutilisé en amont—
Neutron-FWaaSDriver d'agent, iptables, conntrack et NFLOGAssuré par la plateforme Cloud NativeOVN
Neutron-FWaaSneutron-ovn-db-sync-util manuelMécanique interne simplifiée—
Neutron-FWaaSChargement des service_plugins dans neutron-serverMécanique interne simplifiéeKubernetes Deployments
Neutron-VPNaaSDriver Libreswan et ancien chemin par agent L3Obsolète ou inutilisé en amont—
Neutron-VPNaaSRPC RabbitMQ et notifications d'agentsMécanique interne simplifiée—
Neutron-VPNaaSrootwrap et drivers d'interfaceMécanique interne simplifiéeKubernetes DaemonSet
OVN-BGP-AgentDrivers Southbound, EVPN et L2 étenduMécanique interne simplifiée—
OVN-BGP-AgentMéthodes d'exposition l2vni et dynamiquesObsolète ou inutilisé en amont—
OVN-BGP-AgentDémons privsep et oslo.concurrencyMécanique interne simplifiéeKubernetes DaemonSet

Identité et sécurité

ModuleFonctionnalité écartéeKindRepris par
KeystoneFormat de notification basicMécanique interne simplifiée—
KeystoneLogs dans des fichiers, osprofiler, healthcheck, CORSAssuré par la plateforme Cloud NativeProbes Kubernetes, OpenTelemetry, Ingress
BarbicanProcessus barbican-retryObsolète ou inutilisé en amont—
BarbicanStore de secrets et CA DogtagObsolète ou inutilisé en amont—
BarbicanLogs dans des fichiers, middleware healthcheck, oslo_reportsAssuré par la plateforme Cloud NativeKubernetes probes

Services et orchestration

ModuleFonctionnalité écartéeKindRepris par
Designatemdns, AXFR/NOTIFY et cibles de poolAssuré par la plateforme Cloud NativeExternalDNS
DesignateRPC central, worker, producer et verrous toozMécanique interne simplifiéeKubernetes Leases
DesignateEnregistrements SPF, SSHFP, CAA, CERT, HTTPS, SVCBAssuré par la plateforme Cloud NativeExternalDNS
DesignateZones secondaires chez les fournisseurs DNS cloudAssuré par la plateforme Cloud NativeExternalDNS
CloudKittyPyScripts (Python exécuté par le service)Mécanique interne simplifiéeCEL
CloudKittyCollecteurs Gnocchi et Aetos, fetcher GnocchiAssuré par la plateforme Cloud NativePrometheus
CloudKittyElasticsearch, OpenSearch, Loki et stockage v1Assuré par la plateforme Cloud NativeInfluxDB
CloudKittyRPC RabbitMQ et verrous toozMécanique interne simplifiéeKubernetes Leases
API EC2Serveur ec2-api-s3Assuré par la plateforme Cloud NativeRook-Ceph RGW
API EC2Service ec2-api-metadataAssuré par la plateforme Cloud NativeKubeVirt (cloud-init)
API EC2Verrou fichier par hôte pour le VPC par défautMécanique interne simplifiée—

Console et outils

ModuleFonctionnalité écartéeKindRepris par
Skylinenginx et skyline-nginx-generatorMécanique interne simplifiée—
SkylineOrigines autorisées CORSObsolète ou inutilisé en amont—
SkylineRoutes de documentation FastAPI et générateurs hors ligneMécanique interne simplifiée—
ok (CLI)Shell interactif cmd2Mécanique interne simplifiée—
ok (CLI)Plugins Python installés séparémentMécanique interne simplifiée—
okadmPréparation des hôtes par SSH et inventaire AnsibleAssuré par la plateforme Cloud NativeKubernetes
okadmAgents libvirt et OVS sur les hôtesAssuré par la plateforme Cloud NativeKubeVirt, OVN, CSI
okadmMariaDB, RabbitMQ et Memcached déployés à la mainAssuré par la plateforme Cloud NativeOpérateurs Kubernetes
okadmChaîne d'outils Python, Ansible et helm ou kubectlMécanique interne simplifiée—

Le travail pas encore fait n'est pas listé ici : il figure dans les Known gaps du docs/CONFORMANCE.md de chaque module.