diff --git a/pkg/kubelet/cm/dra/state/state_checkpoint.go b/pkg/kubelet/cm/dra/state/state_checkpoint.go index 93fb573cf8b..78da262bcb9 100644 --- a/pkg/kubelet/cm/dra/state/state_checkpoint.go +++ b/pkg/kubelet/cm/dra/state/state_checkpoint.go @@ -51,9 +51,9 @@ type ClaimInfoState struct { // PodUIDs is a set of pod UIDs that reference a resource PodUIDs sets.Set[string] - // CDIDevices is a list of CDI devices returned by the + // CDIDevices is a map of KubeletPluginName --> CDI devices returned by the // GRPC API call NodePrepareResource - CDIDevices []string + CDIDevices map[string][]string } type stateCheckpoint struct { diff --git a/pkg/kubelet/cm/dra/state/state_checkpoint_test.go b/pkg/kubelet/cm/dra/state/state_checkpoint_test.go index f2617e71295..cd259a9283d 100644 --- a/pkg/kubelet/cm/dra/state/state_checkpoint_test.go +++ b/pkg/kubelet/cm/dra/state/state_checkpoint_test.go @@ -50,7 +50,7 @@ func TestCheckpointGetOrCreate(t *testing.T) { }, { "Restore valid checkpoint", - `{"version":"v1","entries":[{"DriverName":"test-driver.cdi.k8s.io","ClaimUID":"067798be-454e-4be4-9047-1aa06aea63f7","ClaimName":"example","Namespace":"default","PodUIDs":{"139cdb46-f989-4f17-9561-ca10cfb509a6":{}},"CDIDevices":["example.com/example=cdi-example"]}],"checksum":2242470059}`, + `{"version":"v1","entries":[{"DriverName":"test-driver.cdi.k8s.io","ClaimUID":"067798be-454e-4be4-9047-1aa06aea63f7","ClaimName":"example","Namespace":"default","PodUIDs":{"139cdb46-f989-4f17-9561-ca10cfb509a6":{}},"CDIDevices":{"test-driver.cdi.k8s.io":["example.com/example=cdi-example"]}}],"checksum":1988120167}`, "", []ClaimInfoState{{ DriverName: "test-driver.cdi.k8s.io", @@ -58,13 +58,15 @@ func TestCheckpointGetOrCreate(t *testing.T) { ClaimName: "example", Namespace: "default", PodUIDs: sets.New("139cdb46-f989-4f17-9561-ca10cfb509a6"), - CDIDevices: []string{"example.com/example=cdi-example"}, + CDIDevices: map[string][]string{ + "test-driver.cdi.k8s.io": {"example.com/example=cdi-example"}, + }, }, }, }, { "Restore checkpoint with invalid checksum", - `{"version":"v1","entries":[{"DriverName":"test-driver.cdi.k8s.io","ClaimUID":"067798be-454e-4be4-9047-1aa06aea63f7","ClaimName":"example","Namespace":"default","PodUIDs":{"139cdb46-f989-4f17-9561-ca10cfb509a6":{}},"CDIDevices":["example.com/example=cdi-example"]}],"checksum":2242470060}`, + `{"version":"v1","entries":[{"DriverName":"test-driver.cdi.k8s.io","ClaimUID":"067798be-454e-4be4-9047-1aa06aea63f7","ClaimName":"example","Namespace":"default","PodUIDs":{"139cdb46-f989-4f17-9561-ca10cfb509a6":{}},"CDIDevices":{"test-driver.cdi.k8s.io":["example.com/example=cdi-example"]}}],"checksum":1988120168}`, "checkpoint is corrupted", []ClaimInfoState{}, }, @@ -123,10 +125,12 @@ func TestCheckpointStateStore(t *testing.T) { ClaimName: "example", Namespace: "default", PodUIDs: sets.New("139cdb46-f989-4f17-9561-ca10cfb509a6"), - CDIDevices: []string{"example.com/example=cdi-example"}, + CDIDevices: map[string][]string{ + "test-driver.cdi.k8s.io": {"example.com/example=cdi-example"}, + }, } - expectedCheckpoint := `{"version":"v1","entries":[{"DriverName":"test-driver.cdi.k8s.io","ClaimUID":"067798be-454e-4be4-9047-1aa06aea63f7","ClaimName":"example","Namespace":"default","PodUIDs":{"139cdb46-f989-4f17-9561-ca10cfb509a6":{}},"CDIDevices":["example.com/example=cdi-example"]}],"checksum":2242470059}` + expectedCheckpoint := `{"version":"v1","entries":[{"DriverName":"test-driver.cdi.k8s.io","ClaimUID":"067798be-454e-4be4-9047-1aa06aea63f7","ClaimName":"example","Namespace":"default","PodUIDs":{"139cdb46-f989-4f17-9561-ca10cfb509a6":{}},"CDIDevices":{"test-driver.cdi.k8s.io":["example.com/example=cdi-example"]}}],"checksum":1988120167}` // create temp dir testingDir, err := os.MkdirTemp("", "dramanager_state_test")