OpenKeel: die souveräne französische Cloud-Lösung mit europäischer Reichweite der inherent-Gruppe inherent entdecken

Komponenten · Compute und Kapazität

Ironic

Bare Metal: bleibt upstream Python, verpackt in einem OpenKeel-Chart; zu viele Hardwarekonfigurationen zum Testen.

Chart (upstream Python) Helm-Chart (upstream Python)openkeel-ironic

Das Modul

Upstream OpenStack Ironic (Python, 2026.2) in OpenKeel: a Helm chart, not a Go rewrite. Design, decisions and evidence are in openkeel-docs/IRONIC-DESIGN.md.

Auszug aus openkeel-ironic/README.md (auf Englisch).

REST-API

131 Operationen der Original-REST-API (Routen und Body-Aktionen) und ihr Status in OpenKeel.

  • 131Upstream-Dienst

Wie die Kompatibilität getestet wird

Ironic bleibt der Upstream-Python-Dienst in einem Helm-Chart; die Tests prüfen, dass er über das Go-Keystone, den Standard-Client und das Go-Nova auf einer Fake-Redfish-Maschine funktioniert.

End-to-End in einem Lab

Smoke Test auf Fake-Redfish-Hardware

openstack baremetal über das Go-Keystone registriert eine sushy-tools-Maschine, bringt sie auf available, stellt sie bis wait call-back bereit und nimmt die Bereitstellung zurück.

Ausführung

openkeel-ironic/test/smoke.sh aus einem Client-Pod (python-ironicclient 6.3.0) auf einem kind-Cluster.

Letztes Ergebnis Verifiziert (2026-10-31). Keine Maschine bootet: IPA und active sind nicht abgedeckt.

Quelle: openkeel-docs/IRONIC-DESIGN.md

End-to-End in einem Lab

okadm install, Lab und Produktion

Das mit okadm install --components ironic installierte Chart besteht den Smoke Test in beiden Bereitstellungsmodi.

Ausführung

okadm install im Lab-Modus (kind, 3 Knoten) und im Produktionsmodus (3 API, 2 Conductors, Galera 3), danach jeweils smoke.sh.

Letztes Ergebnis Ausgeführt am 2026-11-02; die Produktion auf kind erforderte zwei reine Testergänzungen (DNS-NetworkPolicy-Workaround, automated_clean: false).

Quelle: openkeel-docs/IRONIC-DESIGN.md

Szenario

Bare-Metal-Server über Nova

openstack server create mit einem Bare-Metal-Flavor steuert Ironic über das Go-Nova, und das Löschen gibt den Knoten frei.

Ausführung

openkeel-ironic/test/nova.sh in einem Lab mit Nova und Ironic, Neutron flat und sushy-tools.

Letztes Ergebnis Auf kind bis wait call-back verifiziert; echte Maschine, IPA, Config Drive und active nicht verifiziert.

Quelle: openkeel-nova/docs/CONFORMANCE.md

Im Rewrite ausgelassen

Ironic bleibt das Upstream-Python in einem OpenKeel-Chart, bereitgestellt ohne RabbitMQ, temporäre Swift-URLs oder die Kolla-Startskripte.

Vereinfachte interne Mechanik

RabbitMQ-RPC zwischen API und Conductor

Warum es ausgelassen wurde

Ironic benötigt RabbitMQ für nichts anderes; json-rpc auf Port 8089 des Conductors, mit DNS-Namen pro Pod aus dem StatefulSet, erfüllt dieselbe Aufgabe.

Warum die Lösung nicht beeinträchtigt ist

API und Conductor verhalten sich wie upstream; Benachrichtigungen bleiben deaktiviert. JSON-RPC ist noch nicht verschlüsselt, und eine NetworkPolicy beschränkt es auf die API.

Quelle: openkeel-docs/IRONIC-DESIGN.md

Vereinfachte interne Mechanik

Temporäre Swift-URLs für Images

Warum es ausgelassen wurde

OpenKeel hat keinen eigenen Swift-Dienst.

Warum die Lösung nicht beeinträchtigt ist

Images und Config Drives werden vom HTTP-Server des Conductors ausgeliefert (image_download_source http, configdrive_use_object_store false), sodass die Bereitstellung weiterhin funktioniert.

Quelle: openkeel-docs/IRONIC-DESIGN.md

Vereinfachte interne Mechanik

Kolla-Startskripte und sudo

Übernommen von Kubernetes

Warum es ausgelassen wurde

Die Kolla-Images sind per Digest fixiert und ihre Binaries laufen direkt, konfiguriert aus einer ConfigMap, ohne kolla_start oder sudo.

Warum die Lösung nicht beeinträchtigt ist

Gleicher Ironic-Code; API und Conductor laufen ohne Privilegien, mit schreibgeschütztem Root-Dateisystem und ohne Capabilities.

Quelle: openkeel-docs/IRONIC-DESIGN.md

Hier ist nur aufgeführt, was bewusst ausgelassen wurde; noch nicht erledigte Arbeit steht in den Known gaps der docs/CONFORMANCE.md des Moduls. Alle Module

Ironic-Interaktionen

Dienstansicht, vom Diagramm-Skill aus dem OpenKeel-Modell generiert.

Diagramm openkeel-ironic.svg Vollbild
Die 8 Interaktionen des Modells
VonNachProtokollWas
Nova conductor + schedulerIronic APIREST-APIbare metal flavors: provision nodes
Nova compute agentIronic APIREST-APInodes → Placement inventory (planned)
Ironic APIIronic conductorREST-APIJSON-RPC deploy/clean/power
Ironic conductorBMCs and switchesREST-APIRedfish power, virtual media
Ironic conductorironic-python-agentREST-APIagent API: write image, clean, inspect
ironic-python-agentIronic APIREST-APIlookup, heartbeat
Ironic conductorGlanceREST-APIimage download (cache)
Ironic conductorNeutron serverREST-APIprovisioning/tenant ports

Spezifikationen