How rocm/gpu-operator works
AMD GPU Operator manages accelerator configuration and workloads in Kubernetes. An administrator creates or edits a DeviceConfig; the controller reconciles that desired state into driver and device-serving components, while supporting node labeling, metrics, testing, configuration management, and recovery. The API types define configuration and status, and the controller package contains the principal reconciliation and watcher layers. README capabilities include DRA as an alternative allocation path. Some subsystem wiring is not shown in the sampled source, so the graph omits uncertain call relationships; unsampled DRA implementation is represented without an invented file path.
Main entry points: device_config_reconciler.go DeviceConfig reconciler · deviceconfig_types.go DeviceConfig API · kmmmodule.go Kernel module manager · workermgr.go Node worker manager
Components 17
Operator control
- DeviceConfig API
api/v1alpha1/deviceconfig_types.go - DeviceConfig reconciler
internal/controllers/device_config_reconciler.go - Config validation
internal/validator/validator.go - Status conditions
internal/conditions/deviceconfig.go
Driver management
- Kernel module manager
internal/kmmmodule/kmmmodule.go - Node worker manager
internal/controllers/workermgr/workermgr.go - Driver upgrades
internal/controllers/upgrademgr.go
GPU services
- Device plugin
internal/plugin/plugin.go - Node labeller
internal/nodelabeller/nodelabeller.go - DRA driver
- Device config manager
internal/configmanager/configmanager.go - Metrics exporter
internal/metricsexporter/metricsexporter.go - Device test runner
internal/testrunner/testrunner.go
Health and recovery
- Node remediation
internal/controllers/remediation_handler.go - Resource watchers
internal/controllers/watchers/device_config.go
Other components
- Cluster administrator
- Kubernetes cluster
Connections 19
- Cluster administrator → DeviceConfig API: configures
- DeviceConfig API → DeviceConfig reconciler: triggers reconcile
- DeviceConfig reconciler → Config validation: validates config
- DeviceConfig reconciler → Status conditions: updates status
- DeviceConfig reconciler → Kubernetes cluster: reconciles resources
- DeviceConfig reconciler → Kernel module manager: manages modules
- DeviceConfig reconciler → Node worker manager: coordinates node work
- DeviceConfig reconciler → Driver upgrades: manages upgrades
- DeviceConfig reconciler → Device plugin: configures serving
- DeviceConfig reconciler → Node labeller: labels nodes
- DeviceConfig reconciler → DRA driver: enables allocation
- DeviceConfig reconciler → Device config manager: configures manager
- DeviceConfig reconciler → Metrics exporter: configures metrics
- DeviceConfig reconciler → Device test runner: configures tests
- DeviceConfig reconciler → Node remediation: handles recovery
- Resource watchers → DeviceConfig reconciler: watches changes
- Kernel module manager → Kubernetes cluster: manages module resources
- Node worker manager → Kubernetes cluster: patches nodes
- Node remediation → Kubernetes cluster: manages workflows