OpenKeel: the sovereign French Cloud solution of the inherent group, with a European reach Discover inherent

Architecture

What the rewrite leaves out

OpenKeel keeps the OpenStack APIs, not every piece of machinery behind them. Some features are left to the Cloud Native platform underneath (KubeVirt, CDI, CSI, OVN, Medik8s, ExternalDNS, Kubernetes itself), some were obsolete upstream, and some internal machinery is simpler in Go. Each one is listed with why it was left out and why the solution as a whole is not affected.

Three reasons to leave a feature out

Platform

Done by the Cloud Native platform

Kubernetes and its operators already run, move, heal and connect the workloads: OpenKeel drives them instead of reimplementing them, so the feature still exists, one layer down.

Upstream

Obsolete or unused upstream

Deprecated APIs, proxies to removed services and drivers for back ends OpenKeel does not use: nothing in the platform calls them.

Go

Internal machinery simplified

Cells, RPC topologies, per-host agents, privilege helpers: replaced by simpler mechanisms with the same REST API and the same behaviour seen by clients.

Module by module

Each line links to the component page, which gives the reason, the effect and the source document.

  • 78features left out, in 22 modules
  • 38Done by the Cloud Native platform
  • 8Obsolete or unused upstream
  • 32Internal machinery simplified

Compute and capacity

ModuleFeature left outKindTaken over by
Placementnoauth2 unauthenticated modeInternal machinery simplified—
PlacementOnline data migrations for old databasesObsolete or unused upstream—
PlacementCORS middlewareDone by the Cloud Native platformIngress (Gateway API)
PlacementFile logging, osprofiler, healthcheck middlewareDone by the Cloud Native platformKubernetes probes, OpenTelemetry
NovaCells v2, cell0 and build requestsInternal machinery simplified—
NovaPer-host nova-compute and libvirt driversDone by the Cloud Native platformKubeVirt
NovaDeprecated proxy APIs (images, volumes, networks)Obsolete or unused upstream—
NovaSuspend to diskDone by the Cloud Native platformKubeVirt
Novanetwork-vif-plugged wait and VIF plugging timeoutsDone by the Cloud Native platformOVN CNI
ZunDocker daemon, zun-cni and kuryr-libnetworkDone by the Cloud Native platformKubernetes Pods, Kata Containers
ZunPause, unpause and commitDone by the Cloud Native platformKubernetes
ZunWritable layer kept across stopDone by the Cloud Native platformKubernetes
ZunDocker image search, docker load, Docker networksDone by the Cloud Native platformKubernetes (kubelet)
ZunDISK_GB claim in PlacementDone by the Cloud Native platformKubernetes (ephemeral-storage)
ZunRabbitMQ RPC to zun-computeInternal machinery simplified—
Masakarimasakari-monitors host monitorDone by the Cloud Native platformMedik8s
Masakarioslo.messaging RPC and tooz coordinationInternal machinery simplifiedKubernetes Leases
MasakariTaskflow logbook and custom recovery flowsInternal machinery simplified—
MasakariWSGI server options, healthcheck, osapi_v1 filtersDone by the Cloud Native platformKubernetes probes
IronicRabbitMQ RPC between API and conductorInternal machinery simplified—
IronicSwift temporary URLs for imagesInternal machinery simplified—
IronicKolla start-up scripts and sudoInternal machinery simplifiedKubernetes

Storage

ModuleFeature left outKindTaken over by
CinderVendor volume drivers and FC zone managerDone by the Cloud Native platformCSI (Longhorn by default)
CinderVolume migration between backendsDone by the Cloud Native platformCSI
CinderCinder replication and failover_hostDone by the Cloud Native platformCSI
CinderBarbican key per encrypted volumeDone by the Cloud Native platformLonghorn encrypted volumes
CinderRPC casts and per-pool stats schedulingInternal machinery simplified—
CinderActive-active clusters and os-hostsInternal machinery simplifiedKubernetes Leases
GlanceImage cache and glance-cache toolsDone by the Cloud Native platformCDI
Glancerbd, swift, s3, cinder and vmware storesDone by the Cloud Native platformCDI, CSI (Longhorn)
Glanceimage_conversion plugin (qemu-img)Done by the Cloud Native platformCDI
GlanceTaskflow executorInternal machinery simplified—
ManilaVendor share driversDone by the Cloud Native platformNFS-Ganesha on CSI (Longhorn)
ManilaRabbitMQ RPC and host-local locksInternal machinery simplifiedKubernetes Leases
ManilaCIFS shares and in-place snapshot revertDone by the Cloud Native platformCSI
Swift and S3Swift proxy, rings and storage daemonsDone by the Cloud Native platformRook-Ceph RGW
Swift and S3Separate S3 layer (s3api, ec2-api-s3)Done by the Cloud Native platformRook-Ceph RGW

