[test] Add case for existing driver on old csi node

The driver on the old object should not appear on the new one because it represented a different node
This commit is contained in:
Baptiste Girard-Carrabin
2025-10-23 10:44:55 +02:00
parent a14230ae82
commit 28507d0e92

View File

@@ -346,6 +346,45 @@ func TestInstallCSIDriver(t *testing.T) {
return csiNode
}(),
},
{
name: "pre-existing node info with driver, but owned by previous node",
existingNode: func() *v1.Node {
node := generateNode(nil /*nodeIDs*/, nil /*labels*/, nil /*capacity*/)
node.UID = types.UID("node1")
return node
}(),
existingCSINode: func() *storage.CSINode {
csiNode := generateCSINode(
nodeIDMap{
"com.example.csi.old-driver": "com.example.csi/csi-node2",
},
nil /*volumeLimits*/, nil, /*topologyKeys*/
)
csiNode.OwnerReferences[0].UID = types.UID("node2")
return csiNode
}(),
driverName: "com.example.csi.driver1",
inputNodeID: "com.example.csi/csi-node1",
expectedNode: &v1.Node{
ObjectMeta: metav1.ObjectMeta{
Name: "node1",
UID: types.UID("node1"),
Annotations: map[string]string{annotationKeyNodeID: marshall(nodeIDMap{"com.example.csi.driver1": "com.example.csi/csi-node1"})},
},
},
expectedCSINode: &storage.CSINode{
ObjectMeta: getCSINodeObjectMeta(),
Spec: storage.CSINodeSpec{
Drivers: []storage.CSINodeDriver{
{
// Only the new driver should be present because the old CSINode represented a previous node.
Name: "com.example.csi.driver1",
NodeID: "com.example.csi/csi-node1",
},
},
},
},
},
{
name: "nil topology, empty node",
driverName: "com.example.csi.driver1",