mirror of
https://github.com/portainer/portainer.git
synced 2025-07-24 15:59:41 +02:00
fix(app): allow editing pod services [EE-6480] (#10875)
* fix(app): allow editing pod services [EE-6480] * address review comment --------- Co-authored-by: testa113 <testa113> Co-authored-by: prabhat khera <prabhat.khera@portainer.io>
This commit is contained in:
parent
7cba02226e
commit
4c0049edbe
5 changed files with 60 additions and 11 deletions
|
@ -9,7 +9,9 @@ import {
|
|||
KubernetesPortainerApplicationNote,
|
||||
} from 'Kubernetes/models/application/models';
|
||||
|
||||
import KubernetesResourceReservationHelper from 'Kubernetes/helpers/resourceReservationHelper';
|
||||
import { KubernetesPod, KubernetesPodToleration, KubernetesPodAffinity, KubernetesPodContainer, KubernetesPodContainerTypes, KubernetesPodEviction } from 'Kubernetes/pod/models';
|
||||
import KubernetesApplicationHelper from 'Kubernetes/helpers/application';
|
||||
import { createPayloadFactory } from './payloads/create';
|
||||
|
||||
function computeStatus(statuses) {
|
||||
|
@ -100,6 +102,32 @@ function computeContainers(data) {
|
|||
}
|
||||
|
||||
export default class KubernetesPodConverter {
|
||||
static applicationFormValuesToPod(formValues, volumeClaims) {
|
||||
let serviceSelector = {};
|
||||
if (formValues.Services.length) {
|
||||
serviceSelector = formValues.Services[0].Selector || { app: formValues.Name };
|
||||
}
|
||||
|
||||
const res = new KubernetesPod();
|
||||
res.Namespace = formValues.ResourcePool.Namespace.Name;
|
||||
res.Name = formValues.Name;
|
||||
res.StackName = formValues.StackName ? formValues.StackName : formValues.Name;
|
||||
res.ApplicationOwner = formValues.ApplicationOwner;
|
||||
res.ApplicationName = formValues.Name;
|
||||
res.ImageModel = formValues.ImageModel;
|
||||
res.CpuLimit = formValues.CpuLimit;
|
||||
res.MemoryLimit = KubernetesResourceReservationHelper.bytesValue(formValues.MemoryLimit);
|
||||
res.Env = KubernetesApplicationHelper.generateEnvFromEnvVariables(formValues.EnvironmentVariables);
|
||||
res.Containers = formValues.Containers;
|
||||
res.ApplicationType = formValues.ApplicationType;
|
||||
res.ServiceSelector = serviceSelector;
|
||||
res.Labels = formValues.Labels;
|
||||
KubernetesApplicationHelper.generateVolumesFromPersistentVolumClaims(res, volumeClaims);
|
||||
KubernetesApplicationHelper.generateEnvOrVolumesFromConfigurations(res, formValues.ConfigMaps, formValues.Secrets);
|
||||
KubernetesApplicationHelper.generateAffinityFromPlacements(res, formValues);
|
||||
return res;
|
||||
}
|
||||
|
||||
static apiToModel(data) {
|
||||
const res = new KubernetesPod();
|
||||
res.Id = data.metadata.uid;
|
||||
|
@ -115,6 +143,7 @@ export default class KubernetesPodConverter {
|
|||
res.Affinity = computeAffinity(data.spec.affinity);
|
||||
res.NodeSelector = data.spec.nodeSelector;
|
||||
res.Tolerations = computeTolerations(data.spec.tolerations);
|
||||
res.Labels = data.metadata.labels;
|
||||
return res;
|
||||
}
|
||||
|
||||
|
@ -140,6 +169,7 @@ function createPayload(pod) {
|
|||
payload.metadata.labels[KubernetesPortainerApplicationStackNameLabel] = pod.StackName;
|
||||
payload.metadata.labels[KubernetesPortainerApplicationNameLabel] = pod.ApplicationName;
|
||||
payload.metadata.labels[KubernetesPortainerApplicationOwnerLabel] = pod.ApplicationOwner;
|
||||
payload.metadata.labels = { ...(pod.Labels || {}), ...(pod.ServiceSelector || {}), ...payload.metadata.labels };
|
||||
if (pod.Note) {
|
||||
payload.metadata.annotations[KubernetesPortainerApplicationNote] = pod.Note;
|
||||
} else {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue