Fix for HPA matching when deploying same HPA in multiple namespaces

Signed-off-by: goenning <me@goenning.net>
This commit is contained in:
goenning
2022-05-16 16:49:42 +01:00
parent 37a1bd7add
commit 81304e3e91
4 changed files with 26 additions and 8 deletions
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-kubernetes': patch
---
Fix for HPA matching when deploying same HPA in multiple namespaces
@@ -268,8 +268,11 @@ export const RolloutAccordions = ({
<RolloutAccordion
defaultExpanded={defaultExpanded}
matchingHpa={getMatchingHpa(
rollout.metadata?.name,
'rollout',
{
name: rollout.metadata?.name,
namespace: rollout.metadata?.namespace,
kind: 'rollout',
},
groupedResponses.horizontalPodAutoscalers,
)}
ownedPods={getOwnedPodsThroughReplicaSets(
@@ -186,8 +186,11 @@ export const DeploymentsAccordions = ({}: DeploymentsAccordionsProps) => {
<Grid item xs>
<DeploymentAccordion
matchingHpa={getMatchingHpa(
deployment.metadata?.name,
'deployment',
{
name: deployment.metadata?.name,
namespace: deployment.metadata?.namespace,
kind: 'deployment',
},
groupedResponses.horizontalPodAutoscalers,
)}
ownedPods={getOwnedPodsThroughReplicaSets(
+11 -4
View File
@@ -54,17 +54,24 @@ export const getOwnedPodsThroughReplicaSets = (
}, [] as V1Pod[]);
};
interface ResourceRef {
kind: string;
namespace?: string;
name?: string;
}
export const getMatchingHpa = (
ownerName: string | undefined,
ownerKind: string,
owner: ResourceRef,
hpas: V1HorizontalPodAutoscaler[],
): V1HorizontalPodAutoscaler | undefined => {
return hpas.find(hpa => {
return (
(hpa.spec?.scaleTargetRef?.kind ?? '').toLocaleLowerCase('en-US') ===
ownerKind.toLocaleLowerCase('en-US') &&
owner.kind.toLocaleLowerCase('en-US') &&
(hpa.metadata?.namespace ?? '') ===
(owner.namespace ?? 'unknown-namespace') &&
(hpa.spec?.scaleTargetRef?.name ?? '') ===
(ownerName ?? 'unknown-deployment')
(owner.name ?? 'unknown-deployment')
);
});
};