Networking

ModuleFeature left outKindTaken over by
NeutronNon-OVN mechanism drivers and per-host agentsDone by the Cloud Native platformOVN
NeutronOctavia service, amphora driver and housekeepingDone by the Cloud Native platformOVN load balancers
NeutronOctavia TLS termination via BarbicanInternal machinery simplified—
NeutronAMQP resource notificationsInternal machinery simplified—
Octavia (OVN)Python provider loading and driver agentInternal machinery simplified—
Octavia (OVN)neutron-ovn-db-sync-util Octavia pluginInternal machinery simplified—
Octavia (OVN)Deprecated keystoneauth endpoint optionsObsolete or unused upstream—
Neutron-FWaaSAgent driver, iptables, conntrack and NFLOGDone by the Cloud Native platformOVN
Neutron-FWaaSManual neutron-ovn-db-sync-utilInternal machinery simplified—
Neutron-FWaaSservice_plugins loading inside neutron-serverInternal machinery simplifiedKubernetes Deployments
Neutron-VPNaaSLibreswan driver and legacy L3-agent pathObsolete or unused upstream—
Neutron-VPNaaSRabbitMQ RPC and agent notificationsInternal machinery simplified—
Neutron-VPNaaSrootwrap and interface driversInternal machinery simplifiedKubernetes DaemonSet
OVN-BGP-AgentSouthbound, EVPN and stretched L2 driversInternal machinery simplified—
OVN-BGP-Agentl2vni and dynamic exposing methodsObsolete or unused upstream—
OVN-BGP-Agentprivsep daemons and oslo.concurrencyInternal machinery simplifiedKubernetes DaemonSet

Identity and security

ModuleFeature left outKindTaken over by
Keystonebasic notification formatInternal machinery simplified—
KeystoneFile logging, osprofiler, healthcheck, CORSDone by the Cloud Native platformKubernetes probes, OpenTelemetry, Ingress
Barbicanbarbican-retry processObsolete or unused upstream—
BarbicanDogtag secret store and CAObsolete or unused upstream—
BarbicanFile logging, healthcheck middleware, oslo_reportsDone by the Cloud Native platformKubernetes probes

Services and orchestration

ModuleFeature left outKindTaken over by
Designatemdns, AXFR/NOTIFY and pool targetsDone by the Cloud Native platformExternalDNS
DesignateCentral, worker, producer RPC and tooz locksInternal machinery simplifiedKubernetes Leases
DesignateSPF, SSHFP, CAA, CERT, HTTPS, SVCB recordsDone by the Cloud Native platformExternalDNS
DesignateSecondary zones on cloud DNS providersDone by the Cloud Native platformExternalDNS
CloudKittyPyScripts (Python executed by the service)Internal machinery simplifiedCEL
CloudKittyGnocchi and Aetos collectors, Gnocchi fetcherDone by the Cloud Native platformPrometheus
CloudKittyElasticsearch, OpenSearch, Loki and storage v1Done by the Cloud Native platformInfluxDB
CloudKittyRabbitMQ RPC and tooz locksInternal machinery simplifiedKubernetes Leases
EC2 APIec2-api-s3 serverDone by the Cloud Native platformRook-Ceph RGW
EC2 APIec2-api-metadata serviceDone by the Cloud Native platformKubeVirt (cloud-init)
EC2 APIPer-host default-VPC file lockInternal machinery simplified—

Console and tools

ModuleFeature left outKindTaken over by
Skylinenginx and skyline-nginx-generatorInternal machinery simplified—
SkylineCORS allowed originsObsolete or unused upstream—
SkylineFastAPI docs routes and offline generatorsInternal machinery simplified—
ok (CLI)Interactive cmd2 shellInternal machinery simplified—
ok (CLI)Python plugins installed separatelyInternal machinery simplified—
okadmSSH host preparation and Ansible inventoryDone by the Cloud Native platformKubernetes
okadmlibvirt and OVS agents on hostsDone by the Cloud Native platformKubeVirt, OVN, CSI
okadmHand-deployed MariaDB, RabbitMQ and MemcachedDone by the Cloud Native platformKubernetes operators
okadmPython, Ansible and helm or kubectl toolchainInternal machinery simplified—

Work not done yet is not listed here: it is in the Known gaps of each module's docs/CONFORMANCE.md.