API Reference

Full Kubernetes CRD + operator-config API reference, generated from the operator Go types.

View as Markdown

Auto-generated from source. This page is regenerated from the Dynamo operator CRDs by docs/fern/scripts/gen_kubernetes_api.py and covers every type across all three API packages: the deprecated nvidia.com/v1alpha1 surface, the supported nvidia.com/v1beta1 surface, and the operator’s own operator.config.dynamo.nvidia.com/v1alpha1 configuration. The trimmed DGD, DGDR, and DCD references cover only user-facing v1beta1 fields. To edit the surface, change the Go types under deploy/operator/api/ and let CI regenerate this page.

Dynamo publishes 3 Kubernetes API packages with 180 typed CRD and config sections.

nvidia.com/v1alpha1

Package v1alpha1 contains API Schema definitions for the nvidia.com v1alpha1 API group.

This package defines the DynamoGraphDeploymentRequest (DGDR) custom resource, which provides a high-level, SLA-driven interface for deploying machine learning models on Dynamo.

Package v1alpha1 contains API Schema definitions for the nvidia.com v1alpha1 API group.

Resource Types

Deprecated: This field is deprecated and ignored. Use DynamoGraphDeploymentScalingAdapter with HPA, KEDA, or Planner for autoscaling instead. See docs/kubernetes/autoscaling.md for migration guidance. This field will be removed in a future API version.

Kind: type Appears in: DynamoComponentDeploymentSharedSpec, DynamoComponentDeploymentSpec

enabled
boolean

Deprecated: This field is ignored.

minReplicas
integer

Deprecated: This field is ignored.

maxReplicas
integer

Deprecated: This field is ignored.

behavior
HorizontalPodAutoscalerBehavior

Deprecated: This field is ignored. See HorizontalPodAutoscalerBehavior.

metrics
MetricSpec array

Deprecated: This field is ignored. See MetricSpec.

CheckpointDeletionPolicy defines what happens to DGD-managed automatic checkpoint resources when the owning DGD is deleted.

Kind: enum Underlying type: string Validation: Enum: [Delete Retain] Appears in: ServiceCheckpointConfig

Allowed values

  • Delete CheckpointDeletionPolicyDelete deletes DGD-managed automatic checkpoint<br />CRs and artifacts when the owning DGD is deleted.<br />
  • Retain CheckpointDeletionPolicyRetain keeps DGD-managed automatic checkpoint CRs<br />and artifacts after the owning DGD is deleted. Users can reference the<br />retained checkpoint with checkpointRef if they accept compatibility risk.<br />

Deprecated: use checkpoint.enabled instead. enabled=true without checkpointRef creates a DGD-managed automatic checkpoint; checkpointRef restores the named checkpoint.

Kind: enum Underlying type: string Validation: Enum: [Auto Manual] Appears in: ServiceCheckpointConfig

Allowed values

  • Auto Deprecated: use checkpoint.enabled=true and omit checkpointRef.<br />
  • Manual Deprecated: use checkpointRef to restore an existing checkpoint.<br />

CheckpointStartupPolicy defines when worker pods should wait for a checkpoint.

Kind: enum Underlying type: string Validation: Enum: [Immediate WaitForCheckpoint] Appears in: ServiceCheckpointConfig

Allowed values

  • Immediate CheckpointStartupPolicyImmediate starts workers immediately. The checkpoint<br />job runs in the background, and only pods created after the checkpoint is<br />Ready are restore-shaped by the pod-create mutating webhook.<br />
  • WaitForCheckpoint CheckpointStartupPolicyWaitForCheckpoint gates worker replicas until the<br />component’s checkpoint is Ready, then starts them from the checkpoint.<br />

ComponentKind represents the type of underlying Kubernetes resource.

Kind: enum Underlying type: string Validation: Enum: [PodClique PodCliqueScalingGroup Deployment LeaderWorkerSet] Appears in: ServiceReplicaStatus

Allowed values

  • PodClique ComponentKindPodClique represents a PodClique resource.<br />
  • PodCliqueScalingGroup ComponentKindPodCliqueScalingGroup represents a PodCliqueScalingGroup resource.<br />
  • Deployment ComponentKindDeployment represents a Deployment resource.<br />
  • LeaderWorkerSet ComponentKindLeaderWorkerSet represents a LeaderWorkerSet resource.<br />

ConfigMapKeySelector selects a specific key from a ConfigMap. Used to reference external configuration data stored in ConfigMaps.

Kind: type Appears in: ProfilingConfigSpec

name
stringRequired

Name of the ConfigMap containing the desired data. Validation: Required: &#123;&#125; <br />

key
stringDefaults to disagg.yaml

Key in the ConfigMap to select. If not specified, defaults to “disagg.yaml”.

Kind: enum Underlying type: string Validation: Enum: [Initializing Pending Profiling Deploying Ready DeploymentDeleted Failed] Appears in: DynamoGraphDeploymentRequestStatus

Allowed values

  • Initializing
  • Pending
  • Profiling
  • Deploying
  • Ready
  • DeploymentDeleted
  • Failed

Kind: enum Underlying type: string Validation: Enum: [initializing pending successful failed] Appears in: DeploymentStatus, DynamoGraphDeploymentStatus

Allowed values

  • initializing
  • pending
  • successful
  • failed

DeploymentOverridesSpec allows users to customize metadata for auto-created DynamoGraphDeployments. When autoApply is enabled, these overrides are applied to the generated DGD resource.

Kind: type Appears in: DynamoGraphDeploymentRequestSpec

name
string

Name is the desired name for the created DynamoGraphDeployment.<br />If not specified, defaults to the DGDR name. Validation: Optional: &#123;&#125; <br />

namespace
string

Namespace is the desired namespace for the created DynamoGraphDeployment.<br />If not specified, defaults to the DGDR namespace. Validation: Optional: &#123;&#125; <br />

labels
object (keys:string, values:string)

Labels are additional labels to add to the DynamoGraphDeployment metadata.<br />These are merged with auto-generated labels from the profiling process. Validation: Optional: &#123;&#125; <br />

annotations
object (keys:string, values:string)

Annotations are additional annotations to add to the DynamoGraphDeployment metadata. Validation: Optional: &#123;&#125; <br />

workersImage
string

WorkersImage specifies the container image to use for DynamoGraphDeployment worker components.<br />This image is used for both temporary DGDs created during online profiling and the final DGD.<br />If omitted, the image from the base config file (e.g., disagg.yaml) is used.<br />Example: “nvcr.io/nvidia/ai-dynamo/vllm-runtime:1.2.1” Validation: Optional: &#123;&#125; <br />

DeploymentStatus tracks the state of an auto-created DynamoGraphDeployment. This status is populated when autoApply is enabled and a DGD is created.

Kind: type Appears in: DynamoGraphDeploymentRequestStatus

name
string

Name is the name of the created DynamoGraphDeployment.

namespace
string

Namespace is the namespace of the created DynamoGraphDeployment.

state
DGDStateDefaults to initializing

State is the current state of the DynamoGraphDeployment.<br />This value is mirrored from the DGD’s status.state field. See DGDState. Validation: Enum: [initializing pending successful failed] <br />

created
boolean

Created indicates whether the DGD has been successfully created.<br />Used to prevent recreation if the DGD is manually deleted by users.

DynamoCheckpoint is the Schema for the dynamocheckpoints API It represents a container checkpoint that can be used to restore pods to a warm state

Kind: resource

apiVersion
string

nvidia.com/v1alpha1

kind
string

DynamoCheckpoint

metadata
ObjectMeta

Refer to Kubernetes API documentation for fields of metadata. See ObjectMeta.

spec
DynamoCheckpointSpec
status
DynamoCheckpointStatus

Deprecated: legacy identity metadata. Keep it only where v1alpha1 still requires spec.identity; omit DGD-managed identity and use checkpointRef for explicit restores.

Kind: type Appears in: DynamoCheckpointSpec, ServiceCheckpointConfig

model
stringRequired

Model is the model identifier (e.g., “meta-llama/Llama-3-70B”)<br />Deprecated: legacy spec.identity only. Validation: Required: &#123;&#125; <br />

backendFramework
stringRequired

BackendFramework is the runtime framework (vllm, sglang, trtllm)<br />Deprecated: legacy spec.identity only. Validation: Enum: [vllm sglang trtllm] <br />Required: &#123;&#125; <br />

dynamoVersion
string

DynamoVersion is the Dynamo platform version (optional).<br />Deprecated: legacy spec.identity only. Validation: Optional: &#123;&#125; <br />

tensorParallelSize
integerDefaults to 1

TensorParallelSize is the tensor parallel configuration.<br />Deprecated: checkpoint launch uses the pod template instead. Validation: Minimum: 1 <br />Optional: &#123;&#125; <br />

pipelineParallelSize
integerDefaults to 1

PipelineParallelSize is the pipeline parallel configuration.<br />Deprecated: checkpoint launch uses the pod template instead. Validation: Minimum: 1 <br />Optional: &#123;&#125; <br />

dtype
string

Dtype is the data type (fp16, bf16, fp8, etc.).<br />Deprecated: legacy spec.identity only. Validation: Optional: &#123;&#125; <br />

maxModelLen
integer

MaxModelLen is the maximum sequence length.<br />Deprecated: legacy spec.identity only. Validation: Minimum: 1 <br />Optional: &#123;&#125; <br />

extraParameters
object (keys:string, values:string)

ExtraParameters are additional parameters that affect the checkpoint hash.<br />Use for any framework-specific or custom parameters not covered above.<br />Deprecated: legacy spec.identity only. Validation: Optional: &#123;&#125; <br />

DynamoCheckpointJobConfig defines the configuration for the checkpoint creation Job

Kind: type Appears in: DynamoCheckpointSpec

podTemplateSpec
PodTemplateSpecRequired

PodTemplateSpec allows customizing the checkpoint Job pod<br />This should include the container that runs the workload to be checkpointed<br />and any workload/runtime env, service account, GMS, or DRA wiring needed<br />by that container. Auto-created checkpoints from DynamoGraphDeployment<br />render Dynamo defaults before creating the DynamoCheckpoint. See PodTemplateSpec. Validation: Required: &#123;&#125; <br />

targetContainerName
stringDefaults to main

TargetContainerName is the container in PodTemplateSpec to snapshot. Validation: MaxLength: 63 <br />MinLength: 1 <br />Pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$ <br />Optional: &#123;&#125; <br />

sharedMemory
SharedMemorySpec

SharedMemory controls the tmpfs mounted at /dev/shm for the checkpoint Job pod.<br />When omitted, checkpoint Jobs use the same default 8Gi tmpfs as Dynamo components. See SharedMemorySpec. Validation: Optional: &#123;&#125; <br />

activeDeadlineSeconds
integerDefaults to 3600

ActiveDeadlineSeconds specifies the maximum time the Job can run Validation: Minimum: 1 <br />Optional: &#123;&#125; <br />

backoffLimit
integer

Deprecated: BackoffLimit is ignored. Checkpoint Jobs never retry. Validation: Minimum: 0 <br />Optional: &#123;&#125; <br />

ttlSecondsAfterFinished
integer

Deprecated: TTLSecondsAfterFinished is ignored. The operator deletes checkpoint<br />Jobs after recording their terminal outcome. Validation: Minimum: 0 <br />Optional: &#123;&#125; <br />

DynamoCheckpointPhase represents the current phase of the checkpoint lifecycle

Kind: enum Underlying type: string Validation: Enum: [Pending Creating Ready Failed] Appears in: DynamoCheckpointStatus

Allowed values

  • Pending DynamoCheckpointPhasePending indicates the checkpoint CR has been created but the Job has not started<br />
  • Creating DynamoCheckpointPhaseCreating indicates the checkpoint Job is running<br />
  • Ready DynamoCheckpointPhaseReady indicates the checkpoint artifact is available<br />
  • Failed DynamoCheckpointPhaseFailed indicates the checkpoint creation failed<br />

DynamoCheckpointSpec defines the desired state of DynamoCheckpoint

Kind: type Appears in: DynamoCheckpoint

identity
DynamoCheckpointIdentityRequired

Deprecated: required by v1alpha1 for standalone checkpoints. Auto<br />checkpoints synthesize it; checkpointRef restores use the referenced CR. See DynamoCheckpointIdentity. Validation: Required: &#123;&#125; <br />

gpuMemoryService
GPUMemoryServiceSpec

GPUMemoryService records checkpoint-time GPU Memory Service metadata for<br />a prepared checkpoint Job pod. The DynamoCheckpoint controller does not<br />inject GMS/DRA resources; auto-created checkpoints from<br />DynamoGraphDeployment prepare the pod template before creating this object.<br />Manual GMS-enabled checkpoints must provide the prepared pod template; the<br />controller fails the checkpoint if the required GMS/DRA wiring is missing.<br />This field is intentionally outside spec.identity, so it does not affect<br />the checkpoint identity hash or deduplication. See GPUMemoryServiceSpec. Validation: Optional: &#123;&#125; <br />

job
DynamoCheckpointJobConfigRequired

Job defines the configuration for the checkpoint creation Job See DynamoCheckpointJobConfig. Validation: Required: &#123;&#125; <br />

DynamoCheckpointStatus defines the observed state of DynamoCheckpoint

Kind: type Appears in: DynamoCheckpoint

phase
DynamoCheckpointPhase

Phase represents the current phase of the checkpoint lifecycle See DynamoCheckpointPhase. Validation: Enum: [Pending Creating Ready Failed] <br />Optional: &#123;&#125; <br />

checkpointID
string

CheckpointID is the artifact ID used by the snapshot protocol. Validation: Optional: &#123;&#125; <br />

identityHash
string

IdentityHash is the computed hash of the checkpoint identity.<br />Deprecated: use CheckpointID. This field is retained for compatibility<br />with older status consumers. Validation: Optional: &#123;&#125; <br />

location
string

Deprecated: Location is ignored and no longer populated. It is retained<br />only so older objects continue to validate. Validation: Optional: &#123;&#125; <br />

storageType
DynamoCheckpointStorageType

Deprecated: StorageType is ignored and no longer populated. It is retained<br />only so older objects continue to validate. See DynamoCheckpointStorageType. Validation: Enum: [pvc s3 oci] <br />Optional: &#123;&#125; <br />

jobName
string

JobName is the name of the checkpoint creation Job Validation: Optional: &#123;&#125; <br />

podSnapshotName
string

PodSnapshotName is the name of the PodSnapshot this checkpoint created to drive capture. It is<br />the authoritative pointer to the snapshot (which is otherwise located by label, not by<br />reconstructing its name) and lets the controller distinguish a never-created snapshot (empty)<br />from one that was created and later went missing (set, but no longer found). Validation: Optional: &#123;&#125; <br />

createdAt
Time

CreatedAt is the timestamp when the checkpoint became ready See Time. Validation: Optional: &#123;&#125; <br />

message
string

Message provides additional information about the current state Validation: Optional: &#123;&#125; <br />

conditions
Condition array

DEPRECATED: Conditions are deprecated. Use status.phase instead. See Condition. Validation: Optional: &#123;&#125; <br />

Deprecated: StorageType is retained for compatibility with older DynamoCheckpoint status consumers. The current checkpoint flow publishes PVC-backed artifacts discovered from the snapshot-agent DaemonSet.

Kind: type Underlying type: string Validation: Enum: [pvc s3 oci] Appears in: DynamoCheckpointStatus

DynamoComponentDeployment is the Schema for the dynamocomponentdeployments API

Kind: resource

apiVersion
string

nvidia.com/v1alpha1

kind
string

DynamoComponentDeployment

metadata
ObjectMeta

Refer to Kubernetes API documentation for fields of metadata. See ObjectMeta.

spec
DynamoComponentDeploymentSpec

Spec defines the desired state for this Dynamo component deployment. See DynamoComponentDeploymentSpec.

Kind: type Appears in: DynamoComponentDeploymentSpec, DynamoGraphDeploymentSpec

annotations
object (keys:string, values:string)

Annotations to add to generated Kubernetes resources for this component<br />(such as Pod, Service, and Ingress when applicable).

labels
object (keys:string, values:string)

Labels to add to generated Kubernetes resources for this component.

serviceName
string

The name of the component

componentType
string

ComponentType indicates the role of this component (for example, “main”).

subComponentType
string

SubComponentType indicates the sub-role of this component (for example, “prefill”).

globalDynamoNamespace
boolean

GlobalDynamoNamespace indicates that the Component will be placed in the global Dynamo namespace

resources
Resources

Resources requested and limits for this component, including CPU, memory,<br />GPUs/devices, and any runtime-specific resources. See Resources.

autoscaling
Autoscaling

Deprecated: This field is deprecated and ignored. Use DynamoGraphDeploymentScalingAdapter<br />with HPA, KEDA, or Planner for autoscaling instead. See docs/kubernetes/autoscaling.md<br />for migration guidance. This field will be removed in a future API version. See Autoscaling.

envs
EnvVar array

Envs defines additional environment variables to inject into the component containers. See EnvVar.

envFromSecret
string

EnvFromSecret references a Secret whose key/value pairs will be exposed as<br />environment variables in the component containers.

volumeMounts
VolumeMount array

VolumeMounts references PVCs defined at the top level for volumes to be mounted by the component. See VolumeMount.

ingress
IngressSpec

Ingress config to expose the component outside the cluster (or through a service mesh). See IngressSpec.

modelRef
ModelReference

ModelRef references a model that this component serves<br />When specified, a headless service will be created for endpoint discovery See ModelReference. Validation: Optional: &#123;&#125; <br />

sharedMemory
SharedMemorySpec

SharedMemory controls the tmpfs mounted at /dev/shm (enable/disable and size). See SharedMemorySpec.

extraPodMetadata
ExtraPodMetadata

ExtraPodMetadata adds labels/annotations to the created Pods. See ExtraPodMetadata. Validation: Optional: &#123;&#125; <br />

extraPodSpec
ExtraPodSpec

ExtraPodSpec allows to override the main pod spec configuration.<br />It is a k8s standard PodSpec. It also contains a MainContainer (standard k8s Container) field<br />that allows overriding the main container configuration. See ExtraPodSpec. Validation: Optional: &#123;&#125; <br />

livenessProbe
Probe

LivenessProbe to detect and restart unhealthy containers. See Probe.

readinessProbe
Probe

ReadinessProbe to signal when the container is ready to receive traffic. See Probe.

replicas
integer

Replicas is the desired number of Pods for this component.<br />When scalingAdapter is enabled, this field is managed by the<br />DynamoGraphDeploymentScalingAdapter and should not be modified directly. Validation: Minimum: 0 <br />

minAvailable
integer

MinAvailable maps to Grove PodClique minAvailable for single-node and<br />Grove PodCliqueScalingGroup minAvailable for multi-node components.<br />This field determines 1) the minimum number of replicas guaranteed to be<br />gang-scheduled, and 2) when violating minAvailable replicas triggers gang<br />termination.<br />For Grove-backed DynamoGraphDeployment components, minAvailable defaults to<br />1 when omitted and is immutable after creation. Positive replica counts must<br />be greater than or equal to minAvailable. Replicas may be scaled to 0 as a<br />special scale-to-zero state; minAvailable remains configured but is not<br />enforced again until replicas is scaled back to a positive value.<br />For non-Grove deployments, setting this field will result in a validation error. Validation: Minimum: 1 <br />Optional: &#123;&#125; <br />

multinode
MultinodeSpec

Multinode is the configuration for multinode components. See MultinodeSpec.

scalingAdapter
ScalingAdapter

ScalingAdapter configures whether this service uses the DynamoGraphDeploymentScalingAdapter.<br />When enabled, replicas are managed via DGDSA and external autoscalers can scale<br />the service using the Scale subresource. When disabled, replicas can be modified directly. See ScalingAdapter. Validation: Optional: &#123;&#125; <br />

eppConfig
EPPConfig

EPPConfig defines EPP-specific configuration options for Endpoint Picker Plugin components.<br />Only applicable when ComponentType is “epp”. See EPPConfig. Validation: Optional: &#123;&#125; <br />

frontendSidecar
FrontendSidecarSpec

FrontendSidecar configures an auto-generated frontend sidecar container.<br />When specified, the operator injects a fully configured frontend container<br />with all standard Dynamo environment variables, health probes, and ports.<br />This eliminates the need to manually specify these in extraPodSpec.containers. (GAIE) See FrontendSidecarSpec. Validation: Optional: &#123;&#125; <br />

checkpoint
ServiceCheckpointConfig

Checkpoint configures container checkpointing for this service.<br />When enabled, pods can be restored from a checkpoint files for faster cold start. See ServiceCheckpointConfig. Validation: Optional: &#123;&#125; <br />

topologyConstraint
TopologyConstraint

TopologyConstraint for this service. packDomain is required.<br />When both this and spec.topologyConstraint.packDomain are set, packDomain<br />must be narrower than or equal to the spec-level packDomain. See TopologyConstraint. Validation: Optional: &#123;&#125; <br />

gpuMemoryService
GPUMemoryServiceSpec

GPUMemoryService configures the GPU Memory Service (GMS) sidecar.<br />When enabled, a GMS sidecar is injected and GPU access is managed via DRA. See GPUMemoryServiceSpec. Validation: Optional: &#123;&#125; <br />

failover
FailoverSpec

Failover configures GMS (GPU Memory Service) failover for this service.<br />For intraPod mode: the main container is cloned into two engine containers (active + standby).<br />For interPod mode: the operator creates a dedicated GMS weight server pod and<br />multiple engine pods per rank that share GPUs via DRA resource claims. See FailoverSpec. Validation: Optional: &#123;&#125; <br />

DynamoComponentDeploymentSpec defines the desired state of DynamoComponentDeployment

Kind: type Appears in: DynamoComponentDeployment

backendFramework
string

BackendFramework specifies the backend framework (e.g., “sglang”, “vllm”, “trtllm”) Validation: Enum: [sglang vllm trtllm] <br />

annotations
object (keys:string, values:string)

Annotations to add to generated Kubernetes resources for this component<br />(such as Pod, Service, and Ingress when applicable).

labels
object (keys:string, values:string)

Labels to add to generated Kubernetes resources for this component.

serviceName
string

The name of the component

componentType
string

ComponentType indicates the role of this component (for example, “main”).

subComponentType
string

SubComponentType indicates the sub-role of this component (for example, “prefill”).

globalDynamoNamespace
boolean

GlobalDynamoNamespace indicates that the Component will be placed in the global Dynamo namespace

resources
Resources

Resources requested and limits for this component, including CPU, memory,<br />GPUs/devices, and any runtime-specific resources. See Resources.

autoscaling
Autoscaling

Deprecated: This field is deprecated and ignored. Use DynamoGraphDeploymentScalingAdapter<br />with HPA, KEDA, or Planner for autoscaling instead. See docs/kubernetes/autoscaling.md<br />for migration guidance. This field will be removed in a future API version. See Autoscaling.

envs
EnvVar array

Envs defines additional environment variables to inject into the component containers. See EnvVar.

envFromSecret
string

EnvFromSecret references a Secret whose key/value pairs will be exposed as<br />environment variables in the component containers.

volumeMounts
VolumeMount array

VolumeMounts references PVCs defined at the top level for volumes to be mounted by the component. See VolumeMount.

ingress
IngressSpec

Ingress config to expose the component outside the cluster (or through a service mesh). See IngressSpec.

modelRef
ModelReference

ModelRef references a model that this component serves<br />When specified, a headless service will be created for endpoint discovery See ModelReference. Validation: Optional: &#123;&#125; <br />

sharedMemory
SharedMemorySpec

SharedMemory controls the tmpfs mounted at /dev/shm (enable/disable and size). See SharedMemorySpec.

extraPodMetadata
ExtraPodMetadata

ExtraPodMetadata adds labels/annotations to the created Pods. See ExtraPodMetadata. Validation: Optional: &#123;&#125; <br />

extraPodSpec
ExtraPodSpec

ExtraPodSpec allows to override the main pod spec configuration.<br />It is a k8s standard PodSpec. It also contains a MainContainer (standard k8s Container) field<br />that allows overriding the main container configuration. See ExtraPodSpec. Validation: Optional: &#123;&#125; <br />

livenessProbe
Probe

LivenessProbe to detect and restart unhealthy containers. See Probe.

readinessProbe
Probe

ReadinessProbe to signal when the container is ready to receive traffic. See Probe.

replicas
integer

Replicas is the desired number of Pods for this component.<br />When scalingAdapter is enabled, this field is managed by the<br />DynamoGraphDeploymentScalingAdapter and should not be modified directly. Validation: Minimum: 0 <br />

minAvailable
integer

MinAvailable maps to Grove PodClique minAvailable for single-node and<br />Grove PodCliqueScalingGroup minAvailable for multi-node components.<br />This field determines 1) the minimum number of replicas guaranteed to be<br />gang-scheduled, and 2) when violating minAvailable replicas triggers gang<br />termination.<br />For Grove-backed DynamoGraphDeployment components, minAvailable defaults to<br />1 when omitted and is immutable after creation. Positive replica counts must<br />be greater than or equal to minAvailable. Replicas may be scaled to 0 as a<br />special scale-to-zero state; minAvailable remains configured but is not<br />enforced again until replicas is scaled back to a positive value.<br />For non-Grove deployments, setting this field will result in a validation error. Validation: Minimum: 1 <br />Optional: &#123;&#125; <br />

multinode
MultinodeSpec

Multinode is the configuration for multinode components. See MultinodeSpec.

scalingAdapter
ScalingAdapter

ScalingAdapter configures whether this service uses the DynamoGraphDeploymentScalingAdapter.<br />When enabled, replicas are managed via DGDSA and external autoscalers can scale<br />the service using the Scale subresource. When disabled, replicas can be modified directly. See ScalingAdapter. Validation: Optional: &#123;&#125; <br />

eppConfig
EPPConfig

EPPConfig defines EPP-specific configuration options for Endpoint Picker Plugin components.<br />Only applicable when ComponentType is “epp”. See EPPConfig. Validation: Optional: &#123;&#125; <br />

frontendSidecar
FrontendSidecarSpec

FrontendSidecar configures an auto-generated frontend sidecar container.<br />When specified, the operator injects a fully configured frontend container<br />with all standard Dynamo environment variables, health probes, and ports.<br />This eliminates the need to manually specify these in extraPodSpec.containers. (GAIE) See FrontendSidecarSpec. Validation: Optional: &#123;&#125; <br />

checkpoint
ServiceCheckpointConfig

Checkpoint configures container checkpointing for this service.<br />When enabled, pods can be restored from a checkpoint files for faster cold start. See ServiceCheckpointConfig. Validation: Optional: &#123;&#125; <br />

topologyConstraint
TopologyConstraint

TopologyConstraint for this service. packDomain is required.<br />When both this and spec.topologyConstraint.packDomain are set, packDomain<br />must be narrower than or equal to the spec-level packDomain. See TopologyConstraint. Validation: Optional: &#123;&#125; <br />

gpuMemoryService
GPUMemoryServiceSpec

GPUMemoryService configures the GPU Memory Service (GMS) sidecar.<br />When enabled, a GMS sidecar is injected and GPU access is managed via DRA. See GPUMemoryServiceSpec. Validation: Optional: &#123;&#125; <br />

failover
FailoverSpec

Failover configures GMS (GPU Memory Service) failover for this service.<br />For intraPod mode: the main container is cloned into two engine containers (active + standby).<br />For interPod mode: the operator creates a dedicated GMS weight server pod and<br />multiple engine pods per rank that share GPUs via DRA resource claims. See FailoverSpec. Validation: Optional: &#123;&#125; <br />

DynamoGraphDeployment is the Schema for the dynamographdeployments API.

Kind: resource

apiVersion
string

nvidia.com/v1alpha1

kind
string

DynamoGraphDeployment

metadata
ObjectMeta

Refer to Kubernetes API documentation for fields of metadata. See ObjectMeta.

spec
DynamoGraphDeploymentSpec

Spec defines the desired state for this graph deployment. See DynamoGraphDeploymentSpec.

status
DynamoGraphDeploymentStatus

Status reflects the current observed state of this graph deployment. See DynamoGraphDeploymentStatus.

DynamoGraphDeploymentExperimentalSpec groups graph-level opt-in preview features. Component-level experimental features are represented separately on component specs.

Kind: type Appears in: DynamoGraphDeploymentSpec

kvTransferPolicy
KvTransferPolicy

KvTransferPolicy configures topology-aware routing for KV-cache<br />transfers between prefill and decode workers. See KvTransferPolicy. Validation: Optional: &#123;&#125; <br />

DynamoGraphDeploymentRequest is the Schema for the dynamographdeploymentrequests API. It serves as the primary interface for users to request model deployments with specific performance and resource constraints, enabling SLA-driven deployments.

Lifecycle:

  1. Initializing → Pending: Validates spec and prepares for profiling
  2. Pending → Profiling: Creates and runs profiling job (online or AIC)
  3. Profiling → Ready/Deploying: Generates DGD spec after profiling completes
  4. Deploying → Ready: When autoApply=true, monitors DGD until Ready
  5. Ready: Terminal state when DGD is operational or spec is available
  6. DeploymentDeleted: Terminal state when auto-created DGD is manually deleted

The spec becomes immutable once profiling starts. Users must delete and recreate the DGDR to modify configuration after this point.

DEPRECATION NOTICE: v1alpha1 DynamoGraphDeploymentRequest is deprecated. Please migrate to nvidia.com/v1beta1 DynamoGraphDeploymentRequest. v1alpha1 will be removed in a future release.

Kind: resource

apiVersion
string

nvidia.com/v1alpha1

kind
string

DynamoGraphDeploymentRequest

metadata
ObjectMeta

Refer to Kubernetes API documentation for fields of metadata. See ObjectMeta.

spec
DynamoGraphDeploymentRequestSpec

Spec defines the desired state for this deployment request. See DynamoGraphDeploymentRequestSpec.

status
DynamoGraphDeploymentRequestStatus

Status reflects the current observed state of this deployment request. See DynamoGraphDeploymentRequestStatus.

DynamoGraphDeploymentRequestSpec defines the desired state of a DynamoGraphDeploymentRequest. This CRD serves as the primary interface for users to request model deployments with specific performance constraints and resource requirements, enabling SLA-driven deployments.

Kind: type Appears in: DynamoGraphDeploymentRequest

model
stringRequired

Model specifies the model to deploy (e.g., “Qwen/Qwen3-0.6B”, “meta-llama/Llama-3-70b”).<br />This is a high-level identifier for easy reference in kubectl output and logs.<br />The controller automatically sets this value in profilingConfig.config.deployment.model. Validation: Required: &#123;&#125; <br />

backend
stringRequired

Backend specifies the inference backend for profiling.<br />The controller automatically sets this value in profilingConfig.config.engine.backend.<br />Profiling runs on real GPUs or via AIC simulation to collect performance data. Validation: Enum: [auto vllm sglang trtllm] <br />Required: &#123;&#125; <br />

useMocker
booleanDefaults to false

UseMocker indicates whether to deploy a mocker DynamoGraphDeployment instead of<br />a real backend deployment. When true, the deployment uses simulated engines that<br />don’t require GPUs, using the profiling data to simulate realistic timing behavior.<br />Mocker is available in all backend images and useful for large-scale experiments.<br />Profiling still runs against the real backend (specified above) to collect performance data.

profilingConfig
ProfilingConfigSpecRequired

ProfilingConfig provides the complete configuration for the profiling job.<br />Note: GPU discovery is automatically attempted to detect GPU resources from Kubernetes<br />cluster nodes. If the operator has node read permissions (cluster-wide or explicitly granted),<br />discovered GPU configuration is used as defaults when hardware configuration is not manually<br />specified (minNumGpusPerEngine, maxNumGpusPerEngine, numGpusPerNode). User-specified values<br />always take precedence over auto-discovered values. If GPU discovery fails (e.g.,<br />namespace-restricted operator without node permissions), manual hardware config is required.<br />This configuration is passed directly to the profiler.<br />The structure matches the profile_sla config format exactly (see ProfilingConfigSpec for schema).<br />Note: deployment.model and engine.backend are automatically set from the high-level<br />modelName and backend fields and should not be specified in this config. See ProfilingConfigSpec. Validation: Required: &#123;&#125; <br />

enableGpuDiscovery
booleanDefaults to true

EnableGPUDiscovery controls whether the operator attempts to discover GPU hardware from cluster nodes.<br />DEPRECATED: This field is deprecated and will be removed in v1beta1. GPU discovery is now always<br />attempted automatically. Setting this field has no effect - the operator will always try to discover<br />GPU hardware when node read permissions are available. If discovery is unavailable (e.g., namespace-scoped<br />operator without permissions), manual hardware configuration is required regardless of this setting. Validation: Optional: &#123;&#125; <br />

autoApply
booleanDefaults to false

AutoApply indicates whether to automatically create a DynamoGraphDeployment<br />after profiling completes. If false, only the spec is generated and stored in status.<br />Users can then manually create a DGD using the generated spec.

deploymentOverrides
DeploymentOverridesSpec

DeploymentOverrides allows customizing metadata for the auto-created DGD.<br />Only applicable when AutoApply is true. See DeploymentOverridesSpec. Validation: Optional: &#123;&#125; <br />

DynamoGraphDeploymentRequestStatus represents the observed state of a DynamoGraphDeploymentRequest. The controller updates this status as the DGDR progresses through its lifecycle.

Kind: type Appears in: DynamoGraphDeploymentRequest

state
DGDRStateDefaults to Initializing

State is a high-level textual status of the deployment request lifecycle. See DGDRState. Validation: Enum: [Initializing Pending Profiling Deploying Ready DeploymentDeleted Failed] <br />

backend
string

Backend is extracted from profilingConfig.config.engine.backend for display purposes.<br />This field is populated by the controller and shown in kubectl output. Validation: Optional: &#123;&#125; <br />

observedGeneration
integer

ObservedGeneration reflects the generation of the most recently observed spec.<br />Used to detect spec changes and enforce immutability after profiling starts.

conditions
Condition array

Conditions contains the latest observed conditions of the deployment request.<br />Standard condition types include: Validation, Profiling, SpecGenerated, DeploymentReady.<br />Conditions are merged by type on patch updates. See Condition.

profilingResults
string

ProfilingResults contains a reference to the ConfigMap holding profiling data.<br />Format: “configmap/&lt;name&gt;” Validation: Optional: &#123;&#125; <br />

generatedDeployment
RawExtension

GeneratedDeployment contains the full generated DynamoGraphDeployment specification<br />including metadata, based on profiling results. Users can extract this to create<br />a DGD manually, or it’s used automatically when autoApply is true.<br />Stored as RawExtension to preserve all fields including metadata.<br />For mocker backends, this contains the mocker DGD spec. See RawExtension. Validation: EmbeddedResource: &#123;&#125; <br />Optional: &#123;&#125; <br />

deployment
DeploymentStatus

Deployment tracks the auto-created DGD when AutoApply is true.<br />Contains name, namespace, state, and creation status of the managed DGD. See DeploymentStatus. Validation: Optional: &#123;&#125; <br />

DynamoGraphDeploymentScalingAdapter provides a scaling interface for individual services within a DynamoGraphDeployment. It implements the Kubernetes scale subresource, enabling integration with HPA, KEDA, and custom autoscalers.

The adapter acts as an intermediary between autoscalers and the DGD, ensuring that only the adapter controller modifies the DGD’s service replicas. This prevents conflicts when multiple autoscaling mechanisms are in play.

Kind: resource

apiVersion
string

nvidia.com/v1alpha1

kind
string

DynamoGraphDeploymentScalingAdapter

metadata
ObjectMeta

Refer to Kubernetes API documentation for fields of metadata. See ObjectMeta.

spec
DynamoGraphDeploymentScalingAdapterSpec
status
DynamoGraphDeploymentScalingAdapterStatus

DynamoGraphDeploymentScalingAdapterSpec defines the desired state of DynamoGraphDeploymentScalingAdapter

Kind: type Appears in: DynamoGraphDeploymentScalingAdapter

replicas
integerRequired

Replicas is the desired number of replicas for the target service.<br />This field is modified by external autoscalers (HPA/KEDA/Planner) or manually by users. Validation: Minimum: 0 <br />Required: &#123;&#125; <br />

dgdRef
DynamoGraphDeploymentServiceRefRequired

DGDRef references the DynamoGraphDeployment and the specific service to scale. See DynamoGraphDeploymentServiceRef. Validation: Required: &#123;&#125; <br />

DynamoGraphDeploymentScalingAdapterStatus defines the observed state of DynamoGraphDeploymentScalingAdapter

Kind: type Appears in: DynamoGraphDeploymentScalingAdapter

replicas
integer

Replicas is the current number of replicas for the target service.<br />This is synced from the DGD’s service replicas and is required for the scale subresource. Validation: Optional: &#123;&#125; <br />

selector
string

Selector is a label selector string for the pods managed by this adapter.<br />Required for HPA compatibility via the scale subresource. Validation: Optional: &#123;&#125; <br />

lastScaleTime
Time

LastScaleTime is the last time the adapter scaled the target service. See Time. Validation: Optional: &#123;&#125; <br />

DynamoGraphDeploymentServiceRef identifies a specific service within a DynamoGraphDeployment

Kind: type Appears in: DynamoGraphDeploymentScalingAdapterSpec

name
stringRequired

Name of the DynamoGraphDeployment Validation: MinLength: 1 <br />Required: &#123;&#125; <br />

serviceName
stringRequired

ServiceName is the key name of the service within the DGD’s spec.services map to scale Validation: MinLength: 1 <br />Required: &#123;&#125; <br />

DynamoGraphDeploymentSpec defines the desired state of DynamoGraphDeployment.

Kind: type Appears in: DynamoGraphDeployment

annotations
object (keys:string, values:string)

Annotations to propagate to all child resources (PCS, DCD, Deployments, and pod templates).<br />Service-level annotations take precedence over these values. Validation: Optional: &#123;&#125; <br />

labels
object (keys:string, values:string)

Labels to propagate to all child resources (PCS, DCD, Deployments, and pod templates).<br />Service-level labels take precedence over these values. Validation: Optional: &#123;&#125; <br />

priorityClassName
string

PriorityClassName is the name of the PriorityClass to use for Grove PodCliqueSets.<br />Requires the Grove pathway. Validation: Optional: &#123;&#125; <br />

pvcs
PVC array

PVCs defines a list of persistent volume claims that can be referenced by components.<br />Each PVC must have a unique name that can be referenced in component specifications. See PVC. Validation: MaxItems: 100 <br />Optional: &#123;&#125; <br />

services
object (keys:string, values:DynamoComponentDeploymentSharedSpec)

Services are the services to deploy as part of this deployment. See DynamoComponentDeploymentSharedSpec. Validation: MaxProperties: 25 <br />Optional: &#123;&#125; <br />

envs
EnvVar array

Envs are environment variables applied to all services in the deployment unless<br />overridden by service-specific configuration. See EnvVar. Validation: Optional: &#123;&#125; <br />

backendFramework
string

BackendFramework specifies the backend framework (e.g., “sglang”, “vllm”, “trtllm”). Validation: Enum: [sglang vllm trtllm] <br />

restart
Restart

Restart specifies the restart policy for the graph deployment. See Restart. Validation: Optional: &#123;&#125; <br />

topologyConstraint
SpecTopologyConstraint

TopologyConstraint is the deployment-level topology constraint.<br />When set, topologyProfile is required and names the ClusterTopology CR to use.<br />packDomain is optional here — it can be omitted when only services carry constraints.<br />Services without their own topologyConstraint inherit from this value. See SpecTopologyConstraint. Validation: Optional: &#123;&#125; <br />

experimental
DynamoGraphDeploymentExperimentalSpec

Experimental groups graph-level preview features whose API shape and<br />behavior may change in breaking ways between releases. See DynamoGraphDeploymentExperimentalSpec. Validation: Optional: &#123;&#125; <br />

DynamoGraphDeploymentStatus defines the observed state of DynamoGraphDeployment.

Kind: type Appears in: DynamoGraphDeployment

observedGeneration
integer

ObservedGeneration is the most recent generation observed by the controller. Validation: Optional: &#123;&#125; <br />

state
DGDStateDefaults to initializing

State is a high-level textual status of the graph deployment lifecycle. See DGDState. Validation: Enum: [initializing pending successful failed] <br />

conditions
Condition array

Conditions contains the latest observed conditions of the graph deployment.<br />The slice is merged by type on patch updates. See Condition.

services
object (keys:string, values:ServiceReplicaStatus)

Services contains per-service replica status information.<br />The map key is the service name from spec.services. See ServiceReplicaStatus. Validation: Optional: &#123;&#125; <br />

restart
RestartStatus

Restart contains the status of the restart of the graph deployment. See RestartStatus. Validation: Optional: &#123;&#125; <br />

checkpoints
object (keys:string, values:ServiceCheckpointStatus)

Checkpoints contains per-service checkpoint status information.<br />The map key is the service name from spec.services. See ServiceCheckpointStatus. Validation: Optional: &#123;&#125; <br />

rollingUpdate
RollingUpdateStatus

RollingUpdate tracks the progress of operator manged rolling updates.<br />Currently only supported for singl-node, non-Grove deployments (DCD/Deployment). See RollingUpdateStatus. Validation: Optional: &#123;&#125; <br />

placement
PlacementStatus

Placement groups DGD-level scheduler placement signals (score, reporting<br />state, and any future placement fields). See PlacementStatus. Validation: Optional: &#123;&#125; <br />

DynamoModel is the Schema for the dynamo models API

Kind: resource

apiVersion
string

nvidia.com/v1alpha1

kind
string

DynamoModel

metadata
ObjectMeta

Refer to Kubernetes API documentation for fields of metadata. See ObjectMeta.

spec
DynamoModelSpec
status
DynamoModelStatus

DynamoModelSpec defines the desired state of DynamoModel

Kind: type Appears in: DynamoModel

modelName
stringRequired

ModelName is the full model identifier (e.g., “meta-llama/Llama-3.3-70B-Instruct-lora”) Validation: Required: &#123;&#125; <br />

baseModelName
stringRequired

BaseModelName is the base model identifier that matches the service label<br />This is used to discover endpoints via headless services Validation: Required: &#123;&#125; <br />

modelType
stringDefaults to base

ModelType specifies the type of model (e.g., “base”, “lora”, “adapter”) Validation: Enum: [base lora adapter] <br />Optional: &#123;&#125; <br />

source
ModelSource

Source specifies the model source location (only applicable for lora model type) See ModelSource. Validation: Optional: &#123;&#125; <br />

DynamoModelStatus defines the observed state of DynamoModel

Kind: type Appears in: DynamoModel

endpoints
EndpointInfo array

Endpoints is the current list of all endpoints for this model See EndpointInfo. Validation: Optional: &#123;&#125; <br />

readyEndpoints
integer

ReadyEndpoints is the count of endpoints that are ready

loraFallbackCoveredEndpoints
integer

LoRAFallbackCoveredEndpoints is the count of legacy prefill endpoints<br />covered by a capable prefill during a rolling upgrade. These endpoints are<br />excluded from ReadyEndpoints because they cannot serve the adapter directly. Validation: Optional: &#123;&#125; <br />

totalEndpoints
integer

TotalEndpoints is the total count of endpoints

conditions
Condition array

Conditions represents the latest available observations of the model’s state See Condition. Validation: Optional: &#123;&#125; <br />

EPPConfig contains configuration for EPP (Endpoint Picker Plugin) components. EPP is responsible for intelligent endpoint selection and KV-aware routing.

Kind: type Appears in: DynamoComponentDeploymentSharedSpec, DynamoComponentDeploymentSpec

configMapRef
ConfigMapKeySelector

