From 5487b3f8f1cbd6440072b44d403a95985d61aa2c Mon Sep 17 00:00:00 2001
From: Vitaliy Filippov <vitalif@yourcmc.ru>
Date: Tue, 27 Jul 2021 00:04:02 +0300
Subject: [PATCH] Add manual (static) provisioning example

---
 deploy/kubernetes/examples/pvc-manual.yaml | 45 ++++++++++++++++++++++
 deploy/kubernetes/examples/pvc.yaml        |  3 ++
 pkg/driver/controllerserver.go             |  1 -
 3 files changed, 48 insertions(+), 1 deletion(-)
 create mode 100644 deploy/kubernetes/examples/pvc-manual.yaml

diff --git a/deploy/kubernetes/examples/pvc-manual.yaml b/deploy/kubernetes/examples/pvc-manual.yaml
new file mode 100644
index 0000000..2265642
--- /dev/null
+++ b/deploy/kubernetes/examples/pvc-manual.yaml
@@ -0,0 +1,45 @@
+# Statically provisioned PVC:
+# An existing bucket or path inside bucket manually created
+# by the administrator beforehand will be bound to the PVC,
+# and it won't be removed when you remove the PV
+apiVersion: v1
+kind: PersistentVolume
+metadata:
+  name: manualbucket/path
+spec:
+  storageClassName: csi-s3
+  capacity:
+    storage: 10Gi
+  accessModes:
+    - ReadWriteMany
+  claimRef:
+    namespace: default
+    name: manualclaim
+  csi:
+    driver: ch.ctrox.csi.s3-driver
+    controllerPublishSecretRef:
+      name: csi-s3-secret
+      namespace: kube-system
+    nodePublishSecretRef:
+      name: csi-s3-secret
+      namespace: kube-system
+    nodeStageSecretRef:
+      name: csi-s3-secret
+      namespace: kube-system
+    volumeAttributes:
+      capacity: 10Gi
+      mounter: geesefs
+    volumeHandle: manualbucket/path
+---
+apiVersion: v1
+kind: PersistentVolumeClaim
+metadata:
+  name: csi-s3-pvc
+spec:
+  # Empty storage class disables dynamic provisioning
+  storageClassName: ""
+  accessModes:
+    - ReadWriteMany
+  resources:
+    requests:
+      storage: 10Gi
diff --git a/deploy/kubernetes/examples/pvc.yaml b/deploy/kubernetes/examples/pvc.yaml
index 68f0496..ad56e55 100644
--- a/deploy/kubernetes/examples/pvc.yaml
+++ b/deploy/kubernetes/examples/pvc.yaml
@@ -1,3 +1,6 @@
+# Dynamically provisioned PVC:
+# A bucket or path inside bucket will be created automatically
+# for the PV and removed when the PV will be removed
 apiVersion: v1
 kind: PersistentVolumeClaim
 metadata:
diff --git a/pkg/driver/controllerserver.go b/pkg/driver/controllerserver.go
index 8a7337f..e332570 100644
--- a/pkg/driver/controllerserver.go
+++ b/pkg/driver/controllerserver.go
@@ -125,7 +125,6 @@ func (cs *controllerServer) DeleteVolume(ctx context.Context, req *csi.DeleteVol
 		return nil, fmt.Errorf("failed to initialize S3 client: %s", err)
 	}
 
-	// FIXME Don't delete the bucket if it existed initially
 	var deleteErr error
 	if prefix == "" {
 		// prefix is empty, we delete the whole bucket