From 7b25f5b2df0394c992dc7f46e09befd247f41bed Mon Sep 17 00:00:00 2001 From: andyzhangx Date: Thu, 25 Nov 2021 14:18:35 +0000 Subject: [PATCH] feat: disable GET_VOLUME_STATS by default fix test --- charts/README.md | 2 + charts/latest/csi-driver-smb-v1.4.0.tgz | Bin 4027 -> 4070 bytes .../templates/csi-smb-node-windows.yaml | 1 + .../templates/csi-smb-node.yaml | 1 + charts/latest/csi-driver-smb/values.yaml | 3 ++ pkg/smb/nodeserver_test.go | 42 ++++++++++++++++++ pkg/smb/smb.go | 17 ++++--- pkg/smb/smb_test.go | 4 +- pkg/smbplugin/main.go | 15 ++++--- test/e2e/suite_test.go | 2 +- 10 files changed, 71 insertions(+), 16 deletions(-) diff --git a/charts/README.md b/charts/README.md index 668bea6ca..bcee3eeb2 100644 --- a/charts/README.md +++ b/charts/README.md @@ -36,6 +36,8 @@ The following table lists the configurable parameters of the latest SMB CSI Driv | Parameter | Description | Default | |---------------------------------------------------|------------------------------------------------------------|-------------------------------------------------------------------| +| `driver.name` | alternative driver name | `smb.csi.k8s.io` | +| `feature.enableGetVolumeStats` | allow GET_VOLUME_STATS on agent node | `false` | | `image.baseRepo` | base repository of driver images | `mcr.microsoft.com` | | `image.smb.repository` | csi-driver-smb docker image | `/k8s/csi/smb-csi` | | `image.smb.tag` | csi-driver-smb docker image tag | `latest` | diff --git a/charts/latest/csi-driver-smb-v1.4.0.tgz b/charts/latest/csi-driver-smb-v1.4.0.tgz index 675a69196828803d75cda03da0ea790cee082f29..fa58ee8090334d454ed54f0dd40e9d67837e369a 100644 GIT binary patch delta 4047 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 KXN-jacmM#S=;mht diff --git a/charts/latest/csi-driver-smb/templates/csi-smb-node-windows.yaml b/charts/latest/csi-driver-smb/templates/csi-smb-node-windows.yaml index 87df88ed6..dbeeddb5b 100755 --- a/charts/latest/csi-driver-smb/templates/csi-smb-node-windows.yaml +++ b/charts/latest/csi-driver-smb/templates/csi-smb-node-windows.yaml @@ -93,6 +93,7 @@ spec: - --endpoint=$(CSI_ENDPOINT) - --nodeid=$(KUBE_NODE_NAME) - "--metrics-address=0.0.0.0:{{ .Values.node.metricsPort }}" + - "--enable-get-volume-stats={{ .Values.feature.enableGetVolumeStats }}" ports: - containerPort: {{ .Values.node.livenessProbe.healthPort }} name: healthz diff --git a/charts/latest/csi-driver-smb/templates/csi-smb-node.yaml b/charts/latest/csi-driver-smb/templates/csi-smb-node.yaml index f7e22f656..6e581aa74 100755 --- a/charts/latest/csi-driver-smb/templates/csi-smb-node.yaml +++ b/charts/latest/csi-driver-smb/templates/csi-smb-node.yaml @@ -101,6 +101,7 @@ spec: - "--endpoint=$(CSI_ENDPOINT)" - "--nodeid=$(KUBE_NODE_NAME)" - "--metrics-address=0.0.0.0:{{ .Values.node.metricsPort }}" + - "--enable-get-volume-stats={{ .Values.feature.enableGetVolumeStats }}" ports: - containerPort: {{ .Values.node.livenessProbe.healthPort }} name: healthz diff --git a/charts/latest/csi-driver-smb/values.yaml b/charts/latest/csi-driver-smb/values.yaml index 3b65675fd..f48178c31 100755 --- a/charts/latest/csi-driver-smb/values.yaml +++ b/charts/latest/csi-driver-smb/values.yaml @@ -28,6 +28,9 @@ rbac: driver: name: smb.csi.k8s.io +feature: + enableGetVolumeStats: false + controller: name: csi-smb-controller replicas: 2 diff --git a/pkg/smb/nodeserver_test.go b/pkg/smb/nodeserver_test.go index 8a57fef4a..4127d15aa 100644 --- a/pkg/smb/nodeserver_test.go +++ b/pkg/smb/nodeserver_test.go @@ -660,3 +660,45 @@ func TestNodeGetVolumeStats(t *testing.T) { err := os.RemoveAll(fakePath) assert.NoError(t, err) } + +func TestCheckGidPresentInMountFlags(t *testing.T) { + tests := []struct { + desc string + VolumeMountGroup string + MountFlags []string + expectedErr error + result bool + }{ + { + desc: "[Error] VolumeMountGroup is different from gid in mount options", + VolumeMountGroup: "2000", + MountFlags: []string{"gid=3000"}, + expectedErr: status.Error(codes.InvalidArgument, "gid(3000) in storageClass and pod fsgroup(2000) are not equal"), + result: false, + }, + { + desc: "[Success] Gid present in mount flags", + VolumeMountGroup: "", + MountFlags: []string{"gid=3000"}, + expectedErr: nil, + result: true, + }, + { + desc: "[Success] Gid not present in mount flags", + VolumeMountGroup: "", + MountFlags: []string{}, + expectedErr: nil, + result: false, + }, + } + + for _, test := range tests { + gIDPresent, err := checkGidPresentInMountFlags(test.VolumeMountGroup, test.MountFlags) + if !reflect.DeepEqual(err, test.expectedErr) { + t.Errorf("[%s]: Unexpected Error: %v, expected error: %v", test.desc, err, test.expectedErr) + } + if gIDPresent != test.result { + t.Errorf("[%s]: Expected result : %t, Actual result: %t", test.desc, test.result, gIDPresent) + } + } +} diff --git a/pkg/smb/smb.go b/pkg/smb/smb.go index ffe04a869..17b88f6f7 100644 --- a/pkg/smb/smb.go +++ b/pkg/smb/smb.go @@ -39,17 +39,19 @@ type Driver struct { mounter *mount.SafeFormatAndMount // A map storing all volumes with ongoing operations so that additional operations // for that same volume (as defined by VolumeID) return an Aborted error - volumeLocks *volumeLocks - workingMountDir string + volumeLocks *volumeLocks + workingMountDir string + enableGetVolumeStats bool } // NewDriver Creates a NewCSIDriver object. Assumes vendor version is equal to driver version & // does not support optional driver plugin info manifest field. Refer to CSI spec for more details. -func NewDriver(nodeID, driverName string) *Driver { +func NewDriver(nodeID, driverName string, enableGetVolumeStats bool) *Driver { driver := Driver{} driver.Name = driverName driver.Version = driverVersion driver.NodeID = nodeID + driver.enableGetVolumeStats = enableGetVolumeStats driver.volumeLocks = newVolumeLocks() return &driver } @@ -84,12 +86,15 @@ func (d *Driver) Run(endpoint, kubeconfig string, testMode bool) { csi.VolumeCapability_AccessMode_MULTI_NODE_MULTI_WRITER, }) - d.AddNodeServiceCapabilities([]csi.NodeServiceCapability_RPC_Type{ - csi.NodeServiceCapability_RPC_GET_VOLUME_STATS, + nodeCap := []csi.NodeServiceCapability_RPC_Type{ csi.NodeServiceCapability_RPC_STAGE_UNSTAGE_VOLUME, csi.NodeServiceCapability_RPC_SINGLE_NODE_MULTI_WRITER, csi.NodeServiceCapability_RPC_VOLUME_MOUNT_GROUP, - }) + } + if d.enableGetVolumeStats { + nodeCap = append(nodeCap, csi.NodeServiceCapability_RPC_GET_VOLUME_STATS) + } + d.AddNodeServiceCapabilities(nodeCap) s := csicommon.NewNonBlockingGRPCServer() // Driver d act as IdentityServer, ControllerServer and NodeServer diff --git a/pkg/smb/smb_test.go b/pkg/smb/smb_test.go index 02bda006f..d37e6e22e 100644 --- a/pkg/smb/smb_test.go +++ b/pkg/smb/smb_test.go @@ -30,12 +30,12 @@ const ( ) func NewFakeDriver() *Driver { - return NewDriver(fakeNodeID, DefaultDriverName) + return NewDriver(fakeNodeID, DefaultDriverName, true) } func TestNewFakeDriver(t *testing.T) { // Test New fake driver. - d := NewDriver(fakeNodeID, DefaultDriverName) + d := NewDriver(fakeNodeID, DefaultDriverName, true) assert.NotNil(t, d) } diff --git a/pkg/smbplugin/main.go b/pkg/smbplugin/main.go index 4a016ad60..d0b03ef43 100644 --- a/pkg/smbplugin/main.go +++ b/pkg/smbplugin/main.go @@ -36,12 +36,13 @@ func init() { } var ( - endpoint = flag.String("endpoint", "unix://tmp/csi.sock", "CSI endpoint") - nodeID = flag.String("nodeid", "", "node id") - driverName = flag.String("drivername", smb.DefaultDriverName, "name of the driver") - version = flag.Bool("version", false, "Print the version and exit.") - metricsAddress = flag.String("metrics-address", "0.0.0.0:29644", "export the metrics") - kubeconfig = flag.String("kubeconfig", "", "Absolute path to the kubeconfig file. Required only when running out of cluster.") + endpoint = flag.String("endpoint", "unix://tmp/csi.sock", "CSI endpoint") + nodeID = flag.String("nodeid", "", "node id") + driverName = flag.String("drivername", smb.DefaultDriverName, "name of the driver") + version = flag.Bool("version", false, "Print the version and exit.") + metricsAddress = flag.String("metrics-address", "0.0.0.0:29644", "export the metrics") + kubeconfig = flag.String("kubeconfig", "", "Absolute path to the kubeconfig file. Required only when running out of cluster.") + enableGetVolumeStats = flag.Bool("enable-get-volume-stats", false, "allow GET_VOLUME_STATS on agent node") ) func main() { @@ -64,7 +65,7 @@ func main() { } func handle() { - driver := smb.NewDriver(*nodeID, *driverName) + driver := smb.NewDriver(*nodeID, *driverName, *enableGetVolumeStats) if driver == nil { klog.Fatalln("Failed to initialize smb CSI Driver") } diff --git a/test/e2e/suite_test.go b/test/e2e/suite_test.go index 7958a9b4f..e951c1eb3 100644 --- a/test/e2e/suite_test.go +++ b/test/e2e/suite_test.go @@ -100,7 +100,7 @@ var _ = ginkgo.BeforeSuite(func() { nodeid := os.Getenv("nodeid") kubeconfig := os.Getenv(kubeconfigEnvVar) - smbDriver = smb.NewDriver(nodeid, smb.DefaultDriverName) + smbDriver = smb.NewDriver(nodeid, smb.DefaultDriverName, false) go func() { smbDriver.Run(fmt.Sprintf("unix:///tmp/csi-%s.sock", uuid.NewUUID().String()), kubeconfig, false) }()