ConfigMapRef references a user-provided ConfigMap containing EPP configuration.<br />The ConfigMap should contain EndpointPickerConfig YAML.<br />Mutually exclusive with Config. See ConfigMapKeySelector. Validation: Optional: &#123;&#125; <br />

config
EndpointPickerConfig

Config allows specifying EPP EndpointPickerConfig directly as a structured object.<br />The operator will marshal this to YAML and create a ConfigMap automatically.<br />Mutually exclusive with ConfigMapRef.<br />One of ConfigMapRef or Config must be specified (no default configuration).<br />Uses the upstream type from github.com/kubernetes-sigs/gateway-api-inference-extension Validation: Type: object <br />Optional: &#123;&#125; <br />

EndpointInfo represents a single endpoint (pod) serving the model

Kind: type Appears in: DynamoModelStatus

address
string

Address is the full address of the endpoint (e.g., “http://10.0.1.5:9090”)

podName
string

PodName is the name of the pod serving this endpoint Validation: Optional: &#123;&#125; <br />

ready
boolean

Ready indicates whether this endpoint is ready to serve traffic.<br />For LoRA models: true only if this endpoint’s lifecycle request succeeded.<br />For base models: always false (no probing performed).

loraFallbackCovered
boolean

LoRAFallbackCovered indicates a legacy prefill endpoint that cannot manage<br />LoRAs itself is covered by a capable prefill in the same topology during a<br />rolling upgrade. It does not make this endpoint ready to serve the adapter. Validation: Optional: &#123;&#125; <br />

Kind: type Appears in: DynamoComponentDeploymentSharedSpec, DynamoComponentDeploymentSpec

annotations
object (keys:string, values:string)
labels
object (keys:string, values:string)

Kind: type Appears in: DynamoComponentDeploymentSharedSpec, DynamoComponentDeploymentSpec

mainContainer
Container

FailoverSpec configures active-passive failover for a worker component. For intraPod mode: requires gpuMemoryService.enabled; the main container is cloned into engine containers (active + standby) within the same pod. For interPod mode: the operator creates a dedicated GMS weight server pod and multiple engine pods per rank that share GPUs via DRA resource claims.

Kind: type Appears in: DynamoComponentDeploymentSharedSpec, DynamoComponentDeploymentSpec

enabled
boolean

Enabled activates failover mode.

mode
GPUMemoryServiceModeDefaults to intraPod

Mode selects the failover deployment topology.<br />intraPod: engine containers run within the same pod (requires gpuMemoryService.enabled).<br />interPod: a dedicated GMS weight server pod + engine pods per rank (requires Grove). See GPUMemoryServiceMode. Validation: Enum: [intraPod interPod] <br />Optional: &#123;&#125; <br />

numShadows
integerDefaults to 1

NumShadows is the number of shadow (standby) engine pods per rank.<br />Total engine pods per rank = NumShadows + 1 (1 primary + NumShadows shadows).<br />NumShadows is only meaningful for mode=interPod; intraPod uses a fixed<br />1 primary + 1 shadow sidecar layout and any value other than 1 is<br />rejected at admission time. Validation: Minimum: 1 <br />Optional: &#123;&#125; <br />

FrontendSidecarSpec configures the auto-generated frontend sidecar container. The operator uses these fields together with built-in frontend defaults (command, probes, ports, and Dynamo env vars) to produce a fully configured sidecar container.

Kind: type Appears in: DynamoComponentDeploymentSharedSpec, DynamoComponentDeploymentSpec

image
stringRequired

Image is the container image for the frontend sidecar. Validation: Required: &#123;&#125; <br />

args
string array

Args overrides the default frontend arguments. When specified, these replace<br />the default [“-m”, “dynamo.frontend”] entirely.<br />For example, [“-m”, “dynamo.frontend”, “—router-mode”, “direct”] for GAIE deployments. Validation: Optional: &#123;&#125; <br />

envFromSecret
string

EnvFromSecret references a Secret whose key/value pairs will be exposed as<br />environment variables in the frontend sidecar container. Validation: Optional: &#123;&#125; <br />

envs
EnvVar array

Envs defines additional environment variables for the frontend sidecar.<br />These are merged with (and can override) the auto-generated Dynamo env vars. See EnvVar. Validation: Optional: &#123;&#125; <br />

GMSClientPodSpec declares an additional GMS client pod for inter-pod GMS.

Kind: type Appears in: GPUMemoryServiceSpec

name
string

Name identifies this client pod. Validation: MaxLength: 63 <br />MinLength: 1 <br />Pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$ <br />

podTemplate
PodTemplateSpec

PodTemplate configures the pod to run as a GMS client. See PodTemplateSpec. Validation: Schemaless: &#123;&#125; <br />Type: object <br />

GPUMemoryServiceMode selects the GMS deployment topology.

Kind: enum Underlying type: string Appears in: FailoverSpec, GPUMemoryServiceSpec

Allowed values

  • intraPod GMSModeIntraPod runs GMS as a sidecar within the same pod.<br />
  • interPod GMSModeInterPod runs GMS as a separate weight server pod and one or more<br />engine pods per rank, sharing GPUs via DRA ResourceClaims and a shared<br />hostPath volume for UDS sockets. Extra client pod rendering is reserved<br />for a follow-up change.<br />

GPUMemoryServiceSpec configures the GPU Memory Service (GMS) for a worker component.

Kind: type Appears in: DynamoCheckpointSpec, DynamoComponentDeploymentSharedSpec, DynamoComponentDeploymentSpec

enabled
boolean

Enabled activates GMS wiring. GPU resources on client containers are<br />replaced with a DRA ResourceClaim for shared GPU access.

mode
GPUMemoryServiceModeDefaults to intraPod

Mode selects the GMS deployment topology. See GPUMemoryServiceMode. Validation: Enum: [intraPod interPod] <br />Optional: &#123;&#125; <br />

deviceClassName
stringDefaults to gpu.nvidia.com

DeviceClassName is the DRA DeviceClass to request GPUs from. Validation: Optional: &#123;&#125; <br />

extraClientContainers
string array

ExtraClientContainers lists additional user-declared containers that should<br />be wired as GMS clients in pods rendered from the enclosing spec.<br />DGD/DCD services apply this to service pods. Auto-created checkpoints<br />apply checkpoint job clients before creating the DynamoCheckpoint; manual<br />DynamoCheckpoint users must provide an already-prepared pod template.<br />In each rendered pod, only matching container names are wired; absent<br />names are ignored. Validation: items:MaxLength: 63 <br />items:MinLength: 1 <br />items:Pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$ <br />Optional: &#123;&#125; <br />

extraClientPods
GMSClientPodSpec array

ExtraClientPods declares additional GMS client pods for inter-pod GMS. This field is<br />reserved for future use and is rejected until inter-pod client orchestration is wired. See GMSClientPodSpec. Validation: Optional: &#123;&#125; <br />

Kind: type Appears in: DynamoComponentDeploymentSharedSpec, DynamoComponentDeploymentSpec

enabled
boolean

Enabled exposes the component through an ingress or virtual service when true.

host
string

Host is the base host name to route external traffic to this component.

useVirtualService
boolean

UseVirtualService indicates whether to configure a service-mesh VirtualService instead of a standard Ingress.

virtualServiceGateway
string

VirtualServiceGateway optionally specifies the gateway name to attach the VirtualService to.

hostPrefix
string

HostPrefix is an optional prefix added before the host.

annotations
object (keys:string, values:string)

Annotations to set on the generated Ingress/VirtualService resources.

labels
object (keys:string, values:string)

Labels to set on the generated Ingress/VirtualService resources.

tls
IngressTLSSpec

TLS holds the TLS configuration used by the Ingress/VirtualService. See IngressTLSSpec.

hostSuffix
string

HostSuffix is an optional suffix appended after the host.

ingressControllerClassName
string

IngressControllerClassName selects the ingress controller class (e.g., “nginx”).

Kind: type Appears in: IngressSpec

secretName
string

SecretName is the name of a Kubernetes Secret containing the TLS certificate and key.

KvTransferEnforcement controls how the selected prefill worker’s topology is applied to decode routing.

Kind: enum Underlying type: string Validation: Enum: [required preferred] Appears in: KvTransferPolicy

Allowed values

  • required KvTransferEnforcementRequired enforces same-domain decode worker<br />selection.<br />
  • preferred KvTransferEnforcementPreferred biases decode worker selection toward the<br />same domain.<br />

KvTransferPolicy configures topology-aware routing for KV-cache transfers between prefill and decode workers. This graph-wide policy lives under spec.experimental while the API is incubating.

Kind: type Appears in: DynamoGraphDeploymentExperimentalSpec

clusterTopologyName
string

ClusterTopologyName references a Grove ClusterTopology CR. The operator<br />reads the CR’s topology levels and projects them through Dynamo-owned pod<br />labels for worker topology metadata. Validation: MinLength: 1 <br />Optional: &#123;&#125; <br />

labelKey
string

LabelKey is a Kubernetes node label key (e.g.<br />“topology.kubernetes.io/zone”) whose value identifies the topology<br />domain for each worker. The operator copies the node label onto worker<br />pods so the runtime can publish it as worker metadata. The label<br />should correspond to the topology level named in domain. Validation: MaxLength: 317 <br />MinLength: 1 <br />Pattern: ^(([a-z0-9]([-a-z0-9]\{0,61\}[a-z0-9])?)(\.[a-z0-9]([-a-z0-9]\{0,61\}[a-z0-9])?)*/)?([A-Za-z0-9]([-A-Za-z0-9_.]\{0,61\}[A-Za-z0-9])?)$ <br />Optional: &#123;&#125; <br />

domain
TopologyDomain

Domain is the logical name for the topology level to enforce<br />(e.g. “zone”, “rack”). The router uses this to match workers that<br />share the same value for the label identified by labelKey. See TopologyDomain. Validation: Pattern: ^[a-z0-9]([a-z0-9-]*[a-z0-9])?$ <br />

enforcement
KvTransferEnforcementDefaults to required

Enforcement controls how the selected prefill worker’s topology is<br />applied to decode routing. “required” only allows decode workers in the<br />same topology domain as the selected prefill worker. “preferred” keeps<br />all decode workers eligible, but biases selection toward workers in the<br />same topology domain. Defaults to “required”. See KvTransferEnforcement. Validation: Enum: [required preferred] <br />Optional: &#123;&#125; <br />

preferredWeight
float

PreferredWeight is required and used only when enforcement is<br />“preferred”. Higher values create a stronger same-domain routing<br />preference, but do not guarantee same-domain selection. The value is not<br />a probability; worker selection still depends on load and other routing<br />inputs. A value of 0 disables the topology preference; 1 is the strongest<br />supported preference. Validation: Maximum: 1 <br />Minimum: 0 <br />Optional: &#123;&#125; <br />

ModelReference identifies a model served by this component

Kind: type Appears in: DynamoComponentDeploymentSharedSpec, DynamoComponentDeploymentSpec

name
stringRequired

Name is the base model identifier (e.g., “llama-3-70b-instruct-v1”) Validation: Required: &#123;&#125; <br />

revision
string

Revision is the model revision/version (optional) Validation: Optional: &#123;&#125; <br />

ModelSource defines the source location of a model

Kind: type Appears in: DynamoModelSpec

uri
stringRequired

URI is the model source URI<br />Supported formats:<br />- S3: s3://bucket/path/to/model<br />- HuggingFace: hf://org/model@revision_sha<br />- Local filesystem: file:///path/to/model Validation: Required: &#123;&#125; <br />

Kind: type Appears in: DynamoComponentDeploymentSharedSpec, DynamoComponentDeploymentSpec

nodeCount
integerDefaults to 2

Indicates the number of nodes to deploy for multinode components.<br />Total number of GPUs is NumberOfNodes * GPU limit.<br />Must be greater than 1. Validation: Minimum: 2 <br />

Kind: type Appears in: DynamoGraphDeploymentSpec

create
boolean

Create indicates to create a new PVC

name
stringRequired

Name is the name of the PVC Validation: Required: &#123;&#125; <br />

storageClass
string

StorageClass to be used for PVC creation. Required when create is true.

size
Quantity

Size of the volume in Gi, used during PVC creation. Required when create is true. See Quantity.

volumeAccessMode
PersistentVolumeAccessMode

VolumeAccessMode is the volume access mode of the PVC. Required when create is true. See PersistentVolumeAccessMode.

PlacementScoreState describes whether placement score is available and how complete the reported score is for a graph deployment. See the v1beta1 PlacementScoreState for the authoritative semantics of each value.

Kind: enum Underlying type: string Validation: Enum: [Reported Partial Unsupported Unknown] Appears in: PlacementStatus

Allowed values

  • Reported
  • Partial
  • Unsupported
  • Unknown

PlacementStatus groups DGD-level scheduler placement fields under a single status object so future placement signals can be added without a schema break. See the v1beta1 PlacementStatus for the authoritative field docs.

Kind: type Appears in: DynamoGraphDeploymentStatus

score
float

Score is the DGD-level scheduler placement score. Normalized to [0.0, 1.0]<br />where higher is better and 1.0 is the best possible placement. Validation: Maximum: 1 <br />Minimum: 0 <br />Optional: &#123;&#125; <br />

state
PlacementScoreState

State indicates placement score reporting state. See PlacementScoreState. Validation: Enum: [Reported Partial Unsupported Unknown] <br />Optional: &#123;&#125; <br />

PodReference names a pod in the same namespace as the referencing PodSnapshot.

Kind: type Appears in: PodSnapshotContentSource, PodSnapshotSource

name
stringRequired

Name of the source pod. Validation: MinLength: 1 <br />Required: &#123;&#125; <br />

uid
UID

UID of the source pod, recorded so the node agent dumps that specific<br />pod and not a same-named recreation. See UID. Validation: Optional: &#123;&#125; <br />

PodSnapshot is the Schema for the snapshots API. It is the namespaced binding for a captured container checkpoint and is consumed by restore paths.

No conversion: this type exists only in v1alpha1 (no other API version), so it is not part of any conversion scheme.

Kind: resource

apiVersion
string

nvidia.com/v1alpha1

kind
string

PodSnapshot

metadata
ObjectMeta

Refer to Kubernetes API documentation for fields of metadata. See ObjectMeta.

spec
PodSnapshotSpec
status
PodSnapshotStatus

PodSnapshotContent is the Schema for the snapshotcontents API. It is the cluster-scoped artifact-of-record for a captured container checkpoint.

No conversion: this type exists only in v1alpha1 (no other API version), so it is not part of any conversion scheme.

Kind: resource

apiVersion
string

nvidia.com/v1alpha1

kind
string

PodSnapshotContent

metadata
ObjectMeta

Refer to Kubernetes API documentation for fields of metadata. See ObjectMeta.

spec
PodSnapshotContentSpec
status
PodSnapshotContentStatus

PodSnapshotContentSource is the immutable source descriptor: what to dump (PodRef) and where it runs (NodeName).

Kind: type Appears in: PodSnapshotContentSpec

podRef
PodReferenceRequired

PodRef identifies the pod to dump. Its UID guards against dumping a<br />same-named recreation of the pod. See PodReference. Validation: Required: &#123;&#125; <br />

nodeName
stringRequired

NodeName is the node the source pod runs on, denormalized from the live<br />pod so it travels with PodRef as one immutable unit and selects the node<br />agent that performs the dump. Validation: MinLength: 1 <br />Required: &#123;&#125; <br />

PodSnapshotContentSpec defines the desired state of PodSnapshotContent. It is populated by the PodSnapshotReconciler (operator) at creation time and is immutable thereafter.

Kind: type Appears in: PodSnapshotContent

snapshotRef
PodSnapshotReferenceRequired

PodSnapshotRef is the back-pointer to the bound PodSnapshot. It may span<br />namespaces because PodSnapshotContent is cluster-scoped. See PodSnapshotReference. Validation: Required: &#123;&#125; <br />

source
PodSnapshotContentSourceRequired

Source describes what to capture: the source pod and the node it runs on. See PodSnapshotContentSource. Validation: Required: &#123;&#125; <br />

PodSnapshotContentStatus defines the observed state of PodSnapshotContent.

Kind: type Appears in: PodSnapshotContent

conditions
Condition array

Conditions reflect the latest observations of the PodSnapshotContent’s state.<br />Standard types are Ready and Failed. See Condition. Validation: Optional: &#123;&#125; <br />

PodSnapshotReference is a cross-namespace reference to a PodSnapshot.

Kind: type Appears in: PodSnapshotContentSpec

namespace
stringRequired

Namespace of the referenced PodSnapshot. Validation: Required: &#123;&#125; <br />

name
stringRequired

Name of the referenced PodSnapshot. Validation: Required: &#123;&#125; <br />

uid
UID

UID of the referenced PodSnapshot, recorded at binding time to detect a<br />stale reference after a delete and recreate. See UID. Validation: Optional: &#123;&#125; <br />

PodSnapshotSource identifies the workload captured by a PodSnapshot.

Kind: type Appears in: PodSnapshotSpec

podRef
PodReferenceRequired

PodRef references the pod, in the PodSnapshot’s namespace, that is captured.<br />The operator prepares the pod (control volume, target-container annotation,<br />checkpoint storage mount) before creating the PodSnapshot. See PodReference. Validation: Required: &#123;&#125; <br />

PodSnapshotSpec defines the desired state of PodSnapshot.

Kind: type Appears in: PodSnapshot

source
PodSnapshotSourceRequired

Source identifies the captured workload. It is a struct (rather than an<br />inlined reference) so future source variants can be added additively. See PodSnapshotSource. Validation: Required: &#123;&#125; <br />

PodSnapshotStatus defines the observed state of PodSnapshot.

Kind: type Appears in: PodSnapshot

boundSnapshotContentName
string

BoundPodSnapshotContentName is the name of the cluster-scoped PodSnapshotContent<br />this PodSnapshot is bound to. It is nil until the agent has created the<br />content and recorded the binding. Validation: Optional: &#123;&#125; <br />

conditions
Condition array

Conditions reflect the latest observations of the PodSnapshot’s state.<br />Standard types are Ready and Failed. See Condition. Validation: Optional: &#123;&#125; <br />

ProfilingConfigSpec defines configuration for the profiling process. This structure maps directly to the profile_sla.py config format. See dynamo/profiler/utils/profiler_argparse.py for the complete schema.

Kind: type Appears in: DynamoGraphDeploymentRequestSpec

config
JSON

Config is the profiling configuration as arbitrary JSON/YAML. This will be passed directly to the profiler.<br />The profiler will validate the configuration and report any errors. See JSON. Validation: Optional: &#123;&#125; <br />Type: object <br />

configMapRef
ConfigMapKeySelector

ConfigMapRef is an optional reference to a ConfigMap containing the DynamoGraphDeployment<br />base config file (disagg.yaml). This is separate from the profiling config above.<br />The path to this config will be set as engine.config in the profiling config. See ConfigMapKeySelector. Validation: Optional: &#123;&#125; <br />

profilerImage
stringRequired

ProfilerImage specifies the container image to use for profiling jobs.<br />This image contains the profiler code and dependencies needed for SLA-based profiling.<br />Example: “nvcr.io/nvidia/ai-dynamo/dynamo-planner:1.2.1” Validation: Required: &#123;&#125; <br />

outputPVC
string

OutputPVC is an optional PersistentVolumeClaim name for storing profiling output.<br />If specified, all profiling artifacts (logs, plots, configs, raw data) will be written<br />to this PVC instead of an ephemeral emptyDir volume. This allows users to access<br />complete profiling results after the job completes by mounting the PVC.<br />The PVC must exist in the same namespace as the DGDR.<br />If not specified, profiling uses emptyDir and only essential data is saved to ConfigMaps.<br />Note: ConfigMaps are still created regardless of this setting for planner integration. Validation: Optional: &#123;&#125; <br />

resources
ResourceRequirements

Resources specifies the compute resource requirements for the profiling job container.<br />If not specified, no resource requests or limits are set. See ResourceRequirements. Validation: Optional: &#123;&#125; <br />

tolerations
Toleration array

Tolerations allows the profiling job to be scheduled on nodes with matching taints.<br />For example, to schedule on GPU nodes, add a toleration for the nvidia.com/gpu taint. See Toleration. Validation: Optional: &#123;&#125; <br />

nodeSelector
object (keys:string, values:string)

NodeSelector is a selector which must match a node’s labels for the profiling pod to be scheduled on that node.<br />For example, to schedule on ARM64 nodes, use &#123;“kubernetes.io/arch”: “arm64”&#125;. Validation: Optional: &#123;&#125; <br />

Kind: type Appears in: Resources

cpu
string

CPU specifies the CPU resource request/limit (e.g., “1000m”, “2”)

memory
string

Memory specifies the memory resource request/limit (e.g., “4Gi”, “8Gi”)

gpu
string

GPU indicates the number of GPUs to request.<br />Total number of GPUs is NumberOfNodes * GPU in case of multinode deployment.

gpuType
string

GPUType can specify a custom GPU type, e.g. “gpu.intel.com/xe”<br />By default if not specified, the GPU type is “nvidia.com/gpu”

custom
object (keys:string, values:string)

Custom specifies additional custom resource requests/limits

Resources defines requested and limits for a component, including CPU, memory, GPUs/devices, and any runtime-specific resources.

Kind: type Appears in: DynamoComponentDeploymentSharedSpec, DynamoComponentDeploymentSpec

requests
ResourceItem

Requests specifies the minimum resources required by the component See ResourceItem.

limits
ResourceItem

Limits specifies the maximum resources allowed for the component See ResourceItem.

claims
ResourceClaim array

Claims specifies resource claims for dynamic resource allocation See ResourceClaim.

Kind: type Appears in: DynamoGraphDeploymentSpec

id
stringRequired

ID is an arbitrary string that triggers a restart when changed.<br />Any modification to this value will initiate a restart of the graph deployment according to the strategy. Validation: MinLength: 1 <br />Required: &#123;&#125; <br />

strategy
RestartStrategy

Strategy specifies the restart strategy for the graph deployment. See RestartStrategy. Validation: Optional: &#123;&#125; <br />

Kind: enum Underlying type: string Appears in: RestartStatus

Allowed values

  • Pending
  • Restarting
  • Completed
  • Failed
  • Superseded

RestartStatus contains the status of the restart of the graph deployment.

Kind: type Appears in: DynamoGraphDeploymentStatus

observedID
string

ObservedID is the restart ID that has been observed and is being processed.<br />Matches the Restart.ID field in the spec.

phase
RestartPhase

Phase is the phase of the restart. See RestartPhase.

inProgress
string array

InProgress contains the names of the services that are currently being restarted. Validation: Optional: &#123;&#125; <br />

Kind: type Appears in: Restart

type
RestartStrategyTypeDefaults to Sequential

Type specifies the restart strategy type. See RestartStrategyType. Validation: Enum: [Sequential Parallel] <br />

order
string array

Order specifies the order in which the services should be restarted. Validation: Optional: &#123;&#125; <br />

Kind: enum Underlying type: string Appears in: RestartStrategy

Allowed values

  • Sequential
  • Parallel

RollingUpdatePhase represents the current phase of a rolling update.

Kind: enum Underlying type: string Validation: Enum: [Pending InProgress Completed Failed ] Appears in: RollingUpdateStatus

Allowed values

  • Pending
  • InProgress
  • Completed

RollingUpdateStatus tracks the progress of a rolling update.

Kind: type Appears in: DynamoGraphDeploymentStatus

phase
RollingUpdatePhase

Phase indicates the current phase of the rolling update. See RollingUpdatePhase. Validation: Enum: [Pending InProgress Completed Failed ] <br />Optional: &#123;&#125; <br />

startTime
Time

StartTime is when the rolling update began. See Time. Validation: Optional: &#123;&#125; <br />

endTime
Time

EndTime is when the rolling update completed (successfully or failed). See Time. Validation: Optional: &#123;&#125; <br />

updatedServices
string array

UpdatedServices is the list of services that have completed the rolling update.<br />A service is considered updated when its new replicas are all ready and old replicas are fully scaled down.<br />Only services of componentType Worker (or Prefill/Decode) are considered. Validation: Optional: &#123;&#125; <br />

ScalingAdapter configures whether a service uses the DynamoGraphDeploymentScalingAdapter for replica management. When enabled, the DGDSA owns the replicas field and external autoscalers (HPA, KEDA, Planner) can control scaling via the Scale subresource.

Kind: type Appears in: DynamoComponentDeploymentSharedSpec, DynamoComponentDeploymentSpec

enabled
booleanDefaults to false

Enabled indicates whether the ScalingAdapter should be enabled for this service.<br />When true, a DGDSA is created and owns the replicas field.<br />When false (default), no DGDSA is created and replicas can be modified directly in the DGD. Validation: Optional: &#123;&#125; <br />

ServiceCheckpointConfig configures checkpointing for a DGD service

Kind: type Appears in: DynamoComponentDeploymentSharedSpec, DynamoComponentDeploymentSpec

enabled
booleanDefaults to false

Enabled indicates whether checkpointing is enabled for this service Validation: Optional: &#123;&#125; <br />

mode
CheckpointMode

Deprecated: omit mode. Use enabled=true without checkpointRef for a<br />DGD-managed automatic checkpoint, or use checkpointRef to restore the<br />named checkpoint. See CheckpointMode. Validation: Enum: [Auto Manual] <br />Optional: &#123;&#125; <br />

startupPolicy
CheckpointStartupPolicyDefaults to Immediate

StartupPolicy defines when normal worker replicas are started relative to<br />automatic checkpoint readiness.<br />- Immediate: start workers cold immediately; later Pods restore from the<br /> checkpoint once it is Ready.<br />- WaitForCheckpoint: keep worker replicas at zero until the checkpoint is<br /> Ready, then start them from the checkpoint. See CheckpointStartupPolicy. Validation: Enum: [Immediate WaitForCheckpoint] <br />Optional: &#123;&#125; <br />

deletionPolicy
CheckpointDeletionPolicyDefaults to Delete

DeletionPolicy defines whether a DGD-managed automatic checkpoint CR and<br />artifact are deleted or retained when the owning DGD is deleted.<br />Explicit checkpointRef checkpoints are never owned or deleted by the DGD. See CheckpointDeletionPolicy. Validation: Enum: [Delete Retain] <br />Optional: &#123;&#125; <br />

checkpointRef
string

CheckpointRef references an existing DynamoCheckpoint CR by metadata.name.<br />If specified, this service’s Identity is ignored and the referenced checkpoint is used directly. Validation: Optional: &#123;&#125; <br />

identity
DynamoCheckpointIdentity

Deprecated: omit for DGD-managed checkpoints; no action is needed.<br />Use CheckpointRef to restore an existing checkpoint. See DynamoCheckpointIdentity. Validation: Optional: &#123;&#125; <br />

targetContainerName
stringDefaults to main

TargetContainerName is the workload container to snapshot and restore. Validation: MaxLength: 63 <br />MinLength: 1 <br />Pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$ <br />Optional: &#123;&#125; <br />

job
ServiceCheckpointJobConfig

Job customizes the DGD-managed checkpoint Job. See ServiceCheckpointJobConfig. Validation: Optional: &#123;&#125; <br />

ServiceCheckpointJobConfig customizes the checkpoint Job created for a DGD service.

Kind: type Appears in: ServiceCheckpointConfig

gmsClientContainers
string array

GMSClientContainers lists checkpoint Job containers that should receive<br />GMS client wiring. Requires gpuMemoryService on the service. Validation: items:MaxLength: 63 <br />items:MinLength: 1 <br />items:Pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$ <br />Optional: &#123;&#125; <br />

podTemplate
PodTemplateSpec

PodTemplate customizes the checkpoint Job pod. The operator starts from the<br />selected workload container and merges this template so users can add helper<br />containers such as gms-saver. See PodTemplateSpec. Validation: Schemaless: &#123;&#125; <br />Type: object <br />Optional: &#123;&#125; <br />

ServiceCheckpointStatus contains checkpoint information for a single service.

Kind: type Appears in: DynamoGraphDeploymentStatus

checkpointName
string

CheckpointName is the name of the associated Checkpoint CR Validation: Optional: &#123;&#125; <br />

checkpointID
string

CheckpointID is the artifact ID used by the snapshot protocol Validation: Optional: &#123;&#125; <br />

identityHash
string

IdentityHash is the computed hash of the checkpoint identity<br />Deprecated: automatic checkpoints use CheckpointID. This field is retained<br />for older status consumers. Validation: Optional: &#123;&#125; <br />

ready
boolean

Ready indicates the checkpoint artifact is ready for future pods to restore. Validation: Optional: &#123;&#125; <br />

ServiceReplicaStatus contains replica information for a single service.

Kind: type Appears in: DynamoGraphDeploymentStatus

componentKind
ComponentKind

ComponentKind is the underlying resource kind (e.g., “PodClique”, “PodCliqueScalingGroup”, “Deployment”, “LeaderWorkerSet”). See ComponentKind. Validation: Enum: [PodClique PodCliqueScalingGroup Deployment LeaderWorkerSet] <br />

componentName
string

ComponentName is the name of the primary underlying resource.<br />DEPRECATED: Use ComponentNames instead. This field will be removed in a future release.<br />During rolling updates, this reflects the new (target) component name.

componentNames
string array

ComponentNames is the list of underlying resource names for this service.<br />During normal operation, this contains a single name.<br />During rolling updates, this contains both old and new component names. Validation: Optional: &#123;&#125; <br />

runtimeNamespace
string

RuntimeNamespace is the effective Dynamo runtime namespace for this<br />component. Worker components may include a generation suffix; non-workers and<br />Grove-backed workers use the base namespace. During rolling updates, worker<br />status keeps the old active revision namespace until cutover completes. Validation: Optional: &#123;&#125; <br />

replicas
integer

Replicas is the total number of non-terminated replicas.<br />Required for all component kinds. Validation: Minimum: 0 <br />

updatedReplicas
integer

UpdatedReplicas is the number of replicas at the current/desired revision.<br />Required for all component kinds. Validation: Minimum: 0 <br />

readyReplicas
integer

ReadyReplicas is the number of ready replicas.<br />Populated for PodClique, Deployment, and LeaderWorkerSet.<br />Not available for PodCliqueScalingGroup.<br />When nil, the field is omitted from the API response. Validation: Minimum: 0 <br />Optional: &#123;&#125; <br />

availableReplicas
integer

AvailableReplicas is the number of available replicas.<br />For Deployment: replicas ready for >= minReadySeconds.<br />For PodCliqueScalingGroup: replicas where all constituent PodCliques have >= MinAvailable ready pods.<br />Not available for PodClique or LeaderWorkerSet.<br />When nil, the field is omitted from the API response. Validation: Minimum: 0 <br />Optional: &#123;&#125; <br />

scheduledReplicas
integer

ScheduledReplicas is the number of replicas the backend scheduler has<br />scheduled, in Dynamo component-replica units. Optional; omitted (nil)<br />when the backend cannot derive it reliably. A nil value means “not<br />reported”, never “zero scheduled”. Validation: Minimum: 0 <br />Optional: &#123;&#125; <br />

Kind: type Appears in: DynamoCheckpointJobConfig, DynamoComponentDeploymentSharedSpec, DynamoComponentDeploymentSpec

disabled
boolean

Disabled, when true, opts out of mounting a shared-memory medium for the<br />component. When false (or unset), shared memory is enabled and Size is<br />required (enforced by the validating webhook). Size is ignored when<br />Disabled is true.

size
Quantity

SpecTopologyConstraint defines deployment-level topology placement requirements. It carries both the topology profile (which ClusterTopology CR to use) and an optional default pack domain that services without their own constraint inherit.

Kind: type Appears in: DynamoGraphDeploymentSpec

topologyProfile
string

TopologyProfile is the name of the ClusterTopology CR that defines the<br />topology hierarchy for this deployment. Validation: MinLength: 1 <br />

packDomain
TopologyDomain

PackDomain is the default topology domain to pack pods within.<br />Optional — omit when only services carry constraints. See TopologyDomain. Validation: Pattern: ^[a-z0-9]([a-z0-9-]*[a-z0-9])?$ <br />Optional: &#123;&#125; <br />

TopologyConstraint defines service-level topology placement requirements. The topology profile is inherited from the deployment-level SpecTopologyConstraint; only the pack domain is specified here.

Kind: type Appears in: DynamoComponentDeploymentSharedSpec, DynamoComponentDeploymentSpec

packDomain
TopologyDomain

PackDomain is the topology domain to pack pods within. Must match a<br />domain defined in the referenced ClusterTopology CR. See TopologyDomain. Validation: Pattern: ^[a-z0-9]([a-z0-9-]*[a-z0-9])?$ <br />

TopologyDomain is a free-form topology level identifier. Common examples: “region”, “zone”, “datacenter”, “block”, “rack”, “host”, “numa”. When used with a ClusterTopology CR, domain names are defined in the CR’s hierarchy; when used with spec.experimental.kvTransferPolicy.labelKey alone, the value is a user-chosen logical name for the topology level. Must match ^[a-z0-9]([a-z0-9-]*[a-z0-9])?$ (lowercase alphanumeric, may contain hyphens but must not start or end with one).

Kind: type Underlying type: string Validation: Pattern: ^[a-z0-9]([a-z0-9-]*[a-z0-9])?$ Appears in: KvTransferPolicy, SpecTopologyConstraint, TopologyConstraint

VolumeMount references a PVC defined at the top level for volumes to be mounted by the component

Kind: type Appears in: DynamoComponentDeploymentSharedSpec, DynamoComponentDeploymentSpec

name
stringRequired

Name references a PVC name defined in the top-level PVCs map Validation: Required: &#123;&#125; <br />

mountPoint
string

MountPoint specifies where to mount the volume.<br />If useAsCompilationCache is true and mountPoint is not specified,<br />a backend-specific default will be used.

useAsCompilationCache
booleanDefaults to false

UseAsCompilationCache indicates this volume should be used as a compilation cache.<br />When true, backend-specific environment variables will be set and default mount points may be used.

nvidia.com/v1beta1

Package v1beta1 contains API Schema definitions for the nvidia.com v1beta1 API group.

Resource Types

BackendType specifies the inference backend.

Kind: enum Underlying type: string Validation: Enum: [auto sglang trtllm vllm] Appears in: DynamoGraphDeploymentRequestSpec

Allowed values

  • auto
  • sglang
  • trtllm
  • vllm

CheckpointDeletionPolicy defines what happens to DGD-managed automatic checkpoint resources when the owning DGD is deleted.

Kind: enum Underlying type: string Validation: Enum: [Delete Retain] Appears in: ComponentCheckpointConfig

Allowed values

  • Delete CheckpointDeletionPolicyDelete deletes DGD-managed automatic checkpoint<br />CRs and artifacts when the owning DGD is deleted.<br />
  • Retain CheckpointDeletionPolicyRetain keeps DGD-managed automatic checkpoint CRs<br />and artifacts after the owning DGD is deleted. Users can reference the<br />retained checkpoint with checkpointRef if they accept compatibility risk.<br />

Deprecated: use checkpoint.enabled instead. enabled=true without checkpointRef creates a DGD-managed automatic checkpoint; checkpointRef restores the named checkpoint.

Kind: enum Underlying type: string Validation: Enum: [Auto Manual] Appears in: ComponentCheckpointConfig

Allowed values

  • Auto Deprecated: use checkpoint.enabled=true and omit checkpointRef.<br />
  • Manual Deprecated: use checkpointRef to restore an existing checkpoint.<br />

CheckpointStartupPolicy defines when worker pods should wait for a checkpoint.

Kind: enum Underlying type: string Validation: Enum: [Immediate WaitForCheckpoint] Appears in: ComponentCheckpointConfig

Allowed values

  • Immediate CheckpointStartupPolicyImmediate starts workers immediately. The checkpoint<br />job runs in the background, and only pods created after the checkpoint is<br />Ready are restore-shaped by the pod-create mutating webhook.<br />
  • WaitForCheckpoint CheckpointStartupPolicyWaitForCheckpoint gates worker replicas until the<br />component’s checkpoint is Ready, then starts them from the checkpoint.<br />

CompilationCacheConfig configures a PVC-backed compilation cache for a component. The operator handles backend-specific mount paths and environment variables so users do not need to hand-wire them into the pod template.

Kind: type Appears in: DynamoComponentDeploymentSharedSpec, DynamoComponentDeploymentSpec

pvcName
stringRequired

pvcName references a user-created PVC by name. The PVC must exist in<br />the same namespace as the DynamoGraphDeployment. Validation: MinLength: 1 <br />Required: &#123;&#125; <br />

mountPath
string

mountPath overrides the backend-specific default mount path. When<br />empty, the operator selects a default appropriate for the backend<br />framework. Validation: Optional: &#123;&#125; <br />

ComponentCheckpointConfig configures checkpointing for a DGD component.

Kind: type Appears in: ExperimentalSpec

enabled
booleanRequired

enabled indicates whether checkpointing is enabled for this component.<br />When true, omit checkpointRef for a DGD-managed automatic checkpoint or<br />set checkpointRef to restore an existing checkpoint. Omit the checkpoint<br />block, or set enabled=false, to disable checkpointing. Validation: Required: &#123;&#125; <br />

mode
CheckpointMode

Deprecated: omit mode. Use enabled=true without checkpointRef for a<br />DGD-managed automatic checkpoint, or use checkpointRef to restore the<br />named checkpoint. See CheckpointMode. Validation: Enum: [Auto Manual] <br />Optional: &#123;&#125; <br />

startupPolicy
CheckpointStartupPolicyDefaults to Immediate

startupPolicy defines when normal worker replicas are started relative to<br />automatic checkpoint readiness.<br />Immediate (default): start workers cold immediately; later Pods restore<br />from the checkpoint once it is Ready.<br />WaitForCheckpoint: keep worker replicas at zero until the checkpoint is<br />Ready, then start them from the checkpoint. See CheckpointStartupPolicy. Validation: Enum: [Immediate WaitForCheckpoint] <br />Optional: &#123;&#125; <br />

deletionPolicy
CheckpointDeletionPolicyDefaults to Delete

DeletionPolicy defines whether a DGD-managed automatic checkpoint CR and<br />artifact are deleted or retained when the owning DGD is deleted.<br />Explicit checkpointRef checkpoints are never owned or deleted by the DGD. See CheckpointDeletionPolicy. Validation: Enum: [Delete Retain] <br />Optional: &#123;&#125; <br />

checkpointRef
string

checkpointRef references an existing DynamoCheckpoint CR by metadata.name.<br />When set, this component’s identity is ignored and the referenced<br />checkpoint is used directly. Validation: Optional: &#123;&#125; <br />

identity
DynamoCheckpointIdentity

Deprecated: omit for DGD-managed checkpoints; no action is needed.<br />Use checkpointRef to restore an existing checkpoint. See DynamoCheckpointIdentity. Validation: Optional: &#123;&#125; <br />

targetContainerName
stringDefaults to main

targetContainerName is the workload container to snapshot and restore. Validation: MaxLength: 63 <br />MinLength: 1 <br />Pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$ <br />Optional: &#123;&#125; <br />

job
ComponentCheckpointJobConfig

job customizes the DGD-managed checkpoint Job. See ComponentCheckpointJobConfig. Validation: Optional: &#123;&#125; <br />

ComponentCheckpointJobConfig customizes the checkpoint Job created for a DGD component.

Kind: type Appears in: ComponentCheckpointConfig

gmsClientContainers
string array

gmsClientContainers lists checkpoint Job containers that should receive<br />GMS client wiring. Requires gpuMemoryService on the component. Validation: items:MaxLength: 63 <br />items:MinLength: 1 <br />items:Pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$ <br />Optional: &#123;&#125; <br />

podTemplate
PodTemplateSpec

podTemplate customizes the checkpoint Job pod. The operator starts from the<br />selected workload container and merges this template so users can add helper<br />containers such as gms-saver. See PodTemplateSpec. Validation: Schemaless: &#123;&#125; <br />Type: object <br />Optional: &#123;&#125; <br />

ComponentCheckpointStatus contains checkpoint information for a single component.

Kind: type Appears in: DynamoGraphDeploymentStatus

checkpointName
string

checkpointName is the name of the associated DynamoCheckpoint CR. Validation: Optional: &#123;&#125; <br />

checkpointID
string

checkpointID is the artifact ID used by the snapshot protocol. Validation: Optional: &#123;&#125; <br />

identityHash
string

identityHash is the computed hash of the checkpoint identity.<br />Deprecated: automatic checkpoints use checkpointID. This field is retained<br />for older status consumers. Validation: Optional: &#123;&#125; <br />

ready
boolean

ready indicates the checkpoint artifact is ready for future pods to restore. Validation: Optional: &#123;&#125; <br />

ComponentKind represents the type of underlying Kubernetes resource backing a DGD component.

Kind: enum Underlying type: string Validation: Enum: [PodClique PodCliqueScalingGroup Deployment LeaderWorkerSet] Appears in: ComponentReplicaStatus

Allowed values

  • PodClique
  • PodCliqueScalingGroup
  • Deployment
  • LeaderWorkerSet

ComponentReplicaStatus contains replica information for a single component.

Kind: type Appears in: DynamoGraphDeploymentStatus

componentKind
ComponentKind

componentKind is the underlying resource kind (e.g. PodClique,<br />Deployment, LeaderWorkerSet). See ComponentKind. Validation: Enum: [PodClique PodCliqueScalingGroup Deployment LeaderWorkerSet] <br />

componentNames
string array

componentNames is the list of underlying Kubernetes resource names for<br />this Dynamo component. During normal operation this contains a single<br />name; during rolling updates it contains both old and new resource names. Validation: Optional: &#123;&#125; <br />

runtimeNamespace
string

runtimeNamespace is the effective Dynamo runtime namespace for this<br />component. Worker components may include a generation suffix; non-workers and<br />Grove-backed workers use the base namespace. During rolling updates, worker<br />status keeps the old active revision namespace until cutover completes. Validation: Optional: &#123;&#125; <br />

replicas
integer

replicas is the total number of non-terminated replicas. Validation: Minimum: 0 <br />

updatedReplicas
integer

updatedReplicas is the number of replicas at the current/desired revision. Validation: Minimum: 0 <br />

readyReplicas
integer

readyReplicas is the number of ready replicas. Populated for<br />PodClique, Deployment, and LeaderWorkerSet; not available for<br />PodCliqueScalingGroup. Validation: Minimum: 0 <br />Optional: &#123;&#125; <br />

availableReplicas
integer

availableReplicas is the number of available replicas. Populated for<br />Deployment and PodCliqueScalingGroup; not available for<br />PodClique or LeaderWorkerSet. Validation: Minimum: 0 <br />Optional: &#123;&#125; <br />

scheduledReplicas
integer

scheduledReplicas is the number of replicas the backend scheduler has<br />scheduled, expressed strictly in Dynamo component-replica units (not<br />raw backend pod counts). It is a diagnostic aid for distinguishing<br />capacity/scheduling shortfalls from runtime readiness.<br />It is optional and omitted (nil) when the active backend cannot derive<br />it reliably in component-replica units — for example before the backing<br />resource’s status has been observed, or for backends that do not report<br />a scheduling count. A nil value therefore means “not reported”, never<br />“zero scheduled”; consumers must not treat absence as a scheduling<br />failure. Validation: Minimum: 0 <br />Optional: &#123;&#125; <br />

ComponentType identifies the role of a Dynamo component within a graph. In v1beta1 this is a strict enum. Unlike v1alpha1 (where subComponentType was used as a workaround for disaggregated serving), prefill and decode are first-class values: users can set them directly and downstream consumers (e.g., the EPP) can filter on the pod label nvidia.com/dynamo-component-type.

Kind: enum Underlying type: string Validation: Enum: [frontend worker prefill decode planner epp] Appears in: DynamoComponentDeploymentSharedSpec, DynamoComponentDeploymentSpec

Allowed values

  • frontend
  • worker
  • prefill
  • decode
  • planner
  • epp

DGDRPhase represents the lifecycle phase of a DynamoGraphDeploymentRequest.

Kind: enum Underlying type: string Validation: Enum: [Pending Profiling Ready Deploying Deployed Failed] Appears in: DynamoGraphDeploymentRequestStatus

Allowed values

  • Pending
  • Profiling
  • Ready
  • Deploying
  • Deployed
  • Failed

DGDState is the high-level lifecycle state of a DynamoGraphDeployment.

Kind: enum Underlying type: string Validation: Enum: [initializing pending successful failed] Appears in: DynamoGraphDeploymentStatus

Allowed values

  • initializing
  • pending
  • successful
  • failed

DeploymentInfoStatus tracks the state of the deployed DynamoGraphDeployment.

Kind: type Appears in: DynamoGraphDeploymentRequestStatus

replicas
integer

Replicas is the desired number of replicas. Validation: Optional: &#123;&#125; <br />

availableReplicas
integer

AvailableReplicas is the number of replicas that are available and ready. Validation: Optional: &#123;&#125; <br />

Deprecated: omit in DGD component checkpoint configs. Auto needs no replacement; use checkpointRef for explicit restores. Duplicated from v1alpha1; DynamoCheckpoint itself remains v1alpha1.

Kind: type Appears in: ComponentCheckpointConfig

model
stringRequired

model is the model identifier (e.g. “meta-llama/Llama-3-70B”).<br />Deprecated: legacy identity only. Validation: MinLength: 1 <br />Required: &#123;&#125; <br />

backendFramework
stringRequired

backendFramework is the runtime framework (vllm, sglang, trtllm).<br />Deprecated: legacy identity only. Validation: Enum: [vllm sglang trtllm] <br />Required: &#123;&#125; <br />

dynamoVersion
string

dynamoVersion is the Dynamo platform version.<br />Deprecated: legacy identity only. Validation: Optional: &#123;&#125; <br />

tensorParallelSize
integerDefaults to 1

tensorParallelSize is the tensor parallel configuration.<br />Deprecated: checkpoint launch uses the pod template instead. Validation: Minimum: 1 <br />Optional: &#123;&#125; <br />

pipelineParallelSize
integerDefaults to 1

pipelineParallelSize is the pipeline parallel configuration.<br />Deprecated: checkpoint launch uses the pod template instead. Validation: Minimum: 1 <br />Optional: &#123;&#125; <br />

dtype
string

dtype is the data type (fp16, bf16, fp8, etc.).<br />Deprecated: legacy identity only. Validation: Optional: &#123;&#125; <br />

maxModelLen
integer

maxModelLen is the maximum sequence length.<br />Deprecated: legacy identity only. Validation: Minimum: 1 <br />Optional: &#123;&#125; <br />

extraParameters
object (keys:string, values:string)

extraParameters are additional parameters that affect the checkpoint hash.<br />Deprecated: legacy identity only. Validation: Optional: &#123;&#125; <br />

DynamoComponentDeployment is the Schema for the dynamocomponentdeployments API.

v1beta1 is a served version: the API server accepts reads and writes against it, and transparently converts to/from v1alpha1 (still the storage version until a later MR flips it). Conversion goes through the operator’s conversion webhook; see api/v1alpha1/*_conversion.go.

Kind: resource

apiVersion
string

nvidia.com/v1beta1

kind
string

DynamoComponentDeployment

metadata
ObjectMeta

Refer to Kubernetes API documentation for fields of metadata. See ObjectMeta.

spec
DynamoComponentDeploymentSpec

spec defines the desired state for this Dynamo component deployment. See DynamoComponentDeploymentSpec.

DynamoComponentDeploymentSharedSpec is the shared configuration used by both standalone DCDs and by the components embedded in a DynamoGraphDeployment.

In v1beta1 the ten per-component pod-configuration fields that existed in v1alpha1 (resources, envs, envFromSecret, livenessProbe, readinessProbe, volumeMounts, annotations, labels, extraPodMetadata, extraPodSpec) are replaced with a single podTemplate field holding a native corev1.PodTemplateSpec. The operator injects its defaults into the container named "main" and merges user overrides using strategic-merge-by-name semantics. Users can add sidecars, init containers, and pod-level configuration directly in podTemplate without any extraPodSpec-style escape hatch.

Kind: type Appears in: DynamoComponentDeploymentSpec, DynamoGraphDeploymentSpec

name
stringRequired

name is the stable logical identifier for this component within its<br />DynamoGraphDeployment. It must be unique within the parent’s<br />spec.components list.<br />For standalone DynamoComponentDeployment objects, the defaulting webhook<br />populates name from metadata.name on admission, so users<br />typically do not need to set it explicitly.<br />name is decoupled from the underlying Kubernetes resource name so that<br />the operator can rename child workloads (e.g. suffixing worker DCDs with<br />a hash during rolling updates) without losing the stable identity that<br />downstream consumers (labels, status maps, DGDSA references, planner<br />RBAC, EPP filters) depend on. Validation: MaxLength: 63 <br />MinLength: 1 <br />Pattern: ^[A-Za-z0-9]([-A-Za-z0-9]*[A-Za-z0-9])?$ <br />Required: &#123;&#125; <br />

type
ComponentType

type indicates the role of this component within a Dynamo graph. Drives<br />port mapping, frontend detection, planner RBAC, and the pod label<br />nvidia.com/dynamo-component-type. Because prefill and decode are<br />first-class values, users can set them directly. See ComponentType. Validation: Enum: [frontend worker prefill decode planner epp] <br />Optional: &#123;&#125; <br />

globalDynamoNamespace
boolean

globalDynamoNamespace places the component in the global Dynamo<br />namespace rather than the per-deployment namespace derived from the<br />DGD name. Validation: Optional: &#123;&#125; <br />

podTemplate
PodTemplateSpec

podTemplate is the pod template used to create the component’s pods.<br />The operator injects its defaults (image, command, env, ports, probes,<br />resources, volume mounts) into the container named "main" inside<br />podTemplate.spec.containers, merging user overrides by name. If no<br />container named "main" is present, the operator auto-generates it<br />with standard defaults. All other containers in podTemplate.spec.containers<br />are treated as user-managed sidecars: the operator does not inject<br />defaults into them, so sidecars must specify required fields (e.g. image)<br />themselves. The validation webhook rejects pod templates where a<br />non-"main" container is missing a required field such as image. See PodTemplateSpec. Validation: Optional: &#123;&#125; <br />

replicas
integer

replicas is the desired number of Pods for this component. When<br />scalingAdapter is set on this component, this field is managed by<br />the DynamoGraphDeploymentScalingAdapter and should not be modified<br />directly. Validation: Minimum: 0 <br />Optional: &#123;&#125; <br />

minAvailable
integer

minAvailable maps to Grove PodClique minAvailable for single-node and<br />Grove PodCliqueScalingGroup minAvailable for multi-node components.<br />This field determines 1) the minimum number of replicas guaranteed to be<br />gang-scheduled, and 2) when violating minAvailable replicas triggers gang<br />termination.<br />For Grove-backed DynamoGraphDeployment components, minAvailable defaults to<br />1 when omitted and is immutable after creation. Positive replica counts must<br />be greater than or equal to minAvailable. Replicas may be scaled to 0 as a<br />special scale-to-zero state; minAvailable remains configured but is not<br />enforced again until replicas is scaled back to a positive value.<br />For non-Grove deployments, setting this field will result in a validation error. Validation: Minimum: 1 <br />Optional: &#123;&#125; <br />

multinode
MultinodeSpec

multinode configures multinode components. See MultinodeSpec. Validation: Optional: &#123;&#125; <br />

sharedMemorySize
Quantity

sharedMemorySize controls the size of the tmpfs mounted at /dev/shm.<br />nil selects the operator default (8Gi), a positive quantity sets a<br />custom size, and "0" disables the shared-memory volume entirely.<br />Simpler replacement for v1alpha1’s SharedMemorySpec struct with its<br />disabled bool + size Quantity pattern. See Quantity. Validation: Optional: &#123;&#125; <br />

modelRef
ModelReference

modelRef references a model served by this component. When specified,<br />a headless service is created for endpoint discovery. See ModelReference. Validation: Optional: &#123;&#125; <br />

scalingAdapter
ScalingAdapter

scalingAdapter opts this component into using the<br />DynamoGraphDeploymentScalingAdapter. When set (even as an empty object,<br />scalingAdapter: \{\}), a DGDSA is created and owns the replicas field<br />so that external autoscalers (HPA/KEDA/Planner) can drive scaling via<br />the Scale subresource. Omit the field to opt out. See ScalingAdapter. Validation: Optional: &#123;&#125; <br />

eppConfig
EPPConfig

eppConfig holds EPP-specific configuration for Endpoint Picker Plugin<br />components. Only meaningful when type is epp. See EPPConfig. Validation: Optional: &#123;&#125; <br />

frontendSidecar
string

frontendSidecar optionally designates a container in<br />podTemplate.spec.containers as the frontend sidecar. The value must<br />match the name of a container in that list; the operator merges its<br />frontend-sidecar defaults (auto-generated Dynamo env vars, ports,<br />health probes) into that container the same way it merges into "main".<br />The full container definition (image, args, envFrom, env) lives in<br />podTemplate — this eliminates the redundant image, args,<br />envFromSecret, and envs fields from v1alpha1’s FrontendSidecarSpec.<br />The validation webhook rejects values that do not match any container<br />name in podTemplate.spec.containers. Validation: Optional: &#123;&#125; <br />

compilationCache
CompilationCacheConfig

compilationCache configures a PVC-backed compilation cache. The operator<br />handles backend-specific mount paths and environment variables, so<br />users do not need to hand-wire them into podTemplate. Extracted from<br />v1alpha1’s volumeMount.useAsCompilationCache flag. See CompilationCacheConfig. Validation: Optional: &#123;&#125; <br />

topologyConstraint
TopologyConstraint

topologyConstraint applies to this component.<br />topologyConstraint.packDomain is required. When both this and<br />spec.topologyConstraint.packDomain are set, this field’s packDomain<br />must be narrower than or equal to the spec-level value. See TopologyConstraint. Validation: Optional: &#123;&#125; <br />

experimental
ExperimentalSpec

experimental groups opt-in preview features whose API shape and<br />behavior may change in breaking ways between v1beta1 releases,<br />including disappearing without a name-preserving graduation path.<br />In v1beta1 this block holds gpuMemoryService and failover (which<br />remain tightly coupled — failover requires GMS — and are expected to<br />evolve together as the DRA-based GPU sharing story matures), and<br />checkpoint (whose API shape is still settling). Fields here are<br />explicitly NOT covered by the normal v1beta1 deprecation policy; do not<br />depend on them for production workloads. See ExperimentalSpec. Validation: Optional: &#123;&#125; <br />

DynamoComponentDeploymentSpec defines the desired state of a DynamoComponentDeployment.

Kind: type Appears in: DynamoComponentDeployment

backendFramework
string

backendFramework specifies the backend framework. Validation: Enum: [sglang vllm trtllm] <br />

name
stringRequired

name is the stable logical identifier for this component within its<br />DynamoGraphDeployment. It must be unique within the parent’s<br />spec.components list.<br />For standalone DynamoComponentDeployment objects, the defaulting webhook<br />populates name from metadata.name on admission, so users<br />typically do not need to set it explicitly.<br />name is decoupled from the underlying Kubernetes resource name so that<br />the operator can rename child workloads (e.g. suffixing worker DCDs with<br />a hash during rolling updates) without losing the stable identity that<br />downstream consumers (labels, status maps, DGDSA references, planner<br />RBAC, EPP filters) depend on. Validation: MaxLength: 63 <br />MinLength: 1 <br />Pattern: ^[A-Za-z0-9]([-A-Za-z0-9]*[A-Za-z0-9])?$ <br />Required: &#123;&#125; <br />

type
ComponentType

type indicates the role of this component within a Dynamo graph. Drives<br />port mapping, frontend detection, planner RBAC, and the pod label<br />nvidia.com/dynamo-component-type. Because prefill and decode are<br />first-class values, users can set them directly. See ComponentType. Validation: Enum: [frontend worker prefill decode planner epp] <br />Optional: &#123;&#125; <br />

globalDynamoNamespace
boolean

globalDynamoNamespace places the component in the global Dynamo<br />namespace rather than the per-deployment namespace derived from the<br />DGD name. Validation: Optional: &#123;&#125; <br />

podTemplate
PodTemplateSpec

podTemplate is the pod template used to create the component’s pods.<br />The operator injects its defaults (image, command, env, ports, probes,<br />resources, volume mounts) into the container named "main" inside<br />podTemplate.spec.containers, merging user overrides by name. If no<br />container named "main" is present, the operator auto-generates it<br />with standard defaults. All other containers in podTemplate.spec.containers<br />are treated as user-managed sidecars: the operator does not inject<br />defaults into them, so sidecars must specify required fields (e.g. image)<br />themselves. The validation webhook rejects pod templates where a<br />non-"main" container is missing a required field such as image. See PodTemplateSpec. Validation: Optional: &#123;&#125; <br />

replicas
integer

replicas is the desired number of Pods for this component. When<br />scalingAdapter is set on this component, this field is managed by<br />the DynamoGraphDeploymentScalingAdapter and should not be modified<br />directly. Validation: Minimum: 0 <br />Optional: &#123;&#125; <br />

minAvailable
integer

minAvailable maps to Grove PodClique minAvailable for single-node and<br />Grove PodCliqueScalingGroup minAvailable for multi-node components.<br />This field determines 1) the minimum number of replicas guaranteed to be<br />gang-scheduled, and 2) when violating minAvailable replicas triggers gang<br />termination.<br />For Grove-backed DynamoGraphDeployment components, minAvailable defaults to<br />1 when omitted and is immutable after creation. Positive replica counts must<br />be greater than or equal to minAvailable. Replicas may be scaled to 0 as a<br />special scale-to-zero state; minAvailable remains configured but is not<br />enforced again until replicas is scaled back to a positive value.<br />For non-Grove deployments, setting this field will result in a validation error. Validation: Minimum: 1 <br />Optional: &#123;&#125; <br />

multinode
MultinodeSpec

multinode configures multinode components. See MultinodeSpec. Validation: Optional: &#123;&#125; <br />

sharedMemorySize
Quantity

sharedMemorySize controls the size of the tmpfs mounted at /dev/shm.<br />nil selects the operator default (8Gi), a positive quantity sets a<br />custom size, and "0" disables the shared-memory volume entirely.<br />Simpler replacement for v1alpha1’s SharedMemorySpec struct with its<br />disabled bool + size Quantity pattern. See Quantity. Validation: Optional: &#123;&#125; <br />

modelRef
ModelReference

modelRef references a model served by this component. When specified,<br />a headless service is created for endpoint discovery. See ModelReference. Validation: Optional: &#123;&#125; <br />

scalingAdapter
ScalingAdapter

scalingAdapter opts this component into using the<br />DynamoGraphDeploymentScalingAdapter. When set (even as an empty object,<br />scalingAdapter: \{\}), a DGDSA is created and owns the replicas field<br />so that external autoscalers (HPA/KEDA/Planner) can drive scaling via<br />the Scale subresource. Omit the field to opt out. See ScalingAdapter. Validation: Optional: &#123;&#125; <br />

eppConfig
EPPConfig

eppConfig holds EPP-specific configuration for Endpoint Picker Plugin<br />components. Only meaningful when type is epp. See EPPConfig. Validation: Optional: &#123;&#125; <br />

frontendSidecar
string

frontendSidecar optionally designates a container in<br />podTemplate.spec.containers as the frontend sidecar. The value must<br />match the name of a container in that list; the operator merges its<br />frontend-sidecar defaults (auto-generated Dynamo env vars, ports,<br />health probes) into that container the same way it merges into "main".<br />The full container definition (image, args, envFrom, env) lives in<br />podTemplate — this eliminates the redundant image, args,<br />envFromSecret, and envs fields from v1alpha1’s FrontendSidecarSpec.<br />The validation webhook rejects values that do not match any container<br />name in podTemplate.spec.containers. Validation: Optional: &#123;&#125; <br />

compilationCache
CompilationCacheConfig

compilationCache configures a PVC-backed compilation cache. The operator<br />handles backend-specific mount paths and environment variables, so<br />users do not need to hand-wire them into podTemplate. Extracted from<br />v1alpha1’s volumeMount.useAsCompilationCache flag. See CompilationCacheConfig. Validation: Optional: &#123;&#125; <br />

topologyConstraint
TopologyConstraint

topologyConstraint applies to this component.<br />topologyConstraint.packDomain is required. When both this and<br />spec.topologyConstraint.packDomain are set, this field’s packDomain<br />must be narrower than or equal to the spec-level value. See TopologyConstraint. Validation: Optional: &#123;&#125; <br />

experimental
ExperimentalSpec

experimental groups opt-in preview features whose API shape and<br />behavior may change in breaking ways between v1beta1 releases,<br />including disappearing without a name-preserving graduation path.<br />In v1beta1 this block holds gpuMemoryService and failover (which<br />remain tightly coupled — failover requires GMS — and are expected to<br />evolve together as the DRA-based GPU sharing story matures), and<br />checkpoint (whose API shape is still settling). Fields here are<br />explicitly NOT covered by the normal v1beta1 deprecation policy; do not<br />depend on them for production workloads. See ExperimentalSpec. Validation: Optional: &#123;&#125; <br />

DynamoGraphDeployment is the Schema for the dynamographdeployments API.

v1beta1 is a served version: the API server accepts reads and writes against it, and transparently converts to/from v1alpha1 (still the storage version until a later MR flips it). Conversion goes through the operator’s conversion webhook; see api/v1alpha1/*_conversion.go.

Kind: resource

apiVersion
string

nvidia.com/v1beta1

kind
string

DynamoGraphDeployment

metadata
ObjectMeta

Refer to Kubernetes API documentation for fields of metadata. See ObjectMeta.

spec
DynamoGraphDeploymentSpec

spec defines the desired state for this graph deployment. See DynamoGraphDeploymentSpec.

status
DynamoGraphDeploymentStatus

status reflects the current observed state of this graph deployment. See DynamoGraphDeploymentStatus.

DynamoGraphDeploymentComponentRef identifies a specific component within a DynamoGraphDeployment. Renamed from v1alpha1’s DynamoGraphDeploymentServiceRef to align with the v1beta1 services -> components and serviceName -> componentName renames.

Kind: type Appears in: DynamoGraphDeploymentScalingAdapterSpec

name
stringRequired

name is the metadata.name of the target DynamoGraphDeployment. Validation: MinLength: 1 <br />Required: &#123;&#125; <br />

componentName
stringRequired

componentName is the componentName of the entry within the target<br />DGD’s spec.components list to scale. Validation: MinLength: 1 <br />Required: &#123;&#125; <br />

DynamoGraphDeploymentExperimentalSpec groups graph-level opt-in preview features whose API shape and behavior may change in breaking ways between v1beta1 releases. Component-level experimental features live under spec.components[*].experimental.

Kind: type Appears in: DynamoGraphDeploymentSpec

kvTransferPolicy
KvTransferPolicy

kvTransferPolicy configures topology-aware routing for KV-cache<br />transfers between prefill and decode workers. See KvTransferPolicy. Validation: Optional: &#123;&#125; <br />

DynamoGraphDeploymentRequest is the Schema for the dynamographdeploymentrequests API. It provides a simplified, SLA-driven interface for deploying inference models on Dynamo. Users specify a model and optional performance targets; the controller handles profiling, configuration selection, and deployment.

Lifecycle:

  1. Pending: Spec validated, preparing for profiling
  2. Profiling: Profiling job is running to discover optimal configurations
  3. Ready: Profiling complete, generated DGD spec available in status
  4. Deploying: DGD is being created and rolled out (when autoApply=true)
  5. Deployed: DGD is running and healthy
  6. Failed: An unrecoverable error occurred

Kind: resource

apiVersion
string

nvidia.com/v1beta1

kind
string

DynamoGraphDeploymentRequest

metadata
ObjectMeta

Refer to Kubernetes API documentation for fields of metadata. See ObjectMeta.

spec
DynamoGraphDeploymentRequestSpec

Spec defines the desired state for this deployment request. See DynamoGraphDeploymentRequestSpec.

status
DynamoGraphDeploymentRequestStatus

Status reflects the current observed state of this deployment request. See DynamoGraphDeploymentRequestStatus.

DynamoGraphDeploymentRequestSpec defines the desired state of a DynamoGraphDeploymentRequest. Only the Model field is required; all other fields are optional and have sensible defaults.

Kind: type Appears in: DynamoGraphDeploymentRequest

model
stringRequired

Model specifies the model to deploy (e.g., “Qwen/Qwen3-0.6B”, “meta-llama/Llama-3-70b”).<br />Can be a HuggingFace ID or a private model name. Validation: MinLength: 1 <br />Required: &#123;&#125; <br />

backend
BackendTypeDefaults to auto

Backend specifies the inference backend to use for profiling and deployment. See BackendType. Validation: Enum: [auto sglang trtllm vllm] <br />Optional: &#123;&#125; <br />

image
string

Image is the container image reference for the profiling job (planner image).<br />Example: “nvcr.io/nvidia/ai-dynamo/dynamo-planner:1.2.1”.<br />For Dynamo < 1.1.0, use dynamo-frontend. Validation: Optional: &#123;&#125; <br />

modelCache
ModelCacheSpec

ModelCache provides optional PVC configuration for pre-downloaded model weights.<br />When provided, weights are loaded from the PVC instead of downloading from HuggingFace. See ModelCacheSpec. Validation: Optional: &#123;&#125; <br />

hardware
HardwareSpec

Hardware describes the hardware resources available for profiling and deployment.<br />Typically auto-filled by the operator from cluster discovery. See HardwareSpec. Validation: Optional: &#123;&#125; <br />

workload
WorkloadSpec

Workload defines the expected workload characteristics for SLA-based profiling. See WorkloadSpec. Validation: Optional: &#123;&#125; <br />

sla
SLASpec

SLA defines service-level agreement targets that drive profiling optimization. See SLASpec. Validation: Optional: &#123;&#125; <br />

overrides
OverridesSpec

Overrides allows customizing the profiling job and the generated DynamoGraphDeployment. See OverridesSpec. Validation: Optional: &#123;&#125; <br />

features
FeaturesSpec

Features controls optional Dynamo platform features in the generated deployment. See FeaturesSpec. Validation: Optional: &#123;&#125; <br />

searchStrategy
SearchStrategyDefaults to rapid

SearchStrategy controls the profiling search depth.<br />“rapid” performs a fast sweep; “thorough” explores more configurations. See SearchStrategy. Validation: Enum: [rapid thorough] <br />Optional: &#123;&#125; <br />

autoApply
booleanDefaults to true

AutoApply indicates whether to automatically create a DynamoGraphDeployment<br />after profiling completes. If false, the generated spec is stored in status<br />for manual review and application. Validation: Optional: &#123;&#125; <br />

DynamoGraphDeploymentRequestStatus represents the observed state of a DynamoGraphDeploymentRequest.

Kind: type Appears in: DynamoGraphDeploymentRequest

phase
DGDRPhase

Phase is the high-level lifecycle phase of the deployment request. See DGDRPhase. Validation: Enum: [Pending Profiling Ready Deploying Deployed Failed] <br />Optional: &#123;&#125; <br />

profilingPhase
ProfilingPhase

ProfilingPhase indicates the current sub-phase of the profiling pipeline.<br />Only meaningful when Phase is “Profiling”. Cleared when profiling completes or fails. See ProfilingPhase. Validation: Enum: [Initializing SweepingPrefill SweepingDecode SelectingConfig BuildingCurves GeneratingDGD Done] <br />Optional: &#123;&#125; <br />

dgdName
string

DGDName is the name of the generated or created DynamoGraphDeployment. Validation: Optional: &#123;&#125; <br />

profilingJobName
string

ProfilingJobName is the name of the Kubernetes Job running the profiler. Validation: Optional: &#123;&#125; <br />

conditions
Condition array

Conditions contains the latest observed conditions of the deployment request.<br />Standard condition types include: Succeeded, Validation, Profiling, SpecGenerated, DeploymentReady. See Condition. Validation: Optional: &#123;&#125; <br />

profilingResults
ProfilingResultsStatus

ProfilingResults contains the selected deployment configuration produced by profiling.<br />Deprecated compatibility fields may remain on objects created by older releases. See ProfilingResultsStatus. Validation: Optional: &#123;&#125; <br />

deploymentInfo
DeploymentInfoStatus

DeploymentInfo tracks the state of the deployed DynamoGraphDeployment.<br />Populated when a DGD has been created (either via autoApply or manually). See DeploymentInfoStatus. Validation: Optional: &#123;&#125; <br />

observedGeneration
integer

ObservedGeneration is the most recent generation observed by the controller. Validation: Optional: &#123;&#125; <br />

DynamoGraphDeploymentScalingAdapter provides a scaling interface for individual components within a DynamoGraphDeployment. It implements the Kubernetes scale subresource, enabling integration with HPA, KEDA, and custom autoscalers.

The adapter acts as an intermediary between autoscalers and the DGD, ensuring that only the adapter controller modifies the DGD’s component replicas. This prevents conflicts when multiple autoscaling mechanisms are in play.

v1alpha1 remains the storage version; conversion between served versions is handled by the operator’s conversion webhook (see api/v1alpha1/dynamographdeploymentscalingadapter_conversion.go).

Kind: resource

apiVersion
string

nvidia.com/v1beta1

kind
string

DynamoGraphDeploymentScalingAdapter

metadata
ObjectMeta

Refer to Kubernetes API documentation for fields of metadata. See ObjectMeta.

spec
DynamoGraphDeploymentScalingAdapterSpec
status
DynamoGraphDeploymentScalingAdapterStatus

DynamoGraphDeploymentScalingAdapterSpec defines the desired state of a DynamoGraphDeploymentScalingAdapter.

Kind: type Appears in: DynamoGraphDeploymentScalingAdapter

replicas
integerRequired

replicas is the desired number of replicas for the target component.<br />This field is modified by external autoscalers (HPA/KEDA/Planner) or<br />manually by users. Validation: Minimum: 0 <br />Required: &#123;&#125; <br />

dgdRef
DynamoGraphDeploymentComponentRefRequired

dgdRef references the DynamoGraphDeployment and the specific component to scale. See DynamoGraphDeploymentComponentRef. Validation: Required: &#123;&#125; <br />

DynamoGraphDeploymentScalingAdapterStatus defines the observed state of a DynamoGraphDeploymentScalingAdapter.

Kind: type Appears in: DynamoGraphDeploymentScalingAdapter

replicas
integer

replicas is the current number of replicas for the target component.<br />This is synced from the DGD’s component replicas and is required for<br />the scale subresource.

selector
string

selector is a label selector string for the pods managed by this<br />adapter. Required for HPA compatibility via the scale subresource. Validation: Optional: &#123;&#125; <br />

lastScaleTime
Time

lastScaleTime is the last time the adapter scaled the target component. See Time. Validation: Optional: &#123;&#125; <br />

DynamoGraphDeploymentSpec defines the desired state of a DynamoGraphDeployment.

Kind: type Appears in: DynamoGraphDeployment

annotations
object (keys:string, values:string)

annotations to propagate to all child resources (PCS, DCD, Deployments,<br />and pod templates). Component-level (podTemplate) values take precedence<br />on conflict. Validation: Optional: &#123;&#125; <br />

labels
object (keys:string, values:string)

labels to propagate to all child resources. Same precedence rules as annotations. Validation: Optional: &#123;&#125; <br />

priorityClassName
string

priorityClassName is the name of the PriorityClass to use for Grove PodCliqueSets.<br />Requires the Grove pathway. Validation: Optional: &#123;&#125; <br />

components
DynamoComponentDeploymentSharedSpec array

components are the components deployed as part of this graph. Each entry<br />carries its own stable logical name, and names must be unique within<br />the list. Component types are generally repeatable, except type: epp<br />which may appear at most once. See DynamoComponentDeploymentSharedSpec. Validation: MaxItems: 25 <br />Optional: &#123;&#125; <br />

env
EnvVar array

env is prepended to every component’s environment. Component-specific<br />env entries with the same name take precedence and may reference values<br />from this list. See EnvVar. Validation: Optional: &#123;&#125; <br />

backendFramework
string

backendFramework specifies the backend framework (e.g. “sglang”, “vllm”, “trtllm”). Validation: Enum: [sglang vllm trtllm] <br />

restart
Restart

restart specifies the restart policy for the graph deployment. See Restart. Validation: Optional: &#123;&#125; <br />

topologyConstraint
SpecTopologyConstraint

topologyConstraint is the deployment-level topology constraint. When<br />set, spec.topologyConstraint.clusterTopologyName names the ClusterTopology<br />CR to use. spec.topologyConstraint.packDomain is optional at this<br />level and can be omitted when only components carry constraints.<br />Components without their own topologyConstraint inherit from this value. See SpecTopologyConstraint. Validation: Optional: &#123;&#125; <br />

experimental
DynamoGraphDeploymentExperimentalSpec

experimental groups graph-level preview features whose API shape and<br />behavior may change in breaking ways between v1beta1 releases. See DynamoGraphDeploymentExperimentalSpec. Validation: Optional: &#123;&#125; <br />

DynamoGraphDeploymentStatus defines the observed state of a DynamoGraphDeployment. Unchanged between v1alpha1 and v1beta1.

Kind: type Appears in: DynamoGraphDeployment

observedGeneration
integer

observedGeneration is the most recent generation observed by the controller. Validation: Optional: &#123;&#125; <br />

state
DGDStateDefaults to initializing

state is a high-level textual status of the graph deployment lifecycle. See DGDState. Validation: Enum: [initializing pending successful failed] <br />

conditions
Condition array

conditions contains the latest observed conditions of the graph deployment.<br />Merged by type on patch updates. See Condition. Validation: Optional: &#123;&#125; <br />

components
object (keys:string, values:ComponentReplicaStatus)

components contains per-component replica status information, keyed by component name. See ComponentReplicaStatus. Validation: Optional: &#123;&#125; <br />

restart
RestartStatus

restart contains the status of a graph-level restart. See RestartStatus. Validation: Optional: &#123;&#125; <br />

checkpoints
object (keys:string, values:ComponentCheckpointStatus)

checkpoints contains per-component checkpoint status, keyed by component name. See ComponentCheckpointStatus. Validation: Optional: &#123;&#125; <br />

rollingUpdate
RollingUpdateStatus

rollingUpdate tracks the progress of operator-managed rolling updates.<br />Currently only supported for single-node, non-Grove deployments (DCD/Deployment). See RollingUpdateStatus. Validation: Optional: &#123;&#125; <br />

placement
PlacementStatus

placement groups DGD-level scheduler placement signals (score, reporting<br />state, and any future placement fields). See PlacementStatus. Validation: Optional: &#123;&#125; <br />

EPPConfig contains configuration for EPP (Endpoint Picker Plugin) components.

Kind: type Appears in: DynamoComponentDeploymentSharedSpec, DynamoComponentDeploymentSpec

configMapRef
ConfigMapKeySelector

configMapRef references a user-provided ConfigMap containing EPP<br />configuration. Mutually exclusive with config. See ConfigMapKeySelector. Validation: Optional: &#123;&#125; <br />

config
EndpointPickerConfig

config allows specifying EPP EndpointPickerConfig directly as a<br />structured object. The operator marshals this to YAML and creates a<br />ConfigMap automatically. Mutually exclusive with configMapRef. One of<br />configMapRef or config must be specified. Validation: Type: object <br />Optional: &#123;&#125; <br />

ExperimentalSpec groups opt-in preview features whose API shape and behavior may change in breaking ways between v1beta1 releases (including disappearing without a name-preserving graduation path). Fields placed under experimental are explicitly NOT covered by the normal v1beta1 deprecation policy and should not be relied on for production workloads. Features graduate out of this block (and become first-class fields on the shared spec) once their API is considered stable.

Kind: type Appears in: DynamoComponentDeploymentSharedSpec, DynamoComponentDeploymentSpec

gpuMemoryService
GPUMemoryServiceSpec

gpuMemoryService configures the GPU Memory Service (GMS). When set, GPU<br />access for GMS clients is managed via DRA. See GPUMemoryServiceSpec. Validation: Optional: &#123;&#125; <br />

failover
FailoverSpec

failover configures active-passive GPU failover for this component.<br />Requires gpuMemoryService to also be set, and failover.mode must<br />match gpuMemoryService.mode (enforced by the validation webhook). See FailoverSpec. Validation: Optional: &#123;&#125; <br />

checkpoint
ComponentCheckpointConfig

checkpoint configures container-image snapshotting and restore for<br />this component. Set checkpoint.enabled: true to opt in. Without<br />checkpointRef, the DGD controller creates a DGD-scoped DynamoCheckpoint<br />CR and later restores pods in the same DGD generation from that<br />checkpoint. With checkpointRef, the DGD restores from that existing<br />checkpoint instead. The user-facing shape of this field is still settling,<br />which is why it lives under experimental in v1beta1 instead of at the<br />top level. See ComponentCheckpointConfig. Validation: Optional: &#123;&#125; <br />

FailoverSpec configures active-passive failover for a worker component. The main container is cloned into two engine containers (active + standby) sharing GPUs via DRA, and the standby acquires the flock when the active engine fails. Failover requires that gpuMemoryService is also set, and that failover.mode matches gpuMemoryService.mode. Also requires the nvidia.com/dynamo-kube-discovery-mode: container annotation on the DGD. See ExperimentalSpec for the stability caveat.

Kind: type Appears in: ExperimentalSpec

mode
GPUMemoryServiceModeDefaults to IntraPod

mode selects the failover deployment topology. Must match<br />spec.experimental.gpuMemoryService.mode (or<br />spec.components[*].experimental.gpuMemoryService.mode inside a<br />DynamoGraphDeployment). See GPUMemoryServiceMode. Validation: Enum: [IntraPod InterPod] <br />Optional: &#123;&#125; <br />

numShadows
integerDefaults to 1

numShadows is the number of shadow (standby) engine containers per<br />rank. Reserved for future use; the operator currently creates exactly<br />one shadow. Validation: Maximum: 1 <br />Minimum: 1 <br />Optional: &#123;&#125; <br />

FeaturesSpec controls optional Dynamo platform features in the generated deployment.

Kind: type Appears in: DynamoGraphDeploymentRequestSpec

planner
RawExtension

Planner contains the raw Planner configuration passed to the Planner service.<br />Its schema is defined by dynamo.planner.config.planner_config.PlannerConfig.<br />See Planner Guide.<br />DGDR passes this object through without field-level validation; the Planner<br />service validates it at startup.<br />The presence of this field (non-null) enables the planner in the generated DGD. See RawExtension. Validation: Type: object <br />Optional: &#123;&#125; <br />

mocker
MockerSpec

Mocker configures the simulated (mocker) backend for testing without GPUs. See MockerSpec. Validation: Optional: &#123;&#125; <br />

GMSClientPodSpec declares an additional GMS client pod for inter-pod GMS.

Kind: type Appears in: GPUMemoryServiceSpec

name
string

name identifies this client pod. Validation: MaxLength: 63 <br />MinLength: 1 <br />Pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$ <br />

podTemplate
PodTemplateSpec

podTemplate configures the pod to run as a GMS client. See PodTemplateSpec. Validation: Schemaless: &#123;&#125; <br />Type: object <br />

GPUMemoryServiceMode selects the GMS deployment topology.

Kind: enum Underlying type: string Appears in: FailoverSpec, GPUMemoryServiceSpec

Allowed values

  • IntraPod GMSModeIntraPod runs GMS as a sidecar within the same pod.<br />
  • InterPod GMSModeInterPod runs GMS as rank-local pods that share GPUs through DRA.<br />Extra client pod rendering is reserved for a follow-up change.<br />

GPUMemoryServiceSpec configures the GPU Memory Service (GMS) for a worker component. The operator injects GMS wiring and replaces the main container’s GPU resources with a DRA ResourceClaim for shared GPU access. See ExperimentalSpec for the stability caveat.

Kind: type Appears in: ExperimentalSpec

mode
GPUMemoryServiceModeDefaults to IntraPod

mode selects the GMS deployment topology. See GPUMemoryServiceMode. Validation: Enum: [IntraPod InterPod] <br />Optional: &#123;&#125; <br />

deviceClassName
stringDefaults to gpu.nvidia.com

deviceClassName is the DRA DeviceClass to request GPUs from. Validation: Optional: &#123;&#125; <br />

extraClientContainers
string array

extraClientContainers lists additional user-declared containers that should<br />be wired as GMS clients in service pods. Checkpoint Job clients are declared<br />under checkpoint.job.gmsClientContainers. In each rendered pod, only<br />matching container names are wired; absent names are ignored. Validation: items:MaxLength: 63 <br />items:MinLength: 1 <br />items:Pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$ <br />Optional: &#123;&#125; <br />

extraClientPods
GMSClientPodSpec array

extraClientPods declares additional GMS client pods for inter-pod GMS. This field is<br />reserved for future use and is rejected until inter-pod client orchestration is wired. See GMSClientPodSpec. Validation: Optional: &#123;&#125; <br />

GPUSKUType is the AIC hardware system identifier for a supported GPU.

Kind: enum Underlying type: string Validation: Enum: [gb200_sxm gb10 b200_sxm h200_sxm h100_sxm h100_pcie a100_sxm a100_pcie a30 l40s l40 l4 v100_sxm v100_pcie t4 mi200 mi300] Appears in: HardwareSpec

Allowed values

  • gb200_sxm --- Blackwell ---<br />
  • gb10
  • b200_sxm
  • h200_sxm --- Hopper ---<br />
  • h100_sxm
  • h100_pcie
  • a100_sxm --- Ampere ---<br />
  • a100_pcie
  • a30
  • l40s --- Ada ---<br />
  • l40
  • l4
  • v100_sxm --- Older NVIDIA ---<br />
  • v100_pcie
  • t4
  • mi200 --- AMD ---<br />
  • mi300

HardwareSpec describes the GPU hardware for profiling and deployment. All fields are auto-detected from cluster GPU nodes when omitted (requires cluster-wide mode with GPU discovery enabled). gpuSku is a selector (restricts which nodes are considered); the other fields are pure overrides passed to the profiler. If all four fields are set, discovery is skipped.

Kind: type Appears in: DynamoGraphDeploymentRequestSpec

gpuSku
GPUSKUType

GPUSKU selects the GPU type to target.<br />When omitted, auto-detected by selecting the GPU with the highest<br />node count, then highest VRAM. In mixed-GPU clusters, set this to<br />choose which GPU type to use. Discovery and totalGpus are then<br />restricted to nodes matching this SKU. See GPUSKUType. Validation: Enum: [gb200_sxm gb10 b200_sxm h200_sxm h100_sxm h100_pcie a100_sxm a100_pcie a30 l40s l40 l4 v100_sxm v100_pcie t4 mi200 mi300] <br />Optional: &#123;&#125; <br />

vramMb
float

VRAMMB is the VRAM per GPU in MiB.<br />When omitted, auto-detected from cluster GPU nodes. Validation: Optional: &#123;&#125; <br />

totalGpus
integer

TotalGPUs is the GPU budget for profiling and deployment.<br />The profiler uses this to determine parallelism and replica count.<br />When omitted, computed by counting GPUs on discovered nodes<br />(filtered by gpuSku when set), temporarily capped at 32 to<br />limit profiler search space. This cap may be removed in a future<br />release. Set this field explicitly to override. Validation: Optional: &#123;&#125; <br />

numGpusPerNode
integer

NumGPUsPerNode is the number of GPUs per node.<br />When omitted, auto-detected from cluster GPU nodes. Validation: Optional: &#123;&#125; <br />

interconnect
string

Interconnect describes the primary GPU-to-GPU interconnect within a node.<br />Semantics / usage:<br /> - This is capability metadata used for profiling, planning, and deployment decisions.<br /> - It does NOT configure or enable any GPU interconnect; it only describes what is available/assumed.<br /> - When omitted, the operator may attempt best-effort discovery (currently distinguishes “nvlink”<br /> vs “pcie” based on DCGM NVLink link count). If discovery is unavailable, it may remain empty.<br />Impact of wrong / missing values:<br /> - If set more optimistically than reality (e.g., “nvlink” when only PCIe is present), performance<br /> models may overestimate intra-node bandwidth and choose overly aggressive parallelism or layouts,<br /> resulting in degraded performance compared to expectations.<br /> - If set more pessimistically than reality (e.g., “pcie” when NVLink is present), the system may<br /> choose conservative plans and leave performance on the table.<br /> - If unset and undiscovered, consumers should treat the interconnect as unknown and fall back to<br /> conservative assumptions.<br />Example values: “pcie”, “nvlink”. Other values may be accepted but may not be auto-detected. Validation: Optional: &#123;&#125; <br />

rdma
boolean

RDMA indicates whether the cluster has RDMA-capable networking available for Dynamo data movement.<br />Semantics / usage:<br /> - This is capability metadata used for profiling, planning, and deployment decisions.<br /> - It does NOT install, enable, or configure RDMA (e.g., drivers, SR-IOV, NVIDIA network operator,<br /> GPUDirect settings). It only expresses availability/intent.<br /> - When omitted, the operator may attempt best-effort discovery (e.g., via node labels indicating<br /> RDMA/SR-IOV capability and/or presence of NVIDIA network-operator RDMA components). If discovery<br /> is unavailable, it may remain unset.<br />Impact of wrong / missing values:<br /> - False positive (set true when RDMA is not actually usable end-to-end) may cause plans or<br /> deployments to assume RDMA is available; depending on the runtime transport selection and<br /> fallback behavior, this can lead to connection/setup failures or performance regressions.<br /> - False negative (set false when RDMA is available) will typically avoid RDMA-optimized paths and<br /> fall back to non-RDMA transports, usually remaining functional but potentially slower.<br /> - If unset and undiscovered, consumers should treat RDMA availability as unknown and use<br /> conservative defaults / fallback transports. Validation: Optional: &#123;&#125; <br />

KvTransferEnforcement controls how the selected prefill worker’s topology is applied to decode routing.

Kind: enum Underlying type: string Validation: Enum: [required preferred] Appears in: KvTransferPolicy

Allowed values

  • required KvTransferEnforcementRequired enforces same-domain decode worker<br />selection.<br />
  • preferred KvTransferEnforcementPreferred biases decode worker selection toward the<br />same domain.<br />

KvTransferPolicy configures topology-aware routing for KV-cache transfers between prefill and decode workers. This is a graph-wide concern placed under spec.experimental while the API is incubating.

Kind: type Appears in: DynamoGraphDeploymentExperimentalSpec

clusterTopologyName
string

clusterTopologyName references a Grove ClusterTopology CR. The operator<br />reads the CR’s topology levels and projects them through Dynamo-owned pod<br />labels for worker topology metadata. Validation: MinLength: 1 <br />Optional: &#123;&#125; <br />

labelKey
string

labelKey is a Kubernetes node label key (e.g.<br />“topology.kubernetes.io/zone”) whose value identifies the topology<br />domain for each worker. The operator copies the node label onto worker<br />pods so the runtime can publish it as worker metadata. The label<br />should correspond to the topology level named in domain. Validation: MaxLength: 317 <br />MinLength: 1 <br />Pattern: ^(([a-z0-9]([-a-z0-9]\{0,61\}[a-z0-9])?)(\.[a-z0-9]([-a-z0-9]\{0,61\}[a-z0-9])?)*/)?([A-Za-z0-9]([-A-Za-z0-9_.]\{0,61\}[A-Za-z0-9])?)$ <br />Optional: &#123;&#125; <br />

