<p>I've been reading through docs and can't find a clear answer on how to do this.</p>
<p>I have an AWS EFS claim and a storage class which i have applied. I have a PV and PVC that are in a namespace and can see the storage class, which i assume is cluster wide.</p>
<p>If i try to apply the same PV and PVC manifests to a different namespace i get an error that the storage class is not found.</p>
<p>If i then delete these i get the following warning:</p>
<pre><code>warning: deleting cluster-scoped resources, not scoped to the provided namespace
persistentvolume &quot;efs-pv&quot; deleted
</code></pre>
<p>This is really confusing.</p>
<p>How would i share this efs storage between different namespaces? do i need to make changes to the PV and PVC (at the moment i already have persistentVolumeReclaimPolicy: Retain), and what do i apply to which namespace? what is cluster wide and what is namespace scoped?</p>

Happy Machine
<p>Presumed you can do <code>aws efs describe-file-systems</code> to see your EFS is correctly configured and you have the <code>FileSystemId</code> ready for mount.</p>
<p>You have also installed the AWS EFS CSI driver and all driver pods are running with no issue.</p>
<p>For StorageClass you only create <strong>once</strong> for each type.</p>
<p>For PersistentVolume you only create <strong>once</strong> for each mount point (static).</p>
<p>In case of simultaneous access from <strong>different</strong> namespaces, you create one PersistentVolumeClaim in each namespace that referred the same StorageClass.</p>
<pre><code>...
kind: StorageClass
metadata:
  name: my-efs-sc    &lt;--- This name MUST be referred across PVC/PC
provisioner: efs.csi.aws.com    &lt;--- MUST have EFS CSI driver installed

...
kind: PersistentVolume
spec:
  storageClassName: my-efs-sc    &lt;--- Have you verify the name?
  ...
  accessModes:
  - ReadWriteMany    &lt;--- MUST use this mode
  ...

kind: PersistentVolumeClaim
metadata:
  ...
  namespace: my-namespace-A    &lt;--- namespace scope
spec:
  storageClassName: my-efs-sc    &lt;--- Have you verify the name?
  accessModes:
    - ReadWriteMany    &lt;--- MUST use this mode
  ...

kind: PersistentVolumeClaim
metadata:
  ...
  namespace: my-namespace-B    &lt;--- namespace scope
spec:
  storageClassName: my-efs-sc    &lt;--- Have you verify the name?
  accessModes:
    - ReadWriteMany    &lt;--- MUST use this mode
  ...
</code></pre>
<p>Check the PVC/PV status with kubectl to ensure all are bound correctly.</p>
