From 5197468bde1ff466f79bd89ece84f1fe4602638d Mon Sep 17 00:00:00 2001 From: andyzhangx Date: Fri, 10 Jul 2020 13:05:22 +0000 Subject: [PATCH 1/3] feat: support storage class --- Makefile | 2 +- deploy/csi-smb-controller.yaml | 99 +++++++++++++++++++++++++++++ deploy/install-driver.sh | 2 + deploy/rbac-csi-smb-controller.yaml | 49 ++++++++++++++ deploy/uninstall-driver.sh | 6 +- docs/driver-parameters.md | 4 +- pkg/smb/controllerserver.go | 9 ++- pkg/smbplugin/dev.Dockerfile | 21 ++++++ 8 files changed, 184 insertions(+), 8 deletions(-) create mode 100644 deploy/csi-smb-controller.yaml create mode 100644 deploy/rbac-csi-smb-controller.yaml create mode 100644 pkg/smbplugin/dev.Dockerfile diff --git a/Makefile b/Makefile index 8544ee01606..b81d7f006ba 100644 --- a/Makefile +++ b/Makefile @@ -100,7 +100,7 @@ smb-windows: .PHONY: container container: smb - docker build --no-cache -t $(IMAGE_TAG) -f ./pkg/smbplugin/Dockerfile . + docker build --no-cache -t $(IMAGE_TAG) -f ./pkg/smbplugin/dev.Dockerfile . .PHONY: smb-container smb-container: diff --git a/deploy/csi-smb-controller.yaml b/deploy/csi-smb-controller.yaml new file mode 100644 index 00000000000..4a90cad520a --- /dev/null +++ b/deploy/csi-smb-controller.yaml @@ -0,0 +1,99 @@ +--- +kind: Deployment +apiVersion: apps/v1 +metadata: + name: csi-smb-controller + namespace: kube-system +spec: + replicas: 2 + selector: + matchLabels: + app: csi-smb-controller + template: + metadata: + labels: + app: csi-smb-controller + spec: + serviceAccountName: csi-smb-controller-sa + nodeSelector: + kubernetes.io/os: linux + priorityClassName: system-cluster-critical + tolerations: + - key: "node-role.kubernetes.io/master" + operator: "Equal" + value: "true" + effect: "NoSchedule" + containers: + - name: csi-provisioner + image: mcr.microsoft.com/oss/kubernetes-csi/csi-provisioner:v1.4.0 + args: + - "-v=5" + - "--csi-address=$(ADDRESS)" + - "--enable-leader-election" + - "--leader-election-type=leases" + env: + - name: ADDRESS + value: /csi/csi.sock + volumeMounts: + - mountPath: /csi + name: socket-dir + resources: + limits: + cpu: 1 + memory: 1Gi + requests: + cpu: 10m + memory: 20Mi + - name: liveness-probe + image: mcr.microsoft.com/oss/kubernetes-csi/livenessprobe:v1.1.0 + args: + - --csi-address=/csi/csi.sock + - --connection-timeout=3s + - --health-port=29632 + - --v=5 + volumeMounts: + - name: socket-dir + mountPath: /csi + resources: + limits: + cpu: 1 + memory: 1Gi + requests: + cpu: 10m + memory: 20Mi + - name: smb + image: mcr.microsoft.com/k8s/csi/smb-csi:latest + args: + - "--v=5" + - "--endpoint=$(CSI_ENDPOINT)" + ports: + - containerPort: 29632 + name: healthz + protocol: TCP + - containerPort: 29634 + name: metrics + protocol: TCP + livenessProbe: + failureThreshold: 5 + httpGet: + path: /healthz + port: healthz + initialDelaySeconds: 30 + timeoutSeconds: 10 + periodSeconds: 30 + env: + - name: CSI_ENDPOINT + value: unix:///csi/csi.sock + volumeMounts: + - mountPath: /csi + name: socket-dir + resources: + limits: + cpu: 1 + memory: 1Gi + requests: + cpu: 10m + memory: 20Mi + volumes: + - name: socket-dir + emptyDir: {} diff --git a/deploy/install-driver.sh b/deploy/install-driver.sh index b16bcf983b6..e5365f1c1e1 100755 --- a/deploy/install-driver.sh +++ b/deploy/install-driver.sh @@ -34,7 +34,9 @@ if [ $ver != "master" ]; then fi echo "Installing SMB CSI driver, version: $ver ..." +kubectl apply -f $repo/rbac-csi-smb-controller.yaml kubectl apply -f $repo/csi-smb-driver.yaml +kubectl apply -f $repo/csi-smb-controller.yaml kubectl apply -f $repo/csi-smb-node.yaml kubectl apply -f $repo/csi-smb-node-windows.yaml echo 'SMB CSI driver installed successfully.' diff --git a/deploy/rbac-csi-smb-controller.yaml b/deploy/rbac-csi-smb-controller.yaml new file mode 100644 index 00000000000..26324c351c2 --- /dev/null +++ b/deploy/rbac-csi-smb-controller.yaml @@ -0,0 +1,49 @@ +--- +apiVersion: v1 +kind: ServiceAccount +metadata: + name: csi-smb-controller-sa + namespace: kube-system + +--- + +kind: ClusterRole +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: smb-external-provisioner-role +rules: + - apiGroups: [""] + resources: ["persistentvolumes"] + verbs: ["get", "list", "watch", "create", "delete"] + - apiGroups: [""] + resources: ["persistentvolumeclaims"] + verbs: ["get", "list", "watch", "update"] + - apiGroups: ["storage.k8s.io"] + resources: ["storageclasses"] + verbs: ["get", "list", "watch"] + - apiGroups: [""] + resources: ["events"] + verbs: ["get", "list", "watch", "create", "update", "patch"] + - apiGroups: ["storage.k8s.io"] + resources: ["csinodes"] + verbs: ["get", "list", "watch"] + - apiGroups: [""] + resources: ["nodes"] + verbs: ["get", "list", "watch"] + - apiGroups: ["coordination.k8s.io"] + resources: ["leases"] + verbs: ["get", "list", "watch", "create", "update", "patch"] +--- + +kind: ClusterRoleBinding +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: smb-csi-provisioner-binding +subjects: + - kind: ServiceAccount + name: csi-smb-controller-sa + namespace: kube-system +roleRef: + kind: ClusterRole + name: smb-external-provisioner-role + apiGroup: rbac.authorization.k8s.io diff --git a/deploy/uninstall-driver.sh b/deploy/uninstall-driver.sh index e20627d7117..80e18cac280 100755 --- a/deploy/uninstall-driver.sh +++ b/deploy/uninstall-driver.sh @@ -21,7 +21,7 @@ if [[ "$#" -gt 0 ]]; then ver="$1" fi -repo="https://raw.githubusercontent.com/kubernetes-csi/csi-driver-smb/master/deploy" +repo="https://raw.githubusercontent.com/kubernetes-csi/csi-driver-smb/$ver/deploy" if [[ "$#" -gt 1 ]]; then if [[ "$2" == *"local"* ]]; then echo "use local deploy" @@ -34,7 +34,9 @@ if [ $ver != "master" ]; then fi echo "Uninstalling SMB CSI driver, version: $ver ..." -kubectl delete -f $repo/csi-smb-driver.yaml --ignore-not-found +kubectl delete -f $repo/csi-smb-controller.yaml --ignore-not-found kubectl delete -f $repo/csi-smb-node.yaml --ignore-not-found kubectl delete -f $repo/csi-smb-node-windows.yaml --ignore-not-found +kubectl delete -f $repo/csi-smb-driver.yaml --ignore-not-found +kubectl delete -f $repo/rbac-csi-smb-controller.yaml --ignore-not-found echo 'Uninstalled SMB CSI driver successfully.' diff --git a/docs/driver-parameters.md b/docs/driver-parameters.md index 5e2ad1cb605..6ed61ae5dc0 100644 --- a/docs/driver-parameters.md +++ b/docs/driver-parameters.md @@ -6,6 +6,6 @@ This driver only supports static provisioning Name | Meaning | Available Value | Mandatory | Default value --- | --- | --- | --- | --- -volumeAttributes.source | SMB server address | `//IP/smb-server/directory`(for azure file, format is `//accountname.file.core.windows.net/filesharename`) | Yes | -nodeStageSecretRef.name | secret name that stores `username`, `password` | existing secret name | Yes | +volumeAttributes.source | SMB server address | `//smb-server-address/sharename`(for [Azure File](https://docs.microsoft.com/en-us/azure/storage/files/storage-files-introduction), format is `//accountname.file.core.windows.net/filesharename`) | Yes | +nodeStageSecretRef.name | secret name that stores `username`, `password`(`domain` is optional) | existing secret name | Yes | nodeStageSecretRef.namespace | namespace where the secret is | k8s namespace | No | `default` diff --git a/pkg/smb/controllerserver.go b/pkg/smb/controllerserver.go index 767f5442777..ac7ac8aee68 100644 --- a/pkg/smb/controllerserver.go +++ b/pkg/smb/controllerserver.go @@ -25,22 +25,25 @@ import ( "k8s.io/klog/v2" ) -// CreateVolume not implemented, only for sanity test pass +// CreateVolume only supports static provisioning, no create volume action func (d *Driver) CreateVolume(ctx context.Context, req *csi.CreateVolumeRequest) (*csi.CreateVolumeResponse, error) { + klog.V(2).Infof("CreateVolume called with request %+v", *req) volumeCapabilities := req.GetVolumeCapabilities() if len(volumeCapabilities) == 0 { return nil, status.Error(codes.InvalidArgument, "CreateVolume Volume capabilities must be provided") } return &csi.CreateVolumeResponse{ Volume: &csi.Volume{ - VolumeId: "volumeID", + VolumeId: req.GetName(), CapacityBytes: req.GetCapacityRange().GetRequiredBytes(), + VolumeContext: req.GetParameters(), }, }, nil } -// DeleteVolume not implemented, only for sanity test pass +// DeleteVolume only supports static provisioning, no delete volume action func (d *Driver) DeleteVolume(ctx context.Context, req *csi.DeleteVolumeRequest) (*csi.DeleteVolumeResponse, error) { + klog.V(2).Infof("DeleteVolume called with request %v", *req) if len(req.GetVolumeId()) == 0 { return nil, status.Error(codes.InvalidArgument, "Volume ID missing in request") } diff --git a/pkg/smbplugin/dev.Dockerfile b/pkg/smbplugin/dev.Dockerfile new file mode 100644 index 00000000000..6978e0bb780 --- /dev/null +++ b/pkg/smbplugin/dev.Dockerfile @@ -0,0 +1,21 @@ +# Copyright 2020 The Kubernetes Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +FROM mcr.microsoft.com/aks/fundamental/base-ubuntu:v0.0.5 +RUN apt-get update && apt-get install -y ca-certificates cifs-utils util-linux e2fsprogs mount udev xfsprogs +LABEL maintainers="andyzhangx" +LABEL description="SMB CSI Driver" + +COPY ./_output/smbplugin /smbplugin +ENTRYPOINT ["/smbplugin"] From 123543bba823d8b1681418a0fec887c3c528a551 Mon Sep 17 00:00:00 2001 From: andyzhangx Date: Sat, 11 Jul 2020 01:30:32 +0000 Subject: [PATCH 2/3] feat: config change to support storage class update docs --- README.md | 2 +- deploy/csi-smb-controller.yaml | 1 + deploy/example/e2e_usage.md | 10 ++--- .../example/{pv-smb-csi.yaml => pv-smb.yaml} | 0 deploy/example/pvc-smb-csi.yaml | 12 ++++++ ...mb-csi-static.yaml => pvc-smb-static.yaml} | 0 deploy/example/smb-provisioner/README.md | 14 +++---- deploy/example/statefulset.yaml | 40 +++++++++++++++++++ deploy/example/storageclass-smb.yaml | 17 ++++++++ docs/driver-parameters.md | 18 ++++++--- pkg/smb/smb.go | 5 ++- 11 files changed, 100 insertions(+), 19 deletions(-) rename deploy/example/{pv-smb-csi.yaml => pv-smb.yaml} (100%) create mode 100644 deploy/example/pvc-smb-csi.yaml rename deploy/example/{pvc-smb-csi-static.yaml => pvc-smb-static.yaml} (100%) create mode 100644 deploy/example/statefulset.yaml create mode 100644 deploy/example/storageclass-smb.yaml diff --git a/README.md b/README.md index 8d4c49ff0cf..b51eadba37d 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ Please refer to [`smb.csi.k8s.io` driver parameters](./docs/driver-parameters.md Please refer to [install SMB CSI driver](./docs/install-csi-driver-master.md) ### Examples - - [Set up a SMB server deployment on a Kubernetes cluster](./deploy/example/smb-provisioner/) + - [Set up a Samba Server deployment on a Kubernetes cluster](./deploy/example/smb-provisioner/) - [Basic usage](./deploy/example/e2e_usage.md) - [Windows](./deploy/example/windows) diff --git a/deploy/csi-smb-controller.yaml b/deploy/csi-smb-controller.yaml index 4a90cad520a..8eb3d87745f 100644 --- a/deploy/csi-smb-controller.yaml +++ b/deploy/csi-smb-controller.yaml @@ -63,6 +63,7 @@ spec: memory: 20Mi - name: smb image: mcr.microsoft.com/k8s/csi/smb-csi:latest + imagePullPolicy: IfNotPresent args: - "--v=5" - "--endpoint=$(CSI_ENDPOINT)" diff --git a/deploy/example/e2e_usage.md b/deploy/example/e2e_usage.md index c44064b089b..69530e581bd 100644 --- a/deploy/example/e2e_usage.md +++ b/deploy/example/e2e_usage.md @@ -1,6 +1,6 @@ ## CSI driver E2E usage example ### Prerequisite - - [Set up a SMB server on a Kubernetes cluster](./smb-provisioner/) + - [Set up a Samba Server on a Kubernetes cluster](./smb-provisioner/) #### 1. Create PV/PVC bound with SMB share - Use `kubectl create secret` to create `smbcreds` with SMB username, password @@ -9,7 +9,7 @@ kubectl create secret generic smbcreds --from-literal username=USERNAME --from-l ``` > add `--from-literal domain=DOMAIN-NAME` for domain support - - Create a smb CSI PV, download [`pv-smb-csi.yaml`](https://raw.githubusercontent.com/kubernetes-csi/csi-driver-smb/master/deploy/example/pv-smb-csi.yaml) file and edit `source` in `volumeAttributes` + - Create a smb CSI PV, download [`pv-smb.yaml`](https://raw.githubusercontent.com/kubernetes-csi/csi-driver-smb/master/deploy/example/pv-smb.yaml) file and edit `source` in `volumeAttributes` ```yaml apiVersion: v1 kind: PersistentVolume @@ -38,12 +38,12 @@ spec: > For [Azure File](https://docs.microsoft.com/en-us/azure/storage/files/), format of `source`: `//accountname.file.core.windows.net/sharename` ```console -kubectl create -f pv-smb-csi.yaml +kubectl create -f pv-smb.yaml ``` - Create a PVC ```console -kubectl create -f https://raw.githubusercontent.com/kubernetes-csi/csi-driver-smb/master/deploy/example/pvc-smb-csi-static.yaml +kubectl create -f https://raw.githubusercontent.com/kubernetes-csi/csi-driver-smb/master/deploy/example/pvc-smb-static.yaml ``` - make sure pvc is created and in `Bound` status finally ```console @@ -70,4 +70,4 @@ In the above example, there is a `/mnt/smb` directory mounted as cifs filesystem ### 2.2 Create a deployment on Windows ``` kubectl apply -f https://raw.githubusercontent.com/kubernetes-csi/csi-driver-smb/master/deploy/example/windows/deployment.yaml -``` \ No newline at end of file +``` diff --git a/deploy/example/pv-smb-csi.yaml b/deploy/example/pv-smb.yaml similarity index 100% rename from deploy/example/pv-smb-csi.yaml rename to deploy/example/pv-smb.yaml diff --git a/deploy/example/pvc-smb-csi.yaml b/deploy/example/pvc-smb-csi.yaml new file mode 100644 index 00000000000..b840944b2c6 --- /dev/null +++ b/deploy/example/pvc-smb-csi.yaml @@ -0,0 +1,12 @@ +--- +kind: PersistentVolumeClaim +apiVersion: v1 +metadata: + name: pvc-smb +spec: + accessModes: + - ReadWriteMany + resources: + requests: + storage: 10Gi + storageClassName: smb diff --git a/deploy/example/pvc-smb-csi-static.yaml b/deploy/example/pvc-smb-static.yaml similarity index 100% rename from deploy/example/pvc-smb-csi-static.yaml rename to deploy/example/pvc-smb-static.yaml diff --git a/deploy/example/smb-provisioner/README.md b/deploy/example/smb-provisioner/README.md index 1d06a27cf76..977c38d11e8 100644 --- a/deploy/example/smb-provisioner/README.md +++ b/deploy/example/smb-provisioner/README.md @@ -1,7 +1,7 @@ -## Set up a SMB server and a deployment to access SMB server on a Kubernetes cluster +## Set up a Samba Server and a deployment to access Samba Server on a Kubernetes cluster This page will show you how to: - - set up a SMB server deployment on a Kubernetes cluster, the file share data is stored on local disk. - - set up a deployment to access SMB server on a Kubernetes cluster + - set up a Samba Server deployment on a Kubernetes cluster, the file share data is stored on local disk. + - set up a deployment to access Samba Server on a Kubernetes cluster ### Stey-by-step - Use `kubectl create secret` to create `smbcreds` with SMB username, password @@ -9,7 +9,7 @@ This page will show you how to: kubectl create secret generic smbcreds --from-literal username=USERNAME --from-literal password="PASSWORD" ``` - - Create a SMB server deployment + - Create a Samba Server deployment > modify `/smbshare-volume` in deployment to specify different path for smb share data store ```console kubectl create -f https://raw.githubusercontent.com/kubernetes-csi/csi-driver-smb/master/deploy/example/smb-provisioner/smb-server.yaml @@ -17,10 +17,10 @@ kubectl create -f https://raw.githubusercontent.com/kubernetes-csi/csi-driver-sm After deployment, a new service `smb-server` is created, file share path is `//smb-server.default.svc.cluster.local/share` - - Create a deployment to access above SMB server + - Create a deployment to access above Samba Server ```console -kubectl create -f https://raw.githubusercontent.com/kubernetes-csi/csi-driver-smb/master/deploy/example/smb-provisioner/pv-smb-csi.yaml -kubectl create -f https://raw.githubusercontent.com/kubernetes-csi/csi-driver-smb/master/deploy/example/pvc-smb-csi-static.yaml +kubectl create -f https://raw.githubusercontent.com/kubernetes-csi/csi-driver-smb/master/deploy/example/smb-provisioner/pv-smb.yaml +kubectl create -f https://raw.githubusercontent.com/kubernetes-csi/csi-driver-smb/master/deploy/example/pvc-smb-static.yaml kubectl create -f https://raw.githubusercontent.com/kubernetes-csi/csi-driver-smb/master/deploy/example/deployment.yaml ``` diff --git a/deploy/example/statefulset.yaml b/deploy/example/statefulset.yaml new file mode 100644 index 00000000000..dc91c5425b6 --- /dev/null +++ b/deploy/example/statefulset.yaml @@ -0,0 +1,40 @@ +--- +apiVersion: apps/v1 +kind: StatefulSet +metadata: + name: statefulset-smb + labels: + app: nginx +spec: + serviceName: statefulset-smb + replicas: 1 + template: + metadata: + labels: + app: nginx + spec: + containers: + - name: statefulset-smb + image: nginx + command: + - "/bin/sh" + - "-c" + - while true; do echo $(date) >> /mnt/smb/outfile; sleep 1; done + volumeMounts: + - name: persistent-storage + mountPath: /mnt/smb + updateStrategy: + type: RollingUpdate + selector: + matchLabels: + app: nginx + volumeClaimTemplates: + - metadata: + name: persistent-storage + annotations: + volume.beta.kubernetes.io/storage-class: smb + spec: + accessModes: ["ReadWriteOnce"] + resources: + requests: + storage: 10Gi diff --git a/deploy/example/storageclass-smb.yaml b/deploy/example/storageclass-smb.yaml new file mode 100644 index 00000000000..74f5c9877b4 --- /dev/null +++ b/deploy/example/storageclass-smb.yaml @@ -0,0 +1,17 @@ +--- +apiVersion: storage.k8s.io/v1 +kind: StorageClass +metadata: + name: smb +provisioner: smb.csi.k8s.io +parameters: + source: "//smb-server.default.svc.cluster.local/share" + csi.storage.k8s.io/node-stage-secret-name: "smbcreds" + csi.storage.k8s.io/node-stage-secret-namespace: "default" +reclaimPolicy: Retain # only retain is supported +volumeBindingMode: Immediate +mountOptions: + - dir_mode=0777 + - file_mode=0777 + - uid=1001 + - gid=1001 diff --git a/docs/driver-parameters.md b/docs/driver-parameters.md index 6ed61ae5dc0..baba5751799 100644 --- a/docs/driver-parameters.md +++ b/docs/driver-parameters.md @@ -1,11 +1,19 @@ ## `smb.csi.k8s.io` driver parameters -This driver only supports static provisioning +> This driver only supports static provisioning, bring your own Samba server before using this driver. +### Storage Class Usage +> get a quick example [here](../deploy/example/storageclass-smb.yaml) - - Static Provision(use existing smb) - > get a quick example [here](../deploy/example/pv-smb-csi.yaml) +Name | Meaning | Available Value | Mandatory | Default value +--- | --- | --- | --- | --- +source | Samba Server address | `//smb-server-address/sharename`(for [Azure File](https://docs.microsoft.com/en-us/azure/storage/files/storage-files-introduction), format is `//accountname.file.core.windows.net/filesharename`) | Yes | +csi.storage.k8s.io/node-stage-secret-name | secret name that stores `username`, `password`(`domain` is optional) | existing secret name | Yes | +csi.storage.k8s.io/node-stage-secret-namespace | namespace where the secret is | k8s namespace | Yes | + +### PV/PVC Usage +> get a quick example [here](../deploy/example/pv-smb.yaml) Name | Meaning | Available Value | Mandatory | Default value --- | --- | --- | --- | --- -volumeAttributes.source | SMB server address | `//smb-server-address/sharename`(for [Azure File](https://docs.microsoft.com/en-us/azure/storage/files/storage-files-introduction), format is `//accountname.file.core.windows.net/filesharename`) | Yes | +volumeAttributes.source | Samba Server address | `//smb-server-address/sharename`(for [Azure File](https://docs.microsoft.com/en-us/azure/storage/files/storage-files-introduction), format is `//accountname.file.core.windows.net/filesharename`) | Yes | nodeStageSecretRef.name | secret name that stores `username`, `password`(`domain` is optional) | existing secret name | Yes | -nodeStageSecretRef.namespace | namespace where the secret is | k8s namespace | No | `default` +nodeStageSecretRef.namespace | namespace where the secret is | k8s namespace | Yes | diff --git a/pkg/smb/smb.go b/pkg/smb/smb.go index c7b9ce5336b..f4161cf819f 100644 --- a/pkg/smb/smb.go +++ b/pkg/smb/smb.go @@ -62,7 +62,10 @@ func (d *Driver) Run(endpoint, kubeconfig string, testMode bool) { } // Initialize default library driver - d.AddControllerServiceCapabilities([]csi.ControllerServiceCapability_RPC_Type{csi.ControllerServiceCapability_RPC_UNKNOWN}) + d.AddControllerServiceCapabilities( + []csi.ControllerServiceCapability_RPC_Type{ + csi.ControllerServiceCapability_RPC_CREATE_DELETE_VOLUME, + }) d.AddVolumeCapabilityAccessModes([]csi.VolumeCapability_AccessMode_Mode{ csi.VolumeCapability_AccessMode_SINGLE_NODE_WRITER, From b28ed770efbfbe16203713a996f201a0d756025e Mon Sep 17 00:00:00 2001 From: andyzhangx Date: Sat, 11 Jul 2020 02:12:48 +0000 Subject: [PATCH 3/3] fix: sanity test failure --- test/sanity/run-test.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/sanity/run-test.sh b/test/sanity/run-test.sh index 828427b5dba..49b84558b6f 100755 --- a/test/sanity/run-test.sh +++ b/test/sanity/run-test.sh @@ -44,4 +44,4 @@ _output/smbplugin --endpoint "$endpoint" --nodeid "$nodeid" -v=5 & echo 'Begin to run sanity test...' readonly CSI_SANITY_BIN='csi-test/cmd/csi-sanity/csi-sanity' -"$CSI_SANITY_BIN" --ginkgo.v --ginkgo.noColor --csi.endpoint="$endpoint" --ginkgo.skip='ValidateVolumeCapabilities|ControllerGetCapabilities|should work' +"$CSI_SANITY_BIN" --ginkgo.v --ginkgo.noColor --csi.endpoint="$endpoint" --ginkgo.skip='ValidateVolumeCapabilities|ControllerGetCapabilities|should work|create a volume with already existing name and different capacity'