diff --git a/app/kubernetes/converters/persistentVolumeClaim.js b/app/kubernetes/converters/persistentVolumeClaim.js index 2d0f2f308..c7421f1b5 100644 --- a/app/kubernetes/converters/persistentVolumeClaim.js +++ b/app/kubernetes/converters/persistentVolumeClaim.js @@ -5,6 +5,11 @@ import { KubernetesPersistentVolumeClaim } from 'Kubernetes/models/volume/models import { KubernetesPersistentVolumClaimCreatePayload } from 'Kubernetes/models/volume/payloads'; import { KubernetesPortainerApplicationOwnerLabel, KubernetesPortainerApplicationNameLabel } from 'Kubernetes/models/application/models'; +const storageClassToPVCAccessModes = { + RWO: 'ReadWriteOnce', + RWX: 'ReadWriteMany', +}; + class KubernetesPersistentVolumeClaimConverter { static apiToPersistentVolumeClaim(data, storageClasses, yaml) { const res = new KubernetesPersistentVolumeClaim(); @@ -63,6 +68,8 @@ class KubernetesPersistentVolumeClaimConverter { res.metadata.namespace = pvc.Namespace; res.spec.resources.requests.storage = pvc.Storage; res.spec.storageClassName = pvc.StorageClass ? pvc.StorageClass.Name : ''; + const accessModes = pvc.StorageClass && pvc.StorageClass.AccessModes ? pvc.StorageClass.AccessModes.map((accessMode) => storageClassToPVCAccessModes[accessMode]) : []; + res.spec.accessModes = accessModes; res.metadata.labels.app = pvc.ApplicationName; res.metadata.labels[KubernetesPortainerApplicationOwnerLabel] = pvc.ApplicationOwner; res.metadata.labels[KubernetesPortainerApplicationNameLabel] = pvc.ApplicationName;