domain
TopologyDomain

domain is the logical name for the topology level to enforce<br />(e.g. “zone”, “rack”). The router uses this to match workers that<br />share the same value for the label identified by labelKey. See TopologyDomain. Validation: Pattern: ^[a-z0-9]([a-z0-9-]*[a-z0-9])?$ <br />

enforcement
KvTransferEnforcementDefaults to required

enforcement controls how the selected prefill worker’s topology is<br />applied to decode routing. “required” only allows decode workers in the<br />same topology domain as the selected prefill worker. “preferred” keeps<br />all decode workers eligible, but biases selection toward workers in the<br />same topology domain. Defaults to “required”. See KvTransferEnforcement. Validation: Enum: [required preferred] <br />Optional: &#123;&#125; <br />

preferredWeight
float

preferredWeight is required and used only when enforcement is<br />“preferred”. Higher values create a stronger same-domain routing<br />preference, but do not guarantee same-domain selection. The value is not<br />a probability; worker selection still depends on load and other routing<br />inputs. A value of 0 disables the topology preference; 1 is the strongest<br />supported preference. Validation: Maximum: 1 <br />Minimum: 0 <br />Optional: &#123;&#125; <br />

MockerSpec configures the simulated (mocker) backend.

Kind: type Appears in: FeaturesSpec

