Understand runtime management
H2O MLOps uses a runtime management system to control which container images serve your ML models. This system lets you manage runtime images, track versions, and perform controlled rollouts across deployments.
Runtime hierarchy
The runtime management system uses a three-tier hierarchy:
| Tier | Description | Example |
|---|---|---|
| Runtime Image | A logical grouping of container images that represent a scorer family. | "H2O-3 MOJO Scorer" |
| Runtime Image Version | A specific versioned container image within a Runtime Image. | h2oai-h2o3mojo-scorer:v1.5.4 |
| Runtime | A deployable configuration that ties a Runtime Image to a model type, adding environment variables, volumes, and security settings. | "DAI MOJO Scorer" runtime for dai_mojo models |
When you create a deployment, H2O MLOps selects a Runtime based on the model type. The Runtime references a Runtime Image, and the system resolves the appropriate Runtime Image Version (the actual container image) to run.
State lifecycle
Each entity in the hierarchy (Runtime Image, Runtime Image Version, and Runtime) has a state that controls its availability:
| State | Meaning |
|---|---|
| ACTIVE | Available for use in new deployments and upgrades. |
| DEPRECATED | Still usable, but discouraged. Serves as a warning before disabling. |
| DISABLED | Cannot be used for new deployments or upgrades. |
States can transition in both directions:
ACTIVE <--> DEPRECATED <--> DISABLED
You can restrict a resource at any time (for example, move from ACTIVE to DEPRECATED, or from DEPRECATED to DISABLED). You can also re-enable a resource (for example, move from DISABLED to DEPRECATED).
Disabling a runtime image version does not automatically stop existing deployments that use it. However, disabled versions cannot be selected for new deployments or upgrades.
State constraints between management modes
When a runtime resource is managed by both bootstrap and the API (for example, a bootstrap-managed image whose state was changed via the SDK), a ceiling rule prevents either source from silently overriding the other:
- Either source can always restrict a resource (move toward DISABLED).
- Neither source can re-enable a resource beyond the most permissive state set by the other source.
| Scenario | Result |
|---|---|
| Platform bootstraps a resource as ACTIVE; user deprecates it via SDK | Allowed. On next bootstrap, the platform cannot re-enable it — the user's change is preserved. |
Platform disables a resource (removed from Helm config); user calls enable() | Blocked. The user cannot override the platform restriction. |
User disables a resource; user later calls enable() | Allowed only if the platform's ceiling also permits ACTIVE. |
This rule applies uniformly to runtime images, runtime image versions, and runtimes. It ensures that manual state changes made through the SDK are not lost during Helm upgrades, and platform restrictions cannot be bypassed through the API.
Management modes
Runtime resources can be managed in two ways:
Bootstrap-managed runtimes
Bootstrap-managed runtimes are defined in the Helm chart values.yaml and automatically applied when the platform starts. These runtimes:
- Are automatically created or updated during Helm install or upgrade.
- Cannot be deleted through the Python SDK or API.
- Are the standard way to manage the built-in set of runtimes that ship with the platform.
For configuration details, see Helm configuration for runtimes.
API-managed runtimes
API-managed runtimes are created and managed entirely through the Python SDK. These runtimes:
- Support full create, read, update, and delete operations.
- Are independent of Helm configuration.
- Are best suited for custom runtime images specific to a workspace or team.
For SDK usage details, see Manage runtime images and Manage runtimes.
Bootstrap-managed runtimes cannot be deleted through the Python SDK or API. You can change their state (for example, deprecate or disable) using the SDK, but you cannot delete them. To fully remove a bootstrap-managed runtime, update the Helm values.yaml and redeploy.
Related pages
To learn more about runtime management, see the following pages:
- Helm configuration for runtimes
- Runtime management workflows
- Manage runtime images (Python client)
- Manage runtimes (Python client)
- Scoring runtimes
- Submit and view feedback for this page
- Send feedback about H2O MLOps to cloud-feedback@h2o.ai