mirror of
https://github.com/portainer/portainer.git
synced 2025-07-19 13:29:41 +02:00
* feat(k8s/resource-pool): add the ability to mark/unmark resource pool as system fix(kube/ns): check label to see if namespace is system refactor(k8s/namespaces): rename variables feat(kubernetes): toggle system state in the server (#5361) fix(app/resource-pool): UI fixes feat(app/resource-pool): add confirmation modal when unamrking system namespace * refactor(app): review changes * feat(app/namespaces): introduce store to retrieve namespace system status without changing all the kubernetes models refactor(app/namespaces): remove unused code first introduced for system tagging fix(app/namespaces): cache namespaces to retrieve system status regardless of namespace reference format refactor(app): migrate namespace store from helper to a separate singleton refactor(app): remove KubernetesNamespaceHelper from DI cycle * refactor(app): normalize usage of KubernetesNamespaceHelper functions * refactor(app/k8s): change namespace store to functions instead of class Co-authored-by: LP B <xAt0mZ@users.noreply.github.com>
45 lines
1.7 KiB
JavaScript
45 lines
1.7 KiB
JavaScript
import _ from 'lodash-es';
|
|
|
|
import { KubernetesResourcePool } from 'Kubernetes/models/resource-pool/models';
|
|
import { KubernetesNamespace } from 'Kubernetes/models/namespace/models';
|
|
import { KubernetesIngressConverter } from 'Kubernetes/ingress/converter';
|
|
import KubernetesResourceQuotaConverter from './resourceQuota';
|
|
|
|
class KubernetesResourcePoolConverter {
|
|
static apiToResourcePool(namespace) {
|
|
const res = new KubernetesResourcePool();
|
|
res.Namespace = namespace;
|
|
res.Yaml = namespace.Yaml;
|
|
return res;
|
|
}
|
|
|
|
static formValuesToResourcePool(formValues) {
|
|
const namespace = new KubernetesNamespace();
|
|
namespace.Name = formValues.Name;
|
|
namespace.ResourcePoolName = formValues.Name;
|
|
namespace.ResourcePoolOwner = formValues.Owner;
|
|
namespace.IsSystem = formValues.IsSystem;
|
|
|
|
const quota = KubernetesResourceQuotaConverter.resourcePoolFormValuesToResourceQuota(formValues);
|
|
|
|
const ingMap = _.map(formValues.IngressClasses, (c) => {
|
|
if (c.Selected) {
|
|
c.Namespace = namespace.Name;
|
|
return KubernetesIngressConverter.resourcePoolIngressClassFormValueToIngress(c);
|
|
}
|
|
});
|
|
const ingresses = _.without(ingMap, undefined);
|
|
const registries = _.map(formValues.Registries, (r) => {
|
|
if (!r.RegistryAccesses[formValues.EndpointId]) {
|
|
r.RegistryAccesses[formValues.EndpointId] = { Namespaces: [] };
|
|
}
|
|
if (!_.includes(r.RegistryAccesses[formValues.EndpointId].Namespaces, formValues.Name)) {
|
|
r.RegistryAccesses[formValues.EndpointId].Namespaces = [...r.RegistryAccesses[formValues.EndpointId].Namespaces, formValues.Name];
|
|
}
|
|
return r;
|
|
});
|
|
return [namespace, quota, ingresses, registries];
|
|
}
|
|
}
|
|
|
|
export default KubernetesResourcePoolConverter;
|