Skip to content

Commit 0f8b166

Browse files
authored
Merge pull request #1262 from jsafrane/bump-spec-1.10
Bump CSI spec 1.10
2 parents 46212fd + d794397 commit 0f8b166

File tree

24 files changed

+11001
-4553
lines changed

24 files changed

+11001
-4553
lines changed

cmd/csi-provisioner/csi-provisioner.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -318,7 +318,7 @@ func main() {
318318
if err != nil {
319319
klog.Fatalf("Failed to get node info from CSI driver: %v", err)
320320
}
321-
nodeDeployment.NodeInfo = *nodeInfo
321+
nodeDeployment.NodeInfo = nodeInfo
322322
}
323323

324324
var nodeLister listersv1.NodeLister

go.mod

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,13 @@ module github.com/kubernetes-csi/external-provisioner/v5
33
go 1.22.5
44

55
require (
6-
github.com/container-storage-interface/spec v1.9.0
6+
github.com/container-storage-interface/spec v1.10.0
77
github.com/golang/mock v1.6.0
88
github.com/google/gofuzz v1.2.0 // indirect
99
github.com/google/uuid v1.6.0 // indirect
1010
github.com/imdario/mergo v0.3.16 // indirect
1111
github.com/kubernetes-csi/csi-lib-utils v0.19.0
12-
github.com/kubernetes-csi/csi-test/v5 v5.2.0
12+
github.com/kubernetes-csi/csi-test/v5 v5.3.1
1313
github.com/kubernetes-csi/external-snapshotter/client/v6 v6.3.0
1414
github.com/miekg/dns v1.1.62 // indirect
1515
github.com/prometheus/client_golang v1.19.1
@@ -31,6 +31,7 @@ require (
3131
)
3232

3333
require (
34+
github.com/google/go-cmp v0.6.0
3435
github.com/onsi/ginkgo/v2 v2.20.0
3536
github.com/onsi/gomega v1.34.1
3637
k8s.io/kubernetes v1.31.0
@@ -65,7 +66,6 @@ require (
6566
github.com/golang/protobuf v1.5.4 // indirect
6667
github.com/google/cel-go v0.20.1 // indirect
6768
github.com/google/gnostic-models v0.6.8 // indirect
68-
github.com/google/go-cmp v0.6.0 // indirect
6969
github.com/google/pprof v0.0.0-20240727154555-813a5fbdbec8 // indirect
7070
github.com/gorilla/websocket v1.5.3 // indirect
7171
github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 // indirect

go.sum

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@ github.com/cenkalti/backoff/v4 v4.3.0 h1:MyRJ/UdXutAwSAT+s3wNd7MfTIcy71VQueUuFK3
1616
github.com/cenkalti/backoff/v4 v4.3.0/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE=
1717
github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs=
1818
github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
19-
github.com/container-storage-interface/spec v1.9.0 h1:zKtX4STsq31Knz3gciCYCi1SXtO2HJDecIjDVboYavY=
20-
github.com/container-storage-interface/spec v1.9.0/go.mod h1:ZfDu+3ZRyeVqxZM0Ds19MVLkN2d1XJ5MAfi1L3VjlT0=
19+
github.com/container-storage-interface/spec v1.10.0 h1:YkzWPV39x+ZMTa6Ax2czJLLwpryrQ+dPesB34mrRMXA=
20+
github.com/container-storage-interface/spec v1.10.0/go.mod h1:DtUvaQszPml1YJfIK7c00mlv6/g4wNMLanLgiUbKFRI=
2121
github.com/coreos/go-semver v0.3.1 h1:yi21YpKnrx1gt5R+la8n5WgS0kCrsPp33dmEyHReZr4=
2222
github.com/coreos/go-semver v0.3.1/go.mod h1:irMmmIw/7yzSRPWryHsK7EYSg09caPQL03VsM8rvUec=
2323
github.com/coreos/go-systemd/v22 v22.5.0 h1:RrqgGjYQKalulkV8NGVIfkXQf6YYmOyiJKk8iXXhfZs=
@@ -113,8 +113,8 @@ github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
113113
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
114114
github.com/kubernetes-csi/csi-lib-utils v0.19.0 h1:3sT8mL9+St2acyrEtuR7CQ5L78GR4lgsb+sfon9tGfA=
115115
github.com/kubernetes-csi/csi-lib-utils v0.19.0/go.mod h1:lBuMKvoyd8c3EG+itmnVWApLDHnLkU7ibxxZSPuOw0M=
116-
github.com/kubernetes-csi/csi-test/v5 v5.2.0 h1:Z+sdARWC6VrONrxB24clCLCmnqCnZF7dzXtzx8eM35o=
117-
github.com/kubernetes-csi/csi-test/v5 v5.2.0/go.mod h1:o/c5w+NU3RUNE+DbVRhEUTmkQVBGk+tFOB2yPXT8teo=
116+
github.com/kubernetes-csi/csi-test/v5 v5.3.1 h1:Wiukp1In+kif+BFo6q2ExjgB+MbrAz4jZWzGfijypuY=
117+
github.com/kubernetes-csi/csi-test/v5 v5.3.1/go.mod h1:7hA2cSYJ6T8CraEZPA6zqkLZwemjBD54XAnPsPC3VpA=
118118
github.com/kubernetes-csi/external-snapshotter/client/v6 v6.3.0 h1:qS4r4ljINLWKJ9m9Ge3Q3sGZ/eIoDVDT2RhAdQFHb1k=
119119
github.com/kubernetes-csi/external-snapshotter/client/v6 v6.3.0/go.mod h1:oGXx2XTEzs9ikW2V6IC1dD8trgjRsS/Mvc2JRiC618Y=
120120
github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0=

pkg/controller/controller.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -233,7 +233,7 @@ type NodeDeployment struct {
233233
ClaimInformer coreinformers.PersistentVolumeClaimInformer
234234
// NodeInfo is the result of NodeGetInfo. It is need to determine which
235235
// PVs were created for the node.
236-
NodeInfo csi.NodeGetInfoResponse
236+
NodeInfo *csi.NodeGetInfoResponse
237237
// ImmediateBinding enables support for PVCs with immediate binding.
238238
ImmediateBinding bool
239239
// BaseDelay is the initial time that the external-provisioner waits
@@ -850,7 +850,7 @@ func (p *csiProvisioner) Provision(ctx context.Context, options controller.Provi
850850
}
851851

852852
if rep.Volume != nil {
853-
klog.V(3).Infof("create volume rep: %+v", *rep.Volume)
853+
klog.V(3).Infof("create volume rep: %+v", rep.Volume)
854854
}
855855
volumeAttributes := map[string]string{provisionerIDKey: p.identity}
856856
for k, v := range rep.Volume.VolumeContext {

pkg/controller/controller_test.go

Lines changed: 16 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ import (
2828

2929
"github.com/container-storage-interface/spec/lib/go/csi"
3030
"github.com/golang/mock/gomock"
31+
"github.com/kubernetes-csi/csi-test/v5/utils"
3132
"google.golang.org/grpc"
3233
"google.golang.org/grpc/codes"
3334
"google.golang.org/grpc/status"
@@ -170,7 +171,7 @@ func TestGetPluginName(t *testing.T) {
170171
in := &csi.GetPluginInfoRequest{}
171172
out := test.output[0]
172173

173-
identityServer.EXPECT().GetPluginInfo(gomock.Any(), in).Return(out, nil).Times(1)
174+
identityServer.EXPECT().GetPluginInfo(gomock.Any(), utils.Protobuf(in)).Return(out, nil).Times(1)
174175
oldName, err := GetDriverName(csiConn.conn, timeout)
175176
if err != nil {
176177
t.Errorf("test %q: Failed to get driver's name", test.name)
@@ -180,7 +181,7 @@ func TestGetPluginName(t *testing.T) {
180181
}
181182

182183
out = test.output[1]
183-
identityServer.EXPECT().GetPluginInfo(gomock.Any(), in).Return(out, nil).Times(1)
184+
identityServer.EXPECT().GetPluginInfo(gomock.Any(), utils.Protobuf(in)).Return(out, nil).Times(1)
184185
newName, err := GetDriverName(csiConn.conn, timeout)
185186
if err != nil {
186187
t.Errorf("test %s: Failed to get driver's name", test.name)
@@ -351,7 +352,7 @@ func TestGetDriverName(t *testing.T) {
351352
}
352353

353354
// Setup expectation
354-
identityServer.EXPECT().GetPluginInfo(gomock.Any(), in).Return(out, injectedErr).Times(1)
355+
identityServer.EXPECT().GetPluginInfo(gomock.Any(), utils.Protobuf(in)).Return(out, injectedErr).Times(1)
355356

356357
name, err := GetDriverName(csiConn.conn, timeout)
357358
if test.expectError && err == nil {
@@ -450,9 +451,9 @@ func TestCreateDriverReturnsInvalidCapacityDuringProvision(t *testing.T) {
450451
// Set up Mocks
451452
controllerServer.EXPECT().CreateVolume(gomock.Any(), gomock.Any()).Return(out, nil).Times(1)
452453
// Since capacity returned by driver is invalid, we expect the provision call to clean up the volume
453-
controllerServer.EXPECT().DeleteVolume(gomock.Any(), &csi.DeleteVolumeRequest{
454+
controllerServer.EXPECT().DeleteVolume(gomock.Any(), utils.Protobuf(&csi.DeleteVolumeRequest{
454455
VolumeId: "test-volume-id",
455-
}).Return(&csi.DeleteVolumeResponse{}, nil).Times(1)
456+
})).Return(&csi.DeleteVolumeResponse{}, nil).Times(1)
456457

457458
// Call provision
458459
_, _, err = csiProvisioner.Provision(context.Background(), opts)
@@ -2279,7 +2280,7 @@ func provisionTestcases() (int64, map[string]provisioningTestcase) {
22792280
},
22802281
expectErr: true,
22812282
expectState: controller.ProvisioningNoChange,
2282-
expectNoProvision: true, // not owner yet
2283+
expectNoProvision: true, // notowner yet
22832284
expectSelectedNode: nodeFoo.Name, // changed by ShouldProvision
22842285
},
22852286
"distributed immediate, allowed topologies not okay": {
@@ -4558,9 +4559,9 @@ func TestProvisionFromSnapshot(t *testing.T) {
45584559
if tc.notPopulated {
45594560
out.Volume.ContentSource = nil
45604561
controllerServer.EXPECT().CreateVolume(gomock.Any(), gomock.Any()).Return(out, nil).Times(1)
4561-
controllerServer.EXPECT().DeleteVolume(gomock.Any(), &csi.DeleteVolumeRequest{
4562+
controllerServer.EXPECT().DeleteVolume(gomock.Any(), utils.Protobuf(&csi.DeleteVolumeRequest{
45624563
VolumeId: "test-volume-id",
4563-
}).Return(&csi.DeleteVolumeResponse{}, nil).Times(1)
4564+
})).Return(&csi.DeleteVolumeResponse{}, nil).Times(1)
45644565
} else {
45654566
snapshotSource := csi.VolumeContentSource_Snapshot{
45664567
Snapshot: &csi.VolumeContentSource_SnapshotSource{
@@ -5539,7 +5540,7 @@ func runDeleteTest(t *testing.T, k string, tc deleteTestcase) {
55395540
nodeDeployment = &NodeDeployment{
55405541
NodeName: tc.deploymentNode,
55415542
ClaimInformer: claimInformer,
5542-
NodeInfo: csi.NodeGetInfoResponse{
5543+
NodeInfo: &csi.NodeGetInfoResponse{
55435544
NodeId: tc.deploymentNode,
55445545
AccessibleTopology: &csi.Topology{
55455546
Segments: map[string]string{
@@ -6659,9 +6660,9 @@ func TestProvisionFromPVC(t *testing.T) {
66596660
controllerServer.EXPECT().CreateVolume(gomock.Any(), gomock.Any()).Return(out, nil).Times(1)
66606661
// if the volume created is less than the requested size,
66616662
// deletevolume will be called
6662-
controllerServer.EXPECT().DeleteVolume(gomock.Any(), &csi.DeleteVolumeRequest{
6663+
controllerServer.EXPECT().DeleteVolume(gomock.Any(), utils.Protobuf(&csi.DeleteVolumeRequest{
66636664
VolumeId: "test-volume-id",
6664-
}).Return(&csi.DeleteVolumeResponse{}, nil).Times(1)
6665+
})).Return(&csi.DeleteVolumeResponse{}, nil).Times(1)
66656666
}
66666667

66676668
_, _, _, claimLister, _, _ := listers(clientSet)
@@ -6838,14 +6839,14 @@ func TestProvisionWithMigration(t *testing.T) {
68386839
expectParams[translatedKey] = "foo"
68396840
}
68406841
controllerServer.EXPECT().CreateVolume(gomock.Any(),
6841-
&csi.CreateVolumeRequest{
6842+
utils.Protobuf(&csi.CreateVolumeRequest{
68426843
Name: "test-testi",
68436844
Parameters: expectParams,
68446845
VolumeCapabilities: nil,
68456846
CapacityRange: &csi.CapacityRange{
68466847
RequiredBytes: int64(requestBytes),
68476848
},
6848-
}).Return(
6849+
})).Return(
68496850
&csi.CreateVolumeResponse{
68506851
Volume: &csi.Volume{
68516852
CapacityBytes: requestBytes,
@@ -6997,9 +6998,9 @@ func TestDeleteMigration(t *testing.T) {
69976998
// We assert that the Delete is called on the driver with either the
69986999
// normal or the translated handle
69997000
controllerServer.EXPECT().DeleteVolume(gomock.Any(),
7000-
&csi.DeleteVolumeRequest{
7001+
utils.Protobuf(&csi.DeleteVolumeRequest{
70017002
VolumeId: volID,
7002-
}).Return(&csi.DeleteVolumeResponse{}, nil).Times(1)
7003+
})).Return(&csi.DeleteVolumeResponse{}, nil).Times(1)
70037004

70047005
// Run Delete
70057006
err = csiProvisioner.Delete(context.Background(), tc.pv)

pkg/controller/topology_test.go

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,10 @@ import (
2121
"testing"
2222

2323
"github.com/container-storage-interface/spec/lib/go/csi"
24+
"github.com/google/go-cmp/cmp"
25+
"google.golang.org/protobuf/testing/protocmp"
2426
v1 "k8s.io/api/core/v1"
2527
storagev1 "k8s.io/api/storage/v1"
26-
"k8s.io/apimachinery/pkg/api/equality"
2728
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
2829
"k8s.io/apimachinery/pkg/util/sets"
2930
"k8s.io/client-go/informers"
@@ -434,7 +435,7 @@ func TestStatefulSetSpreading(t *testing.T) {
434435
if expected != nil && requirements.Preferred == nil {
435436
t.Fatalf("expected preferred to be %v but requirements.Preferred is nil", expected)
436437
}
437-
if expected != nil && !equality.Semantic.DeepEqual(requirements.Preferred, expected) {
438+
if expected != nil && !cmp.Equal(requirements.Preferred, expected, protocmp.Transform()) {
438439
t.Errorf("expected preferred requisite %v; got: %v", expected, requirements.Preferred)
439440
}
440441
})
@@ -1441,7 +1442,7 @@ func TestPreferredTopologies(t *testing.T) {
14411442
if requirements == nil {
14421443
t.Fatalf("expected preferred to be %v but requirements is nil", expectedPreferred)
14431444
}
1444-
if !equality.Semantic.DeepEqual(requirements.Preferred, expectedPreferred) {
1445+
if !cmp.Equal(requirements.Preferred, expectedPreferred, protocmp.Transform()) {
14451446
t.Errorf("expected requisite %v; got: %v", tc.expectedPreferred, requirements.Preferred)
14461447
}
14471448
}
@@ -1603,7 +1604,7 @@ func requisiteEqual(t1, t2 []*csi.Topology) bool {
16031604
for _, topology := range t2 {
16041605
found := false
16051606
for i := range unchecked {
1606-
if equality.Semantic.DeepEqual(t1[i], topology) {
1607+
if cmp.Equal(t1[i], topology, protocmp.Transform()) {
16071608
found = true
16081609
unchecked.Delete(i)
16091610
break

0 commit comments

Comments
 (0)