From 87b486b7986788ef3ceb26e4bfc93b01924fa6fe Mon Sep 17 00:00:00 2001 From: Ali <83188384+testA113@users.noreply.github.com> Date: Thu, 30 Nov 2023 09:48:14 +1300 Subject: [PATCH] fix(PVC): access modes match storage class capability [EE-5580] (#10550) --- app/kubernetes/converters/persistentVolumeClaim.js | 7 +++++++ 1 file changed, 7 insertions(+) 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;