Platform Detection & Overrides
Platform Detection & Overrides
Auto-detection
The controller detects two dimensions at runtime:
The live controller writes detection results to status.orchestration.detectedPlatform and status.orchestration.detectedGPUArchitecture on the Workflow. When using nvcrectl workflow render (client-side), these values are also written as annotations (nvcrectl.nvidia.com/detected-platform, nvcrectl.nvidia.com/detected-gpu-architecture) on the rendered manifest for offline inspection.
Override matching
Catalog entries define a base WorkflowSpec. Overrides are matched by platform + GPU architecture and applied in order. Two patch mechanisms are supported:
jobTemplate (strategic merge patch)
Replaces entire arrays. Use when you want to set all values for a field (e.g. the full env list):
Arrays in jobTemplate overrides are replaced entirely, not merged by name. If the base spec has env vars, they will be wiped unless you include them in the override.
jobTemplatePatch (RFC 6902 JSON Patch)
Appends or modifies individual fields without replacing arrays. Use op: add with path ending in /- to append to an array:
A jobTemplatePatch that appends to an array must come after any jobTemplate override that sets that array, or the appended values will be wiped.
Architecture-specific resources
Different GPU architectures and cloud platforms require different Kubernetes resources:
The live controller tracks which overrides matched in status.orchestration.appliedOverrides. When using nvcrectl workflow render, the same information is also written to the nvcrectl.nvidia.com/applied-overrides annotation on the rendered manifest.