fix(PVC): access modes match storage class capability [EE-5580] (#10550)

pull/10708/head
Ali 2023-11-30 09:48:14 +13:00 committed by GitHub
parent 92c18843b2
commit 87b486b798
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 7 additions and 0 deletions

View File

@ -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;