enabled
boolean

Enabled indicates whether to deploy mocker workers instead of real inference workers.<br />Useful for large-scale testing without GPUs. Validation: Optional: &#123;&#125; <br />

ModelCacheSpec references a PVC containing pre-downloaded model weights.

Kind: type Appears in: DynamoGraphDeploymentRequestSpec

pvcName
string

PVCName is the name of the PersistentVolumeClaim containing model weights.<br />The PVC must exist in the same namespace as the DGDR. Validation: Optional: &#123;&#125; <br />

pvcModelPath
string

PVCModelPath is the path to the model checkpoint directory within the PVC<br />(e.g. “deepseek-r1” or “models/Llama-3.1-405B-FP8”). Validation: Optional: &#123;&#125; <br />

pvcMountPath
stringDefaults to /opt/model-cache

PVCMountPath is the mount path for the PVC inside the container. Validation: Optional: &#123;&#125; <br />

ModelReference identifies a model served by a component. When specified, a headless service is created for endpoint discovery.

Kind: type Appears in: DynamoComponentDeploymentSharedSpec, DynamoComponentDeploymentSpec

name
stringRequired

name is the base model identifier (e.g. “llama-3-70b-instruct-v1”). Validation: MinLength: 1 <br />Required: &#123;&#125; <br />

