From 958efd92ca7488dd546dbf2b330e0589000eeb38 Mon Sep 17 00:00:00 2001 From: andyzhangx Date: Sat, 10 Jul 2021 12:15:42 +0000 Subject: [PATCH] feat: support alternative driver name fix driver name --- charts/README.md | 33 +++++++-------- charts/latest/csi-driver-nfs-v3.0.0.tgz | Bin 3248 -> 3374 bytes .../templates/csi-nfs-controller.yaml | 13 +++--- .../templates/csi-nfs-driverinfo.yaml | 2 +- .../templates/csi-nfs-node.yaml | 9 +++-- .../templates/rbac-csi-nfs-controller.yaml | 10 ++--- charts/latest/csi-driver-nfs/values.yaml | 19 ++++++--- cmd/nfsplugin/main.go | 9 +++-- deploy/csi-nfs-controller.yaml | 6 +-- hack/verify-examples.sh | 38 +++++++++++------- pkg/nfs/controllerserver_test.go | 2 +- pkg/nfs/nfs.go | 10 ++--- pkg/nfs/nfs_test.go | 4 +- pkg/nfs/version.go | 8 ++-- pkg/nfs/version_test.go | 8 ++-- test/e2e/driver/nfs_driver.go | 2 +- test/e2e/e2e_suite_test.go | 2 +- test/external-e2e/run.sh | 9 +++-- test/utils/nfs_log.sh | 12 ++++-- 19 files changed, 112 insertions(+), 84 deletions(-) diff --git a/charts/README.md b/charts/README.md index c672abd9..e135834c 100644 --- a/charts/README.md +++ b/charts/README.md @@ -36,24 +36,25 @@ The following table lists the configurable parameters of the latest NFS CSI Driv | Parameter | Description | Default | |---------------------------------------------------|------------------------------------------------------------|-------------------------------------------------------------------| +| `driver.name` | alternative driver name | `nfs.csi.k8s.io` | | `feature.enableFSGroupPolicy` | enable `fsGroupPolicy` on a k8s 1.20+ cluster | `false` | -| `image.nfs.repository` | csi-driver-nfs docker image | gcr.io/k8s-staging-sig-storage/nfsplugin | -| `image.nfs.tag` | csi-driver-nfs docker image tag | amd64-linux-canary | -| `image.nfs.pullPolicy` | csi-driver-nfs image pull policy | IfNotPresent | -| `image.csiProvisioner.repository` | csi-provisioner docker image | k8s.gcr.io/sig-storage/csi-provisioner | -| `image.csiProvisioner.tag` | csi-provisioner docker image tag | v2.0.4 | -| `image.csiProvisioner.pullPolicy` | csi-provisioner image pull policy | IfNotPresent | -| `image.livenessProbe.repository` | liveness-probe docker image | k8s.gcr.io/sig-storage/livenessprobe | -| `image.livenessProbe.tag` | liveness-probe docker image tag | v2.3.0 | -| `image.livenessProbe.pullPolicy` | liveness-probe image pull policy | IfNotPresent | -| `image.nodeDriverRegistrar.repository` | csi-node-driver-registrar docker image | k8s.gcr.io/sig-storage/csi-node-driver-registrar | -| `image.nodeDriverRegistrar.tag` | csi-node-driver-registrar docker image tag | v2.2.0 | -| `image.nodeDriverRegistrar.pullPolicy` | csi-node-driver-registrar image pull policy | IfNotPresent | +| `image.nfs.repository` | csi-driver-nfs docker image | `gcr.io/k8s-staging-sig-storage/nfsplugin` | +| `image.nfs.tag` | csi-driver-nfs docker image tag | `amd64-linux-canary` | +| `image.nfs.pullPolicy` | csi-driver-nfs image pull policy | `IfNotPresent` | +| `image.csiProvisioner.repository` | csi-provisioner docker image | `k8s.gcr.io/sig-storage/csi-provisioner` | +| `image.csiProvisioner.tag` | csi-provisioner docker image tag | `v2.0.4` | +| `image.csiProvisioner.pullPolicy` | csi-provisioner image pull policy | `IfNotPresent` | +| `image.livenessProbe.repository` | liveness-probe docker image | `k8s.gcr.io/sig-storage/livenessprobe` | +| `image.livenessProbe.tag` | liveness-probe docker image tag | `v2.3.0` | +| `image.livenessProbe.pullPolicy` | liveness-probe image pull policy | `IfNotPresent` | +| `image.nodeDriverRegistrar.repository` | csi-node-driver-registrar docker image | `k8s.gcr.io/sig-storage/csi-node-driver-registrar` | +| `image.nodeDriverRegistrar.tag` | csi-node-driver-registrar docker image tag | `v2.2.0` | +| `image.nodeDriverRegistrar.pullPolicy` | csi-node-driver-registrar image pull policy | `IfNotPresent` | | `imagePullSecrets` | Specify docker-registry secret names as an array | [] (does not add image pull secrets to deployed pods) | -| `serviceAccount.create` | whether create service account of csi-nfs-controller | true | -| `rbac.create` | whether create rbac of csi-nfs-controller | true | -| `controller.replicas` | the replicas of csi-nfs-controller | 2 | -| `controller.runOnMaster` | run controller on master node | false | +| `serviceAccount.create` | whether create service account of csi-nfs-controller | `true` | +| `rbac.create` | whether create rbac of csi-nfs-controller | `true` | +| `controller.replicas` | the replicas of csi-nfs-controller | `2` | +| `controller.runOnMaster` | run controller on master node | `false` | | `controller.logLevel` | controller driver log level |`5` | | `controller.tolerations` | controller pod tolerations | | | `node.logLevel` | node driver log level |`5` | diff --git a/charts/latest/csi-driver-nfs-v3.0.0.tgz b/charts/latest/csi-driver-nfs-v3.0.0.tgz index 5604a84906e3813be16e23df4447ffeb318ac496..09b5ecda1705d19c7e1ea78f6f6d2fc677d3ea1d 100644 GIT binary patch delta 3347 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 delta 3220 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" err + + APPNAME=$(kubectl apply -f $1 | grep -E "^(:?daemonset|deployment|statefulset|pod)" | awk '{printf $1}') + if [[ -n $(expr "${APPNAME}" : "\(daemonset\|deployment\|statefulset\)" || true) ]]; then + kubectl rollout status $APPNAME --watch --timeout=5m + else + kubectl wait "${APPNAME}" --for condition=ready --timeout=5m + fi +} + echo "begin to create deployment examples ..." kubectl apply -f ./deploy/example/storageclass-nfs.yaml -kubectl apply -f ./deploy/example/deployment.yaml -kubectl apply -f ./deploy/example/statefulset.yaml + +EXAMPLES+=(\ + deploy/example/deployment.yaml \ + deploy/example/statefulset.yaml \ +) + if [[ "$#" -gt 0 ]]&&[[ "$1" == *"ephemeral"* ]]; then - kubectl apply -f ./deploy/example/daemonset-nfs-ephemeral.yaml + EXAMPLES+=(\ + deploy/example/daemonset-nfs-ephemeral.yaml \ + ) fi -echo "sleep 60s ..." -sleep 60 - -echo "begin to check pod status ..." -kubectl get pods -o wide - -kubectl get pods --field-selector status.phase=Running | grep deployment-nfs -kubectl get pods --field-selector status.phase=Running | grep statefulset-nfs-0 -if [[ "$#" -gt 0 ]]&&[[ "$1" == *"ephemeral"* ]]; then - kubectl get pods --field-selector status.phase=Running | grep daemonset-nfs-ephemeral -fi +for EXAMPLE in "${EXAMPLES[@]}"; do + rollout_and_wait $EXAMPLE +done echo "deployment examples running completed." diff --git a/pkg/nfs/controllerserver_test.go b/pkg/nfs/controllerserver_test.go index e53179fb..fa07b28f 100644 --- a/pkg/nfs/controllerserver_test.go +++ b/pkg/nfs/controllerserver_test.go @@ -49,7 +49,7 @@ var ( func initTestController(t *testing.T) *ControllerServer { var perm *uint32 mounter := &mount.FakeMounter{MountPoints: []mount.MountPoint{}} - driver := NewNFSdriver("", "", perm) + driver := NewNFSdriver("", "", "", perm) driver.ns = NewNodeServer(driver, mounter) cs := NewControllerServer(driver) cs.workingMountDir = "/tmp" diff --git a/pkg/nfs/nfs.go b/pkg/nfs/nfs.go index bc7d9424..3261755e 100644 --- a/pkg/nfs/nfs.go +++ b/pkg/nfs/nfs.go @@ -42,7 +42,7 @@ type Driver struct { } const ( - DriverName = "nfs.csi.k8s.io" + DefaultDriverName = "nfs.csi.k8s.io" // Address of the NFS server paramServer = "server" // Base directory of the NFS server to create volumes under. @@ -56,11 +56,11 @@ var ( version = "3.0.0" ) -func NewNFSdriver(nodeID, endpoint string, perm *uint32) *Driver { - klog.Infof("Driver: %v version: %v", DriverName, version) +func NewNFSdriver(nodeID, driverName, endpoint string, perm *uint32) *Driver { + klog.Infof("Driver: %v version: %v", driverName, version) n := &Driver{ - name: DriverName, + name: driverName, version: version, nodeID: nodeID, endpoint: endpoint, @@ -100,7 +100,7 @@ func NewNodeServer(n *Driver, mounter mount.Interface) *NodeServer { } func (n *Driver) Run(testMode bool) { - versionMeta, err := GetVersionYAML() + versionMeta, err := GetVersionYAML(n.name) if err != nil { klog.Fatalf("%v", err) } diff --git a/pkg/nfs/nfs_test.go b/pkg/nfs/nfs_test.go index e789a700..f01f9bf4 100644 --- a/pkg/nfs/nfs_test.go +++ b/pkg/nfs/nfs_test.go @@ -36,7 +36,7 @@ func NewEmptyDriver(emptyField string) *Driver { switch emptyField { case "version": d = &Driver{ - name: DriverName, + name: DefaultDriverName, version: "", nodeID: fakeNodeID, cap: map[csi.VolumeCapability_AccessMode_Mode]bool{}, @@ -52,7 +52,7 @@ func NewEmptyDriver(emptyField string) *Driver { } default: d = &Driver{ - name: DriverName, + name: DefaultDriverName, version: version, nodeID: fakeNodeID, cap: map[csi.VolumeCapability_AccessMode_Mode]bool{}, diff --git a/pkg/nfs/version.go b/pkg/nfs/version.go index 1c8a313b..2390dccd 100644 --- a/pkg/nfs/version.go +++ b/pkg/nfs/version.go @@ -43,9 +43,9 @@ type VersionInfo struct { } // GetVersion returns the version information of the driver -func GetVersion() VersionInfo { +func GetVersion(driverName string) VersionInfo { return VersionInfo{ - DriverName: DriverName, + DriverName: driverName, DriverVersion: driverVersion, GitCommit: gitCommit, BuildDate: buildDate, @@ -57,8 +57,8 @@ func GetVersion() VersionInfo { // GetVersionYAML returns the version information of the driver // in YAML format -func GetVersionYAML() (string, error) { - info := GetVersion() +func GetVersionYAML(driverName string) (string, error) { + info := GetVersion(driverName) marshalled, err := yaml.Marshal(&info) if err != nil { return "", err diff --git a/pkg/nfs/version_test.go b/pkg/nfs/version_test.go index a1215fdd..42c45595 100644 --- a/pkg/nfs/version_test.go +++ b/pkg/nfs/version_test.go @@ -27,10 +27,10 @@ import ( ) func TestGetVersion(t *testing.T) { - version := GetVersion() + version := GetVersion(DefaultDriverName) expected := VersionInfo{ - DriverName: DriverName, + DriverName: DefaultDriverName, DriverVersion: "N/A", GitCommit: "N/A", BuildDate: "N/A", @@ -46,11 +46,11 @@ func TestGetVersion(t *testing.T) { } func TestGetVersionYAML(t *testing.T) { - resp, err := GetVersionYAML() + resp, err := GetVersionYAML("") if err != nil { t.Fatalf("Unexpected error: %v", err) } - versionInfo := GetVersion() + versionInfo := GetVersion("") marshalled, _ := yaml.Marshal(&versionInfo) expected := strings.TrimSpace(string(marshalled)) diff --git a/test/e2e/driver/nfs_driver.go b/test/e2e/driver/nfs_driver.go index 75a33e32..7ea82183 100644 --- a/test/e2e/driver/nfs_driver.go +++ b/test/e2e/driver/nfs_driver.go @@ -42,7 +42,7 @@ type NFSDriver struct { func InitNFSDriver() PVTestDriver { driverName := os.Getenv(NFSDriverNameVar) if driverName == "" { - driverName = nfs.DriverName + driverName = nfs.DefaultDriverName } klog.Infof("Using nfs driver: %s", driverName) diff --git a/test/e2e/e2e_suite_test.go b/test/e2e/e2e_suite_test.go index e69075cb..7444e8ad 100644 --- a/test/e2e/e2e_suite_test.go +++ b/test/e2e/e2e_suite_test.go @@ -68,7 +68,7 @@ var _ = ginkgo.BeforeSuite(func() { handleFlags() framework.AfterReadingAllFlags(&framework.TestContext) - nfsDriver = nfs.NewNFSdriver(nodeID, fmt.Sprintf("unix:///tmp/csi-%s.sock", uuid.NewUUID().String()), perm) + nfsDriver = nfs.NewNFSdriver(nodeID, nfs.DefaultDriverName, fmt.Sprintf("unix:///tmp/csi-%s.sock", uuid.NewUUID().String()), perm) controllerServer = nfs.NewControllerServer(nfsDriver) // install nfs server diff --git a/test/external-e2e/run.sh b/test/external-e2e/run.sh index edbc4c95..eed3bd43 100644 --- a/test/external-e2e/run.sh +++ b/test/external-e2e/run.sh @@ -17,6 +17,7 @@ set -xe PROJECT_ROOT=$(git rev-parse --show-toplevel) +DRIVER="test" install_ginkgo () { apt update -y @@ -29,8 +30,10 @@ setup_e2e_binaries() { tar -xvf e2e-tests.tar.gz && rm e2e-tests.tar.gz # enable fsGroupPolicy (only available from k8s 1.20) - export EXTRA_HELM_OPTIONS="--set feature.enableFSGroupPolicy=true" + export EXTRA_HELM_OPTIONS="--set feature.enableFSGroupPolicy=true --set driver.name=$DRIVER.csi.k8s.io --set controller.name=csi-$DRIVER-controller --set node.name=csi-$DRIVER-node" + # test on alternative driver name + sed -i "s/nfs.csi.k8s.io/$DRIVER.csi.k8s.io/g" deploy/example/storageclass-nfs.yaml # install csi driver mkdir -p /tmp/csi && cp deploy/example/storageclass-nfs.yaml /tmp/csi/storageclass.yaml make e2e-bootstrap @@ -40,14 +43,14 @@ setup_e2e_binaries() { print_logs() { bash ./hack/verify-examples.sh ephemeral echo "print out driver logs ..." - bash ./test/utils/nfs_log.sh + bash ./test/utils/nfs_log.sh $DRIVER } install_ginkgo setup_e2e_binaries trap print_logs EXIT -ginkgo -p --progress --v -focus='External.Storage.*nfs.csi.k8s.io' \ +ginkgo -p --progress --v -focus="External.Storage.*$DRIVER.csi.k8s.io" \ -skip='\[Disruptive\]|\[Slow\]' kubernetes/test/bin/e2e.test -- \ -storage.testdriver=$PROJECT_ROOT/test/external-e2e/testdriver.yaml \ --kubeconfig=$KUBECONFIG diff --git a/test/utils/nfs_log.sh b/test/utils/nfs_log.sh index 9ae8de47..18a70af4 100644 --- a/test/utils/nfs_log.sh +++ b/test/utils/nfs_log.sh @@ -18,6 +18,10 @@ set -e NS=kube-system CONTAINER=nfs +DRIVER=nfs +if [[ "$#" -gt 0 ]]; then + DRIVER=$1 +fi echo "print out all nodes status ..." kubectl get nodes -o wide @@ -31,16 +35,16 @@ echo "print out all $NS namespace pods status ..." kubectl get pods -n${NS} echo "======================================================================================" -echo "print out csi-nfs-controller logs ..." +echo "print out csi-$DRIVER-controller logs ..." echo "======================================================================================" -LABEL='app=csi-nfs-controller' +LABEL="app=csi-$DRIVER-controller" kubectl get pods -n${NS} -l${LABEL} \ | awk 'NR>1 {print $1}' \ | xargs -I {} kubectl logs {} --prefix -c${CONTAINER} -n${NS} -echo "print out csi-nfs-node logs ..." +echo "print out csi-$DRIVER-node logs ..." echo "======================================================================================" -LABEL='app=csi-nfs-node' +LABEL="app=csi-$DRIVER-node" kubectl get pods -n${NS} -l${LABEL} \ | awk 'NR>1 {print $1}' \ | xargs -I {} kubectl logs {} --prefix -c${CONTAINER} -n${NS}