How oxidecomputer/omicron works
Omicron is a rack-scale control plane: operators and services use its APIs to manage infrastructure, while Nexus coordinates persistent state and work across rack components. Major domains include database-backed inventory, deployment planning, sled-local instance and storage management, and supporting boot, installation, DNS, and management-gateway services. The README describes simulated and production modes; sampled source directly confirms several storage and instance-management behaviors, but not most service-to-service wiring, so uncertain links are omitted.
Main entry points: common_storage.rs Nexus · local_storage.rs Datastore queries · local_storage_unencrypted_dataset.rs Storage rendezvous · local_storage_dataset_allocation.rs Database models
Components 17
Control plane
- Nexus
nexus/src/app/sagas/common_storage.rs - Authentication and authorization
nexus/auth/src/storage.rs
State and planning
- Datastore queries
nexus/db-queries/src/db/datastore/local_storage.rs - Database models
nexus/db-model/src/local_storage_dataset_allocation.rs - Storage rendezvous
nexus/reconfigurator/rendezvous/src/local_storage_unencrypted_dataset.rs - Rack reconfiguration
nexus/reconfigurator
Rack services
- Sled agent
sled-agent/src/instance_manager.rs - Simulated storage
sled-agent/src/sim/storage.rs - Support bundles
sled-agent/src/support_bundle/storage.rs - Management gateway
gateway/src/http_entrypoints.rs - DNS service
dns-server/src/storage.rs
Lifecycle operations
- Boot state
bootstore/src/schemes/v0/storage.rs - Sled installation
installinator/src/dispatch.rs
Other components
- Operator or client
- Persistent ledger
- Crucible pantry
- Persistent database
Connections 10
- Operator or client → Nexus: requests management
- Nexus → Authentication and authorization: authorizes actions
- Nexus → Datastore queries: queries state
- Datastore queries → Persistent database: reads and writes
- Database models → Datastore queries: models records
- Storage rendezvous → Datastore queries: tombstones datasets
- Nexus → Crucible pantry: attaches volumes
- Rack reconfiguration → Storage rendezvous: reconciles datasets
- Sled agent → Simulated storage: uses in simulation
- Boot state → Persistent ledger: persists state