iferr:=ValidateRestorePodSpec(podSpec,storage,DefaultSeccompLocalhostProfile);err==nil||err.Error()!="restore target must have exactly one container, got 2"{
t.Fatalf("expected multi-container restore target to be rejected, got %v",err)
iferr:=ValidateRestorePodSpec(podSpec,storage,DefaultSeccompLocalhostProfile);err==nil||err.Error()!="restore target must include a worker container named main"{
t.Fatalf("expected multi-container restore target without main to be rejected, got %v",err)
| `identity` _[DynamoCheckpointIdentity](#dynamocheckpointidentity)_ | Identity defines the inputs that determine checkpoint equivalence | | Required: \{\}<br/> |
| `gpuMemoryService` _[GPUMemoryServiceSpec](#gpumemoryservicespec)_ | GPUMemoryService enables checkpoint-time GPU Memory Service wiring.<br/>It is intentionally outside spec.identity, so it does not affect the<br/>checkpoint identity hash or deduplication. | | Optional: \{\}<br/> |
| `job` _[DynamoCheckpointJobConfig](#dynamocheckpointjobconfig)_ | Job defines the configuration for the checkpoint creation Job | | Required: \{\}<br/> |
...
...
@@ -852,6 +853,7 @@ via DRA (Dynamic Resource Allocation). The sidecar runs two GMS processes per GP
If this checkpoint should capture and restore GPU Memory Service helpers, set:
```yaml
spec:
gpuMemoryService:
enabled:true
```
`spec.gpuMemoryService` is outside `spec.identity`, so it does not change the checkpoint identity hash.
For a full working example, see [deploy/operator/config/samples/nvidia.com_v1alpha1_dynamocheckpoint.yaml](https://github.com/ai-dynamo/dynamo/blob/main/deploy/operator/config/samples/nvidia.com_v1alpha1_dynamocheckpoint.yaml).
Apply it:
...
...
@@ -262,6 +272,8 @@ spec:
...
```
Auto mode only hashes `checkpoint.identity`. If you need GMS-specific checkpoint behavior, configure it on the `DynamoCheckpoint` object with `spec.gpuMemoryService.enabled`.