revision
string

revision is the model revision/version. Validation: Optional: &#123;&#125; <br />

MultinodeSpec configures a multinode component.

Kind: type Appears in: DynamoComponentDeploymentSharedSpec, DynamoComponentDeploymentSpec

nodeCount
integerDefaults to 2

nodeCount is the number of nodes to deploy for the multinode component.<br />Total GPUs used is nodeCount * container GPU request. Validation: Minimum: 2 <br />Optional: &#123;&#125; <br />

OptimizationType defines the optimization target for SLA-based profiling.

Kind: enum Underlying type: string Validation: Enum: [latency throughput] Appears in: SLASpec

Allowed values

  • latency
  • throughput

OverridesSpec allows customizing the profiling job and the generated DynamoGraphDeployment.

Kind: type Appears in: DynamoGraphDeploymentRequestSpec

profilingJob
JobSpec

ProfilingJob allows overriding the profiling Job specification.<br />Fields set here are merged into the controller-generated Job spec. See JobSpec. Validation: Optional: &#123;&#125; <br />

dgd
RawExtension

DGD provides a partial, versioned DynamoGraphDeployment override for the<br />profiler-generated deployment. Set apiVersion to nvidia.com/v1alpha1 or<br />nvidia.com/v1beta1 and kind to DynamoGraphDeployment.<br />The profiler merges the override using the schema for its declared version.<br />If the generated DGD uses another supported version, the complete DGD is<br />converted before the merge and converted back afterward. The final DGD<br />selected or created by a DGDR is nvidia.com/v1beta1.<br />The override can update DGD fields, but topology entries are limited to<br />services or components already present in the generated DGD. Metadata labels<br />and annotations are merged, metadata.name selects the final DGD name, and<br />other identity or runtime metadata is ignored.<br />V1alpha1 worker argument lists retain legacy append behavior. V1beta1 follows<br />structural schema merge behavior, including map-list merging and atomic-list<br />replacement.<br />The raw embedded resource preserves either supported schema. The API server<br />validates that it has apiVersion and kind; override processing validates the<br />DGD kind, supported version, and field schema. See RawExtension. Validation: EmbeddedResource: &#123;&#125; <br />Optional: &#123;&#125; <br />

