How opennebula/one works
OpenNebula is a cloud management platform for virtual machines, Kubernetes clusters, and GPU workloads across private, edge, and hybrid environments. A principal workflow is an operator using a web, CLI, or API interface to request infrastructure; the platform provisions and manages resources, with scheduling, VM lifecycle, storage, and monitoring as distinct operational stages. Other documented capabilities include secure multi-tenancy, federation, high availability, and marketplace appliances. The tree and excerpts identify relevant modules, but do not expose enough call sites to trace most internal handoffs; broad relationships below rely on README statements.
Main entry points: Request.h Request processing · VirtualMachineManager.cc VM management · DispatchManagerActions.cc Action dispatch · routes.js Web UI
Components 20
User Interfaces
- Web UI
src/fireedge/src/client/apps/sunstone/routes.js - CLI
src/cli - REST and RPC API
src/rm/xml-rpc/RequestManagerXRPC.cc
Cloud Control
- Request processing
include/Request.h - Action dispatch
src/dm/DispatchManagerActions.cc - Resource scheduling
src/schedm/SchedulerManagerDriver.cc
Resource Services
- VM management
src/vmm/VirtualMachineManager.cc - VM state store
include/VirtualMachinePool.h - VM lifecycle
src/lcm/LifeCycleManager.cc - Storage transfer
src/tm/TransferManager.cc - Image management
src/image/ImageManagerActions.cc - Datastore management
src/datastore/DatastorePool.cc
Operations
- Host monitoring
src/monitor/src/monitor/HostMonitorManager.cc - Marketplace
src/market/MarketPlaceManagerProtocol.cc - Kubernetes clusters
src/oneks/app/controllers/cluster_controller.rb - Federation and HA
src/raft/RaftManager.cc
Governance
- Authentication
src/authm/AuthManager.cc - Access control
src/acl/AclManager.cc - Quotas and isolation
include/Quotas.h
Other components
- Cloud operator
Connections 21
- Cloud operator → Web UI: uses
- Cloud operator → CLI: uses
- Cloud operator → REST and RPC API: uses
- Web UI → Request processing: requests management
- CLI → Request processing: requests management
- REST and RPC API → Request processing: requests management
src/rm/xml-rpc/RequestManagerXRPC.cc - Request processing → Action dispatch: initiates actions
src/dm/DispatchManagerActions.cc - Action dispatch → Resource scheduling: requests placement
- Action dispatch → VM management: requests VM actions
src/dm/DispatchManagerActions.cc - VM management → VM state store: reads VM state
src/vmm/VirtualMachineManager.cc - VM management → VM lifecycle: manages lifecycle
src/vmm/VirtualMachineManager.cc - VM management → Storage transfer: requests transfers
src/vmm/VirtualMachineManager.cc - VM management → Datastore management: uses storage
src/vmm/VirtualMachineManager.cc - Image management → Datastore management: updates image references
src/image/ImageManagerActions.cc - Host monitoring → VM state store: monitors workloads
- Cloud operator → Kubernetes clusters: requests clusters
- Cloud operator → Marketplace: selects appliances
- Cloud operator → Federation and HA: operates distributed sites
- Request processing → Authentication: authenticates requests
- Request processing → Access control: checks permissions
- Request processing → Quotas and isolation: enforces quotas
include/Request.h