title: How can you reuse dynamically provisioned PersistentVolumes with Helm on GKE?
body: <p>I am trying to deploy a helm chart which uses <code>PersistentVolumeClaim</code> and <code>StorageClass</code> to dynamically provision the required sotrage. This works as expected, but I can't find any configuration which allows a workflow like</p>
  
  <pre><code>helm delete xxx
  
  # Make some changes and repackage chart
  
  helm install --replace xxx
  </code></pre>
  
  <p>I don't want to run the release constantly, and I want to reuse the storage in deployments in the future.</p>
  
  <p>Setting the storage class to <code>reclaimPolicy: Retain</code> keeps the disks, but helm will delete the PVC and orphan them. Annotating the PVC's so that helm does not delete them fixes this problem, but then running install causes the error</p>
  
  <pre><code>Error: release xxx failed: persistentvolumeclaims "xxx-xxx-storage" already exists
  </code></pre>
  
  <p>I think I have misunderstood something fundamental to managing releases in helm. Perhaps the volumes should not be created in the chart at all.</p>