ParetoConfig is retained for compatibility with status objects produced by older profiler releases. Deprecated: The profiler no longer generates Pareto configurations.

Kind: type Appears in: ProfilingResultsStatus

config
RawExtension

Config is the full deployment configuration for this Pareto point. See RawExtension. Validation: Type: object <br />

PlacementScoreState describes whether placement score is available and how complete the reported score is for a graph deployment.

Every backend must set this field after the first reconciliation:

  • Reported: a score is available for every scored placement unit.
  • Partial: a score is available for some but not all placement units.
  • Unsupported: the backend does not surface a placement score at all.
  • Unknown: the backend supports scores but the current value is indeterminate (e.g. read failure, not yet populated by the scheduler). When set, PlacementStatus.Score must be cleared.

Kind: enum Underlying type: string Validation: Enum: [Reported Partial Unsupported Unknown] Appears in: PlacementStatus

Allowed values

  • Reported
  • Partial
  • Unsupported
  • Unknown

PlacementStatus groups DGD-level scheduler placement fields under a single status object so future placement signals (e.g. scheduler contract version, last-report timestamp, per-unit reports) can be added without a schema break.

The score source is an open question in DEP #10064 (Grove mirror, typed Grove scheduler API, or unstructured provider). Until a source is selected and implemented, the DGD controller does not write this field; the schema and conversion are landed here so downstream consumers can rely on the shape.

Kind: type Appears in: DynamoGraphDeploymentStatus

score
float

score is the DGD-level scheduler placement score aggregated from<br />relevant scheduler placement units. Normalized to [0.0, 1.0] where higher<br />is better and 1.0 represents the best possible placement. Aggregation<br />uses the minimum across placement units so the value is a worst-placement<br />signal for the graph. Scores are only comparable across DGDs that share<br />the same scheduler scoring contract and version. Validation: Maximum: 1 <br />Minimum: 0 <br />Optional: &#123;&#125; <br />

state
PlacementScoreState

state indicates placement score reporting state. See PlacementScoreState<br />for the semantics of each value. See PlacementScoreState. Validation: Enum: [Reported Partial Unsupported Unknown] <br />Optional: &#123;&#125; <br />

ProfilingPhase represents a sub-phase within the profiling pipeline. When the DGDR Phase is “Profiling”, this value indicates which step of the profiling pipeline is currently executing.

Kind: enum Underlying type: string Validation: Enum: [Initializing SweepingPrefill SweepingDecode SelectingConfig BuildingCurves GeneratingDGD Done] Appears in: DynamoGraphDeploymentRequestStatus

Allowed values

  • Initializing Profiler is loading the DGD template, detecting GPU hardware,<br />and resolving the model architecture from HuggingFace.<br />
  • SweepingPrefill Sweeping parallelization strategies (TP/TEP/DEP) across GPU counts<br />for prefill, measuring TTFT at each configuration.<br />
  • SweepingDecode Sweeping parallelization strategies and concurrency levels<br />for decode, measuring ITL at each configuration.<br />
  • SelectingConfig Filtering results against SLA targets and selecting the most<br />cost-efficient configuration that meets TTFT/ITL requirements.<br />
  • BuildingCurves Building detailed interpolation curves (ISL→TTFT for prefill,<br />KV-usage×context-length→ITL for decode) using the selected configs.<br />
  • GeneratingDGD Packaging profiling data into a ConfigMap and generating<br />the final DGD YAML with planner integration.<br />
  • Done Profiling pipeline finished successfully.<br />

ProfilingResultsStatus contains the output of the profiling process.

Kind: type Appears in: DynamoGraphDeploymentRequestStatus

pareto
ParetoConfig array

Pareto is retained for compatibility with existing status objects.<br />Deprecated: The controller no longer populates this field. See ParetoConfig. Validation: Optional: &#123;&#125; <br />

selectedConfig
RawExtension

SelectedConfig is the recommended configuration chosen by the profiler<br />based on the SLA targets. This is the configuration used for deployment<br />when autoApply is true. See RawExtension. Validation: Type: object <br />Optional: &#123;&#125; <br />

Restart specifies the restart policy for a graph deployment.

Kind: type Appears in: DynamoGraphDeploymentSpec

id
stringRequired

id is an arbitrary string that triggers a restart when changed. Any<br />modification to this value initiates a restart of the graph deployment<br />according to the configured strategy. Validation: MinLength: 1 <br />Required: &#123;&#125; <br />

strategy
RestartStrategy

strategy specifies the restart strategy for the graph deployment. See RestartStrategy. Validation: Optional: &#123;&#125; <br />

RestartPhase enumerates phases of a graph-level restart.

Kind: enum Underlying type: string Appears in: RestartStatus

Allowed values

  • Pending
  • Restarting
  • Completed
  • Failed
  • Superseded

RestartStatus contains the status of a graph-level restart.

Kind: type Appears in: DynamoGraphDeploymentStatus

observedID
string

observedID is the restart ID currently being processed. Matches Restart.id in the spec.

phase
RestartPhase

phase is the phase of the restart. See RestartPhase.

inProgress
string array

inProgress contains the names of the components currently being restarted. Validation: Optional: &#123;&#125; <br />

RestartStrategy defines how components are restarted.

Kind: type Appears in: Restart

type
RestartStrategyTypeDefaults to Sequential

type specifies the restart strategy type. See RestartStrategyType. Validation: Enum: [Sequential Parallel] <br />Optional: &#123;&#125; <br />

order
string array

order is the complete ordered set of component names for sequential<br />restarts. Omit or leave empty to use the controller’s default order.<br />This field must not be set for parallel restarts. Validation: Optional: &#123;&#125; <br />

RestartStrategyType enumerates restart strategies.

Kind: enum Underlying type: string Appears in: RestartStrategy

Allowed values

  • Sequential
  • Parallel

RollingUpdatePhase represents the current phase of a rolling update.

Kind: enum Underlying type: string Validation: Enum: [Pending InProgress Completed Failed ] Appears in: RollingUpdateStatus

Allowed values

  • Pending
  • InProgress
  • Completed
  • Failed

RollingUpdateStatus tracks the progress of an operator-managed rolling update.

Kind: type Appears in: DynamoGraphDeploymentStatus

phase
RollingUpdatePhase

phase indicates the current phase of the rolling update. See RollingUpdatePhase. Validation: Enum: [Pending InProgress Completed Failed ] <br />Optional: &#123;&#125; <br />

startTime
Time

startTime is when the rolling update began. See Time. Validation: Optional: &#123;&#125; <br />

endTime
Time

endTime is when the rolling update completed (successfully or failed). See Time. Validation: Optional: &#123;&#125; <br />

updatedComponents
string array

updatedComponents is the list of components that have completed the<br />rolling update. Validation: Optional: &#123;&#125; <br />

SLASpec defines the service-level agreement targets for profiling optimization.

Kind: type Appears in: DynamoGraphDeploymentRequestSpec

ttft
float

TTFT is the Time To First Token target in milliseconds. Validation: Optional: &#123;&#125; <br />

itl
float

ITL is the Inter-Token Latency target in milliseconds. Validation: Optional: &#123;&#125; <br />

e2eLatency
float

E2ELatency is the target end-to-end request latency in milliseconds.<br />Alternative to specifying TTFT + ITL. Validation: Optional: &#123;&#125; <br />

optimizationType
OptimizationType

OptimizationType is the optimization target for SLA profiling.<br />Valid values: latency, throughput. See OptimizationType. Validation: Enum: [latency throughput] <br />Optional: &#123;&#125; <br />

ScalingAdapter opts a component into using the DynamoGraphDeploymentScalingAdapter (DGDSA). When scalingAdapter is set on a component (even as an empty object, scalingAdapter: {}), the DGDSA is created and owns the replicas field so that external autoscalers (HPA/KEDA/Planner) can drive scaling via the Scale subresource. Omitting the field opts the component out.

Kind: type Appears in: DynamoComponentDeploymentSharedSpec, DynamoComponentDeploymentSpec

SearchStrategy controls the profiling search depth.

Kind: enum Underlying type: string Validation: Enum: [rapid thorough] Appears in: DynamoGraphDeploymentRequestSpec

Allowed values

  • rapid
  • thorough

SpecTopologyConstraint defines deployment-level topology placement requirements.

Kind: type Appears in: DynamoGraphDeploymentSpec

clusterTopologyName
string

clusterTopologyName is the name of the ClusterTopology resource that<br />defines the topology hierarchy for this deployment. Validation: MinLength: 1 <br />

packDomain
TopologyDomain

packDomain is the default topology domain to pack pods within.<br />Optional; omit when only components carry constraints. See TopologyDomain. Validation: Pattern: ^[a-z0-9]([a-z0-9-]*[a-z0-9])?$ <br />Optional: &#123;&#125; <br />

TopologyConstraint defines component-level topology placement requirements. The topology profile is inherited from the deployment-level SpecTopologyConstraint.

Kind: type Appears in: DynamoComponentDeploymentSharedSpec, DynamoComponentDeploymentSpec

packDomain
TopologyDomain

packDomain is the topology domain to pack pods within. Must match a<br />domain defined in the referenced ClusterTopology CR. See TopologyDomain. Validation: Pattern: ^[a-z0-9]([a-z0-9-]*[a-z0-9])?$ <br />

TopologyDomain is a free-form topology level identifier. Common examples: “region”, “zone”, “datacenter”, “block”, “rack”, “host”, “numa”. When used with a ClusterTopology CR, domain names are defined in the CR’s hierarchy; when used with spec.experimental.kvTransferPolicy.labelKey alone, the value is a user-chosen logical name for the topology level.

Kind: type Underlying type: string Validation: Pattern: ^[a-z0-9]([a-z0-9-]*[a-z0-9])?$ Appears in: KvTransferPolicy, SpecTopologyConstraint, TopologyConstraint

WorkloadSpec defines the workload characteristics for SLA-based profiling.

Kind: type Appears in: DynamoGraphDeploymentRequestSpec

isl
integerDefaults to 4000

ISL is the Input Sequence Length (number of tokens). Validation: Optional: &#123;&#125; <br />

osl
integerDefaults to 1000

OSL is the Output Sequence Length (number of tokens). Validation: Optional: &#123;&#125; <br />

concurrency
float

Concurrency is the target concurrency level.<br />Required (or RequestRate) when the planner is disabled. Validation: Optional: &#123;&#125; <br />

requestRate
float

RequestRate is the target request rate (req/s).<br />Required (or Concurrency) when the planner is disabled. Validation: Optional: &#123;&#125; <br />

operator.config.dynamo.nvidia.com/v1alpha1

Resource Types

CertProvisionMode controls how webhook TLS certificates are managed.

Kind: enum Underlying type: string Appears in: WebhookServer

Allowed values

  • auto CertProvisionModeAuto uses the built-in cert-controller to generate and rotate certificates.<br />
  • manual CertProvisionModeManual expects certificates to be provided externally (e.g., cert-manager, admin).<br />

CheckpointConfiguration holds checkpoint/restore settings.

Kind: type Appears in: OperatorConfiguration

enabled
boolean

Enabled indicates if checkpoint functionality is enabled

seccomp
CheckpointSeccompConfiguration

Seccomp controls the localhost seccomp profile applied to checkpoint and<br />restore pods. A nil value means “use the default profile”; set<br />Seccomp.Disabled=true to disable seccomp injection entirely. See CheckpointSeccompConfiguration.

storage
CheckpointStorageConfiguration

Storage optionally configures the namespace-local checkpoint PVC that<br />workload pods mount. When omitted, the operator preserves the legacy<br />behavior of discovering storage from a snapshot-agent DaemonSet in the<br />workload namespace. See CheckpointStorageConfiguration.

cleanupImage
stringDefaults to busybox:1.36

CleanupImage is the image used by best-effort artifact cleanup Jobs for<br />automatically-created checkpoints. It must provide a POSIX shell and rm.

Deprecated: CheckpointOCIConfig is retained for compatibility and ignored by the current snapshot flow.

Kind: type Appears in: CheckpointStorageConfiguration

uri
string

