diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 8e3e702ff3ef61135f60bedebd82539a9eea5074..f9546182015dafff0e8c62e40318e4af03554686 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -64,7 +64,7 @@ create geotiff storage:
     # copy secret kubeconfig to the mounted (pwd) directory
     - cp $kubekorner_k3s_config .
     - kubeconfig=$(basename $kubekorner_k3s_config)
-    - ./helpers/create_pvc.sh "$ns" "production/geotiff-pvc.yaml" "$kubeconfig"
+    - ./helpers/create_pvc.sh "$ns" "production/geotiff-pvc.yaml" "cspp-geo-geo2grid" "$kubeconfig"
   # this job doesn't actually need any artifacts from previous jobs
   dependencies: []
   rules:
diff --git a/helpers/create_pvc.sh b/helpers/create_pvc.sh
index bb619792ac59c3dcf6819b1d19515d2c9ec3fcf6..20e7dd92a8f282169c47dcfc4b4c833c829c32f2 100755
--- a/helpers/create_pvc.sh
+++ b/helpers/create_pvc.sh
@@ -1,16 +1,23 @@
 #!/usr/bin/env bash
 
-if [[ $# -eq 2 ]]; then
+fail() {
+    echo "$@"
+    exit 3
+}
+
+if [[ $# -eq 3 ]]; then
     ns=$1
-    pvc=$2
+    pvc_file=$2
+    pvc_name=$3
     EXTRA_ARGS="--namespace $ns"
-elif [[ $# -eq 3 ]]; then
+elif [[ $# -eq 4 ]]; then
     ns=$1
-    pvc=$2
-    kubeconfig=$3
+    pvc_file=$2
+    pvc_name=$3
+    kubeconfig=$4
     EXTRA_ARGS="--namespace $ns --kubeconfig $kubeconfig"
 else
-    echo "Usage: ./create_pvc.sh <kubernetes namespace> <PVC YAML definition> <kubernetes config file>"
+    echo "Usage: ./create_pvc.sh <kubernetes namespace> <PVC YAML definition> <PVC name> [<kubernetes config file>]"
     exit 1
 fi
 
@@ -19,11 +26,23 @@ fi
 # didn't change. Let's make sure it exists on the cluster and if so, don't
 # try to recreate it.
 if [[ $CI_PIPELINE_SOURCE == "pipeline" ]]; then
-    pvc_exists=$(kubectl $EXTRA_ARGS get pvc $pvc -o jsonpath="{.metadata.name}" || echo "")
+    pvc_exists=$(kubectl $EXTRA_ARGS get pvc $pvc_name -o jsonpath="{.metadata.name}" || echo "")
     if [[ "$pvc_exists" != "" ]]; then
         # it exists
         exit 0
     fi
 fi
 
-kubectl $EXTRA_ARGS replace -f $pvc
\ No newline at end of file
+pvc_pending=$(kubectl $EXTRA_ARGS get pvc $pvc_name -o jsonpath="{.status.phase}" || echo "")
+if [[ $pvc_pending == "" ]]; then
+    echo "PVC does not exist, creating..."
+elif [[ $pvc_pending != "Pending" ]]; then
+    echo "PVC already exists and is not pending. Manually 'helm uninstall' all bound pods"
+    exit 2
+else
+    echo "PVC exists but is pending, deleting..."
+#    kubectl $EXTRA_ARGS delete $pvc_name || fail "Could not delete existing PVC"
+fi
+
+
+kubectl $EXTRA_ARGS replace -f $pvc_file
\ No newline at end of file