fix(pods): don't add labels to old pod that has none [EE-6587] (#11009)

pull/10934/head
Ali 2024-01-24 14:44:15 +13:00 committed by GitHub
parent 3ccc764d40
commit 26e52a0f00
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 10 additions and 4 deletions

View File

@ -166,10 +166,16 @@ function createPayload(pod) {
const payload = createPayloadFactory();
payload.metadata.name = pod.Name;
payload.metadata.namespace = pod.Namespace;
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 };
// it's possible for pods not to have labels. Keep labels empty in the oldpayload if there aren't any, otherwise patch will fail
// TODO: when migrating to react, the oldValues should just be the fetched manifest directly from the kube api
if (Object.keys(pod.Labels || {}).length || Object.keys(pod.ServiceSelector || {}).length) {
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 };
} else {
payload.metadata.labels = undefined;
}
if (pod.Note) {
payload.metadata.annotations[KubernetesPortainerApplicationNote] = pod.Note;
} else {