URI is the legacy OCI URI (oci://registry/repository).

credentialsSecretRef
string

CredentialsSecretRef is the legacy docker config secret name.

CheckpointPVCConfig configures the namespace-local PVC mounted into checkpoint and restore workload pods.

Kind: type Appears in: CheckpointStorageConfiguration

pvcName
string

PVCName is the PVC name in each workload namespace.

basePath
string

BasePath is the mount path inside checkpoint and restore workload pods.

create
boolean

Create tells the operator to create the PVC in workload namespaces when<br />it is missing. When false, the PVC must already exist.

size
string

Size is the storage request used when Create is true.

storageClassName
string

StorageClassName is the optional StorageClass name used when Create is true.

accessMode
string

AccessMode is the PVC access mode used when Create is true.

Deprecated: CheckpointS3Config is retained for compatibility and ignored by the current snapshot flow.

Kind: type Appears in: CheckpointStorageConfiguration

uri
string

URI is the legacy S3 URI (s3://[endpoint/]bucket/prefix).

credentialsSecretRef
string

CredentialsSecretRef is the legacy credentials secret name.

CheckpointSeccompConfiguration controls the localhost seccomp profile applied to checkpoint and restore pods. The profile blocks io_uring syscalls (which CRIU cannot dump). Default behavior (zero-value substruct, or absent substruct) applies DefaultSeccompProfile. Set Disabled=true on OpenShift (custom localhost profiles require privileged SCC) or when using a CRIU build with io_uring support. Set Profile to override the default path.

Kind: type Appears in: CheckpointConfiguration

disabled
boolean

Disabled, when true, suppresses seccomp profile injection entirely.<br />Use this for clusters where custom localhost profiles are not allowed<br />(e.g. OpenShift’s restricted-v2 SCC) or for CRIU builds that handle<br />io_uring natively.

profile
string

Profile is the localhost seccomp profile path. Empty falls back to<br />DefaultSeccompProfile. Ignored when Disabled is true.

CheckpointStorageConfiguration configures checkpoint storage for operator pod mutations. Only PVC storage is implemented today.

Kind: type Appears in: CheckpointConfiguration

type
string

Type is the storage backend type. Only pvc is implemented today.

pvc
CheckpointPVCConfig

PVC configuration for pvc-based settings. See CheckpointPVCConfig.

s3
CheckpointS3Config

Deprecated: S3 is retained for compatibility and ignored. See CheckpointS3Config.

oci
CheckpointOCIConfig

Deprecated: OCI is retained for compatibility and ignored. See CheckpointOCIConfig.

DRAConfiguration holds Dynamic Resource Allocation (resource.k8s.io/v1) settings.

NOTE: auto-detection here only verifies that the resource.k8s.io/v1 API is registered on the apiserver (Kubernetes 1.34+). It does NOT verify that a GPU-specific DRA resource driver (e.g. nvidia/k8s-dra-driver-gpu) is installed, that its DeviceClass exists, or that node-level GPU drivers are compatible. An admin can use enabled: false to force-off DRA integration on clusters where the API is present but the GPU driver stack is not wired up — this makes the operator fail GMS / inter-pod failover admissions early with a clear error instead of letting pods Pend with a confusing “resourceclaim not found” at schedule time.

Kind: type Appears in: OperatorConfiguration

enabled
boolean

Enabled overrides auto-detection of the resource.k8s.io/v1 API.<br />nil = auto-detect. Setting true requires detection to also succeed (the<br />operator will exit at startup otherwise).

DiscoveryBackend is the type for the discovery backend.

Kind: enum Underlying type: string Appears in: DiscoveryConfiguration

Allowed values

  • kubernetes DiscoveryBackendKubernetes is the Kubernetes discovery backend<br />
  • etcd DiscoveryBackendEtcd is the etcd discovery backend<br />

DiscoveryConfiguration holds discovery backend settings.

Kind: type Appears in: OperatorConfiguration

backend
DiscoveryBackendDefaults to kubernetes

Backend is the discovery backend: “kubernetes” or “etcd” See DiscoveryBackend.

GPUConfiguration holds GPU discovery settings.

Kind: type Appears in: OperatorConfiguration

discoveryEnabled
booleanDefaults to true

DiscoveryEnabled indicates whether GPU discovery is enabled

GroveConfiguration holds Grove orchestrator settings.

Kind: type Appears in: OrchestratorConfiguration

enabled
boolean

Enabled overrides auto-detection. nil = auto-detect.

terminationDelay
DurationDefaults to 15m

TerminationDelay configures the termination delay for Grove PodCliqueSets See Duration.

InfrastructureConfiguration holds service mesh and backend addresses.

Kind: type Appears in: OperatorConfiguration

natsAddress
string

NATSAddress is the address of the NATS server

etcdAddress
string

ETCDAddress is the address of the etcd server

modelExpressURL
string

ModelExpressURL is the URL of the Model Express server to inject into all pods

prometheusEndpoint
string

PrometheusEndpoint is the URL of the Prometheus endpoint to use for metrics

IngressConfiguration holds ingress settings.

Kind: type Appears in: OperatorConfiguration

virtualServiceGateway
string

VirtualServiceGateway is the name of the Istio virtual service gateway

controllerClassName
string

ControllerClassName is the ingress controller class name

controllerTLSSecretName
string

ControllerTLSSecretName is the TLS secret for the ingress controller

hostSuffix
string

HostSuffix is the suffix for ingress hostnames

IstioMeshConfiguration holds Istio-specific mesh settings.

Kind: type Appears in: ServiceMeshConfiguration

tlsMode
string

TLSMode is the Istio TLS mode for DestinationRules.<br />Supported values: “DISABLE”, “SIMPLE”, “ISTIO_MUTUAL”, “MUTUAL”.<br />Defaults to “SIMPLE”.

insecureSkipVerify
boolean

InsecureSkipVerify skips TLS certificate verification in DestinationRules.<br />Defaults to true (matching upstream GAIE behavior with self-signed certs).

clientCertificate
string

ClientCertificate is the path (in the istio-proxy sidecar’s filesystem)<br />to the file holding the client-side TLS certificate used for mTLS.<br />REQUIRED when TLSMode is “MUTUAL”; ignored for other modes.

privateKey
string

PrivateKey is the path (in the istio-proxy sidecar’s filesystem) to the<br />file holding the client-side TLS private key used for mTLS.<br />REQUIRED when TLSMode is “MUTUAL”; ignored for other modes.

caCertificates
string

CaCertificates is the optional path (in the istio-proxy sidecar’s<br />filesystem) to the file holding CA certificates used to verify the<br />server certificate. Used only when TLSMode is “MUTUAL”; for other modes<br />the field is ignored.

KaiSchedulerConfiguration holds Kai-scheduler settings.

Kind: type Appears in: OrchestratorConfiguration

enabled
boolean

Enabled overrides auto-detection. nil = auto-detect.

LWSConfiguration holds LWS orchestrator settings.

Kind: type Appears in: OrchestratorConfiguration

enabled
boolean

Enabled overrides auto-detection. nil = auto-detect.

LeaderElectionConfiguration holds leader election settings.

Kind: type Appears in: OperatorConfiguration

enabled
booleanDefaults to false

Enabled enables leader election for controller manager

id
string

ID is the leader election resource identity

namespace
string

Namespace is the namespace for the leader election resource

LoggingConfiguration holds logging settings.

Kind: type Appears in: OperatorConfiguration

level
stringDefaults to info

Level is the log level (e.g., “info”, “debug”)

format
stringDefaults to json

Format is the log format (e.g., “json”, “text”)

MPIConfiguration holds MPI SSH secret settings.

Kind: type Appears in: OperatorConfiguration

sshSecretName
string

SSHSecretName is the name of the secret containing the SSH key for MPI

sshSecretNamespace
string

SSHSecretNamespace is the namespace where the MPI SSH secret is located

MetricsServer extends Server with secure serving option.

Kind: type Appears in: ServerConfiguration

bindAddress
string

BindAddress is the address the server binds to

port
integer

Port is the port the server listens on

secure
boolean

Secure enables secure serving for the metrics endpoint.<br />nil = default to true (secure by default).

NamespaceConfiguration determines operator namespace mode.

Kind: type Appears in: OperatorConfiguration

restricted
string

Restricted enables namespace-restricted mode for development and testing.<br />Namespace-restricted mode is not supported for production.

scope
NamespaceScopeConfiguration

Scope configures the namespace ownership claim in namespace-restricted mode. See NamespaceScopeConfiguration.

NamespaceScopeConfiguration configures the development/test namespace ownership claim.

Kind: type Appears in: NamespaceConfiguration

leaseDuration
DurationDefaults to 30s

LeaseDuration is the duration of namespace scope marker lease before expiration See Duration.

leaseRenewInterval
DurationDefaults to 10s

LeaseRenewInterval is the interval for renewing namespace scope marker lease See Duration.

OperatorConfiguration is the Schema for the operator configuration.

Kind: resource

apiVersion
string

operator.config.dynamo.nvidia.com/v1alpha1

kind
string

OperatorConfiguration

server
ServerConfiguration

Server configuration (metrics, health probes, webhooks) See ServerConfiguration.

leaderElection
LeaderElectionConfiguration

Leader election configuration See LeaderElectionConfiguration.

namespace
NamespaceConfiguration

Namespace configuration (restricted vs cluster-wide) See NamespaceConfiguration.

orchestrators
OrchestratorConfiguration

Orchestrator configuration with optional overrides See OrchestratorConfiguration.

dra
DRAConfiguration

DRA (Dynamic Resource Allocation) settings with optional override See DRAConfiguration.

infrastructure
InfrastructureConfiguration

Service mesh and infrastructure addresses See InfrastructureConfiguration.

ingress
IngressConfiguration

Ingress configuration See IngressConfiguration.

serviceMesh
ServiceMeshConfiguration

ServiceMesh configures automatic generation of service-mesh resources<br />(e.g., Istio DestinationRules) for EPP components. See ServiceMeshConfiguration.

rbac
RBACConfiguration

RBAC configuration for cross-namespace resource management (cluster-wide mode) See RBACConfiguration.

mpi
MPIConfiguration

MPI SSH secret configuration See MPIConfiguration.

checkpoint
CheckpointConfiguration

Checkpoint/restore configuration See CheckpointConfiguration.

discovery
DiscoveryConfiguration

Discovery backend configuration See DiscoveryConfiguration.

gpu
GPUConfiguration

GPU discovery configuration See GPUConfiguration.

logging
LoggingConfiguration

Logging configuration See LoggingConfiguration.

security
SecurityConfiguration

HTTP/2 and TLS settings See SecurityConfiguration.

OrchestratorConfiguration holds orchestrator override settings.

Kind: type Appears in: OperatorConfiguration

grove
GroveConfiguration

Grove orchestrator configuration See GroveConfiguration.

lws
LWSConfiguration

LWS orchestrator configuration See LWSConfiguration.

kaiScheduler
KaiSchedulerConfiguration

KaiScheduler configuration See KaiSchedulerConfiguration.

volcanoScheduler
VolcanoSchedulerConfiguration

VolcanoScheduler configuration See VolcanoSchedulerConfiguration.

RBACConfiguration holds RBAC settings for cluster-wide mode.

Kind: type Appears in: OperatorConfiguration

plannerClusterRoleName
string

PlannerClusterRoleName is the ClusterRole for planner

dgdrProfilingClusterRoleName
string

DGDRProfilingClusterRoleName is the ClusterRole for DGDR profiling jobs

eppClusterRoleName
string

EPPClusterRoleName is the ClusterRole for EPP

SecurityConfiguration holds HTTP/2 and TLS settings.

Kind: type Appears in: OperatorConfiguration

enableHTTP2
booleanDefaults to false

EnableHTTP2 enables HTTP/2 for metrics and webhook servers

Server holds a bind address and port.

Kind: type Appears in: MetricsServer, ServerConfiguration, WebhookServer

bindAddress
string

BindAddress is the address the server binds to

port
integer

Port is the port the server listens on

ServerConfiguration holds server bind addresses and ports.

Kind: type Appears in: OperatorConfiguration

metrics
MetricsServerDefaults to \{ bindAddress:0.0.0.0 port:8080 secure:true \}

Metrics server configuration See MetricsServer.

healthProbe
ServerDefaults to \{ bindAddress:0.0.0.0 port:8081 \}

Health probe server configuration See Server.

webhook
WebhookServerDefaults to \{ certDir:/tmp/k8s-webhook-server/serving-certs host:0.0.0.0 port:9443 \}

Webhook server configuration See WebhookServer.

ServiceMeshConfiguration holds service mesh integration settings. The operator uses this to generate mesh-specific resources (e.g., Istio DestinationRules) for EPP components so that sidecar proxies connect correctly without double-TLS issues.

Kind: type Appears in: OperatorConfiguration

enabled
boolean

Enabled overrides service mesh auto-detection. nil = auto-detect.

provider
string

Provider selects the service mesh implementation. Supported: “istio”, "".<br />Empty string disables service mesh resource generation.

istio
IstioMeshConfiguration

Istio holds Istio-specific settings. Only used when Provider is “istio”. See IstioMeshConfiguration.

VolcanoSchedulerConfiguration holds Volcano scheduler settings.

Kind: type Appears in: OrchestratorConfiguration

enabled
boolean

EXPERIMENTAL: Enabled controls Volcano scheduler integration for Grove PodCliqueSets.

WebhookServer extends Server with host and certificate directory.

Kind: type Appears in: ServerConfiguration

bindAddress
string

BindAddress is the address the server binds to

port
integer

Port is the port the server listens on

host
string

Host is the address the webhook server binds to

certDir
string

CertDir is the directory containing TLS certificates

certProvisionMode
CertProvisionModeDefaults to auto

CertProvisionMode controls certificate management: “auto” (built-in cert-controller) or “manual” (external) See CertProvisionMode.

secretName
stringDefaults to webhook-server-cert

SecretName is the name of the Kubernetes Secret holding webhook TLS certificates

serviceName
string

ServiceName is the name of the Kubernetes Service fronting the webhook server.<br />Used to generate certificate SANs. Set by the Helm chart.

Operator Default Values Injection

The Dynamo operator automatically applies default values to various fields when they are not explicitly specified in your deployments. These defaults include:

  • Health Probes: Startup, liveness, and readiness probes are configured differently for frontend, worker, and planner components. For example, worker components receive a startup probe with a 2-hour timeout (720 failures × 10 seconds) to accommodate long model loading times.

  • Security Context: All components receive fsGroup: 1000 by default to ensure proper file permissions for mounted volumes. This can be overridden via the extraPodSpec.securityContext field.

  • Shared Memory: All components receive an 8Gi shared memory volume mounted at /dev/shm by default (can be disabled or resized via the sharedMemory field).

  • Environment Variables: Components automatically receive environment variables like DYN_NAMESPACE, DYN_PARENT_DGD_K8S_NAME, DYNAMO_PORT, and backend-specific variables.

  • Pod Configuration: Default terminationGracePeriodSeconds of 60 seconds and restartPolicy: Always.

  • Autoscaling: When enabled without explicit metrics, defaults to CPU-based autoscaling with 80% target utilization.

  • Backend-Specific Behavior: For multinode deployments, probes are automatically modified or removed for worker nodes depending on the backend framework (VLLM, SGLang, or TensorRT-LLM).

Pod Specification Defaults

All components receive the following pod-level defaults unless overridden:

  • terminationGracePeriodSeconds: 60 seconds
  • restartPolicy: Always

Security Context

The operator automatically applies default security context settings to all components to ensure proper file permissions, particularly for mounted volumes:

  • fsGroup: 1000 - Sets the group ownership of mounted volumes and any files created in those volumes

This default ensures that non-root containers can write to mounted volumes (like model caches or persistent storage) without permission issues. The fsGroup setting is particularly important for:

  • Model downloads and caching
  • Compilation cache directories
  • Persistent volume claims (PVCs)
  • SSH key generation in multinode deployments

Overriding Security Context

To override the default security context, specify your own securityContext in the extraPodSpec of your component:

1services:
2 YourWorker:
3 extraPodSpec:
4 securityContext:
5 fsGroup: 2000 # Custom group ID
6 runAsUser: 1000
7 runAsGroup: 1000
8 runAsNonRoot: true

Important: When you provide any securityContext object in extraPodSpec, the operator will not inject any defaults. This gives you complete control over the security context, including the ability to run as root (by omitting runAsNonRoot or setting it to false).

OpenShift and Security Context Constraints

In OpenShift environments with Security Context Constraints (SCCs), you may need to omit explicit UID/GID values to allow OpenShift’s admission controllers to assign them dynamically:

1services:
2 YourWorker:
3 extraPodSpec:
4 securityContext:
5# # Omit fsGroup to let OpenShift assign it based on SCC
6# # OpenShift will inject the appropriate UID range

Alternatively, if you want to keep the default fsGroup: 1000 behavior and are certain your cluster allows it, you don’t need to specify anything - the operator defaults will work.

Shared Memory Configuration

Shared memory is enabled by default for all components:

  • Enabled: true (unless explicitly disabled via sharedMemory.disabled)
  • Size: 8Gi
  • Mount Path: /dev/shm
  • Volume Type: emptyDir with memory medium

To disable shared memory or customize the size, use the sharedMemory field in your component specification.

Health Probes by Component Type

The operator applies different default health probes based on the component type.

Frontend Components

Frontend components receive the following probe configurations:

Liveness Probe:

  • Type: HTTP GET
  • Path: /health
  • Port: http (8000)
  • Initial Delay: 60 seconds
  • Period: 60 seconds
  • Timeout: 30 seconds
  • Failure Threshold: 10

Readiness Probe:

  • Type: Exec command
  • Command: curl -s http://localhost:${DYNAMO_PORT}/health | jq -e ".status == \"healthy\""
  • Initial Delay: 60 seconds
  • Period: 60 seconds
  • Timeout: 30 seconds
  • Failure Threshold: 10

Worker Components

Worker components receive the following probe configurations:

Liveness Probe:

  • Type: HTTP GET
  • Path: /live
  • Port: system (9090)
  • Period: 5 seconds
  • Timeout: 30 seconds
  • Failure Threshold: 1

Readiness Probe:

  • Type: HTTP GET
  • Path: /health
  • Port: system (9090)
  • Period: 10 seconds
  • Timeout: 30 seconds
  • Failure Threshold: 60

Startup Probe:

  • Type: HTTP GET
  • Path: /live
  • Port: system (9090)
  • Period: 10 seconds
  • Timeout: 5 seconds
  • Failure Threshold: 720 (allows up to 2 hours for startup: 10s × 720 = 7200s)

:::{note} For larger models (typically >70B parameters) or slower storage systems, you may need to increase the failureThreshold to allow more time for model loading. Calculate the required threshold based on your expected startup time: failureThreshold = (expected_startup_seconds / period). Override the startup probe in your component specification if the default 2-hour window is insufficient. :::

Multinode Deployment Probe Modifications

For multinode deployments, the operator modifies probes based on the backend framework and node role:

VLLM Backend

The operator automatically applies distributed execution configuration based on parallelism settings:

Tensor/Pipeline Parallel Mode (Recommended) (when world_size > GPUs_per_node):

  • Uses PyTorch multiprocessing (mp) backend for distributed execution (--distributed-executor-backend mp)
  • Supports multi-node deployments with PyTorch’s native distributed initialization
  • All nodes: Run vLLM with proper --nnodes, --node-rank, --master-addr flags injected
  • Probes: Worker probes adjusted; leader probes remain active

Ray Backend:

  • Used for use cases such as Elastic EP
  • Install with pip install "ray>=2.55.0" and configure --distributed-executor-backend ray

Data Parallel Mode (when world_size × data_parallel_size > GPUs_per_node):

  • Worker nodes: All probes (liveness, readiness, startup) are removed
  • Leader nodes: All probes remain active
SGLang Backend
  • Worker nodes: All probes (liveness, readiness, startup) are removed
TensorRT-LLM Backend
  • Leader nodes: All probes remain unchanged
  • Worker nodes:
    • Liveness and startup probes are removed
    • Readiness probe is replaced with a TCP socket check on SSH port (2222):
      • Initial Delay: 20 seconds
      • Period: 20 seconds
      • Timeout: 5 seconds
      • Failure Threshold: 10

Environment Variables

The operator automatically injects environment variables into component containers based on component type, backend framework, and operator configuration. User-provided envs values always take precedence over operator defaults.

All Components

These environment variables are injected into every component container regardless of type.

VariablePurposeDefaultTypeSource
DYN_NAMESPACEDynamo service namespace used for service discovery and routingDerived from DGD specstringDownward API annotation on checkpoint-restored pods
DYN_COMPONENTIdentifies the component type for runtime behaviorOne of: frontend, worker, prefill, decode, planner, eppstringSet from component spec
DYN_PARENT_DGD_K8S_NAMEKubernetes name of the parent DynamoGraphDeployment resourcestringSet from DGD metadata
DYN_PARENT_DGD_K8S_NAMESPACEKubernetes namespace of the parent DynamoGraphDeployment resourcestringSet from DGD metadata
POD_NAMECurrent pod namestringDownward API (metadata.name)
POD_NAMESPACECurrent pod namespacestringDownward API (metadata.namespace)
POD_UIDCurrent pod UIDstringDownward API (metadata.uid)
DYN_DISCOVERY_BACKENDService discovery backend for inter-component communicationkubernetesstringOptions: kubernetes, etcd

Infrastructure (Conditional)

These are injected into all components when the corresponding infrastructure service is configured in the operator’s OperatorConfiguration.

VariablePurposeDefaultTypeCondition
NATS_SERVERNATS messaging server addressstringSet when infrastructure.natsAddress is configured
ETCD_ENDPOINTSetcd endpoint addresses for distributed statestringSet when infrastructure.etcdAddress is configured
MODEL_EXPRESS_URLModel Express service URL for model managementstringSet when infrastructure.modelExpressURL is configured
PROMETHEUS_ENDPOINTPrometheus endpoint for metrics collectionstringSet when infrastructure.prometheusEndpoint is configured

Frontend Components

VariablePurposeDefaultType
DYNAMO_PORTHTTP port the frontend listens on8000int
DYN_HTTP_PORTHTTP port for the frontend service (alias)8000int
DYN_NAMESPACE_PREFIXNamespace prefix used for frontend request routingSame as DYN_NAMESPACEstring

Worker Components

VariablePurposeDefaultType
DYN_SYSTEM_ENABLEDEnables the system HTTP server for health checks and metricstruestring (boolean)
DYN_SYSTEM_USE_ENDPOINT_HEALTH_STATUSEndpoints whose health status is used for readiness["generate"]string (JSON array)
DYN_SYSTEM_PORTPort for the system HTTP server (health, metrics)9090int
DYN_HEALTH_CHECK_ENABLEDDisables the legacy health check mechanism in favor of the system serverfalsestring (boolean)
NIXL_TELEMETRY_ENABLEEnables or disables NIXL telemetry collectionnstring
NIXL_TELEMETRY_EXPORTERTelemetry exporter format for NIXL metricsprometheusstring
NIXL_TELEMETRY_PROMETHEUS_PORTPort for NIXL Prometheus metrics endpoint19090int
DYN_NAMESPACE_WORKER_SUFFIXHash suffix appended to worker namespace for rolling updatesstring

Planner Components

VariablePurposeDefaultType
PLANNER_PROMETHEUS_PORTPort for the planner’s Prometheus metrics endpoint9085int

EPP (Endpoint Picker Plugin) Components

VariablePurposeDefaultType
USE_STREAMINGEnables streaming mode for inference request proxyingtruestring (boolean)
RUST_LOGRust log level and filter configurationinfostring

VLLM Backend

VariablePurposeDefaultTypeCondition
VLLM_CACHE_ROOTDirectory for vLLM compilation cache artifactsstringSet when a volume mount has useAsCompilationCache: true
VLLM_NIXL_SIDE_CHANNEL_HOSTHost IP for the NIXL side channel in multiprocessing modePod IPstringMultinode mp backend only (Downward API: status.podIP)

TensorRT-LLM Backend

VariablePurposeDefaultTypeCondition
OMPI_MCA_orte_keep_fqdn_hostnamesInstructs OpenMPI to preserve FQDN hostnames for inter-node communication1stringMultinode deployments only

Service Accounts

The following component types automatically receive dedicated service accounts:

  • Planner: planner-serviceaccount
  • EPP: epp-serviceaccount

Image Pull Secrets

The operator automatically discovers and injects image pull secrets for container images. When a component specifies a container image, the operator:

  1. Scans all Kubernetes secrets of type kubernetes.io/dockerconfigjson in the component’s namespace
  2. Extracts the docker registry server URLs from each secret’s authentication configuration
  3. Matches the container image’s registry host against the discovered registry URLs
  4. Automatically injects matching secrets as imagePullSecrets in the pod specification

This eliminates the need to manually specify image pull secrets for each component. The operator maintains an internal index of docker secrets and their associated registries, refreshing this index periodically.

To disable automatic image pull secret discovery for a specific component, add the following annotation:

1annotations:
2 nvidia.com/disable-image-pull-secret-discovery: "true"

Autoscaling Defaults

When autoscaling is enabled but no metrics are specified, the operator applies:

  • Default Metric: CPU utilization
  • Target Average Utilization: 80%

Port Configurations

Default container ports are configured based on component type:

Frontend Components

  • Port: 8000
  • Protocol: TCP
  • Name: http

Worker Components

  • Port: 9090 (system)
  • Protocol: TCP
  • Name: system
  • Port: 19090 (NIXL)
  • Protocol: TCP
  • Name: nixl

Planner Components

  • Port: 9085
  • Protocol: TCP
  • Name: metrics

EPP Components

  • Port: 9002 (gRPC)
  • Protocol: TCP
  • Name: grpc
  • Port: 9003 (gRPC health)
  • Protocol: TCP
  • Name: grpc-health
  • Port: 9090 (metrics)
  • Protocol: TCP
  • Name: metrics

Backend-Specific Configurations

VLLM

  • Ray Head Port: 6379 (for Ray-based multinode deployments)
  • MP Master Port: 29500 (for PyTorch distributed multinode TP/PP deployments with mp backend)
  • Data Parallel RPC Port: 13445 (for data parallel multinode deployments)

SGLang

  • Distribution Init Port: 29500 (for multinode deployments)

TensorRT-LLM

  • SSH Port: 2222 (for multinode MPI communication)
  • OpenMPI Environment: OMPI_MCA_orte_keep_fqdn_hostnames=1

Implementation Reference

For users who want to understand the implementation details or contribute to the operator, the default values described in this document are set in the following source files:

Notes

  • All these defaults can be overridden by explicitly specifying values in your DynamoComponentDeployment or DynamoGraphDeployment resources
  • User-specified probes (via livenessProbe, readinessProbe, or startupProbe fields) take precedence over operator defaults
  • For security context, if you provide any securityContext in extraPodSpec, no defaults will be injected, giving you full control
  • For multinode deployments, some defaults are modified or removed as described above to accommodate distributed execution patterns
  • The extraPodSpec.mainContainer field can be used to override probe configurations set by the operator

Raw generated Markdown source: docs/fern/kubernetes/api-reference.md