OpenKeel: la soluzione Cloud sovrana, francese e di portata europea, del gruppo inherent Scopri inherent

Componenti · Calcolo e capacità

Ironic

Bare metal: resta Python upstream, impacchettato in un chart OpenKeel; troppe configurazioni hardware da testare.

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

Il modulo

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.

Estratto da openkeel-ironic/README.md (in inglese).

API REST

131 operazioni dell'API REST originale (route e azioni nel corpo) e il loro stato in OpenKeel.

  • 131Servizio upstream

Come viene testata la compatibilità

Ironic resta il servizio Python upstream in un chart Helm; i test verificano che funzioni tramite il Keystone Go, il client standard e il Nova Go, su una macchina Redfish simulata.

End-to-end su un laboratorio

Smoke test su hardware Redfish simulato

openstack baremetal tramite il Keystone Go registra una macchina sushy-tools, la porta fino ad available, la distribuisce fino a wait call-back e ne annulla la distribuzione.

Esecuzione

openkeel-ironic/test/smoke.sh da un pod client (python-ironicclient 6.3.0) su un cluster kind.

Ultimo risultato Verificato (2026-10-31). Nessuna macchina si avvia: IPA e active non sono coperti.

Fonte: openkeel-docs/IRONIC-DESIGN.md

End-to-end su un laboratorio

okadm install, laboratorio e produzione

Il chart installato con okadm install --components ironic supera lo smoke test in entrambe le modalità di deployment.

Esecuzione

okadm install in modalità laboratorio (kind, 3 nodi) e in modalità produzione (3 API, 2 conductor, Galera 3), poi smoke.sh su ciascuna.

Ultimo risultato Eseguito il 2026-11-02; la produzione su kind ha richiesto due aggiunte specifiche per i test (workaround NetworkPolicy per il DNS, automated_clean: false).

Fonte: openkeel-docs/IRONIC-DESIGN.md

Scenario

Server bare metal tramite Nova

openstack server create con un flavor bare metal pilota Ironic tramite il Nova Go, e l'eliminazione libera il nodo.

Esecuzione

openkeel-ironic/test/nova.sh su un laboratorio con Nova e Ironic, Neutron flat e sushy-tools.

Ultimo risultato Verificato su kind fino a wait call-back; macchina reale, IPA, config drive e active non verificati.

Fonte: openkeel-nova/docs/CONFORMANCE.md

Escluso dal rewrite

Ironic resta il Python upstream in un chart OpenKeel, distribuito senza RabbitMQ, senza URL temporanei Swift né gli script di avvio Kolla.

Meccanismi interni semplificati

RPC RabbitMQ tra API e conductor

Perché è stato escluso

Ironic non ha bisogno di RabbitMQ per nient'altro; json-rpc sulla porta 8089 del conductor, con nomi DNS per Pod forniti dallo StatefulSet, svolge lo stesso compito.

Perché la soluzione non ne risente

API e conductor si comportano come upstream; le notifiche restano disattivate. JSON-RPC non è ancora cifrato, e una NetworkPolicy lo limita all'API.

Fonte: openkeel-docs/IRONIC-DESIGN.md

Meccanismi interni semplificati

URL temporanei Swift per le immagini

Perché è stato escluso

OpenKeel non ha un proprio servizio Swift.

Perché la soluzione non ne risente

Immagini e config drive sono serviti dal server HTTP del conductor (image_download_source http, configdrive_use_object_store false), quindi il deployment continua a funzionare.

Fonte: openkeel-docs/IRONIC-DESIGN.md

Meccanismi interni semplificati

Script di avvio Kolla e sudo

Gestito da Kubernetes

Perché è stato escluso

Le immagini Kolla sono fissate per digest e i loro binari girano direttamente, configurati da una ConfigMap, senza kolla_start né sudo.

Perché la soluzione non ne risente

Stesso codice Ironic; API e conductor girano senza privilegi, con un root in sola lettura e senza capability.

Fonte: openkeel-docs/IRONIC-DESIGN.md

Qui è elencato solo ciò che è stato escluso per scelta progettuale; il lavoro non ancora svolto si trova nei Known gaps del docs/CONFORMANCE.md del modulo. Tutti i moduli

Interazioni Ironic

Vista del servizio generata dalla skill dei diagrammi a partire dal modello OpenKeel.

Diagramma openkeel-ironic.svg Schermo intero
Le 8 interazioni del modello
DaAProtocolloCosa
Nova conductor + schedulerIronic APIAPI RESTbare metal flavors: provision nodes
Nova compute agentIronic APIAPI RESTnodes → Placement inventory (planned)
Ironic APIIronic conductorAPI RESTJSON-RPC deploy/clean/power
Ironic conductorBMCs and switchesAPI RESTRedfish power, virtual media
Ironic conductorironic-python-agentAPI RESTagent API: write image, clean, inspect
ironic-python-agentIronic APIAPI RESTlookup, heartbeat
Ironic conductorGlanceAPI RESTimage download (cache)
Ironic conductorNeutron serverAPI RESTprovisioning/tenant ports

Specifiche