From f109fe3860371dd0be3434b10a721936dc258b16 Mon Sep 17 00:00:00 2001 From: Janis Date: Sat, 16 May 2026 15:45:41 +0200 Subject: [PATCH] fix: improve pod instance ID matching logic in AutoScaler and HealthMonitor --- .../scala/de/nowchess/coordinator/service/AutoScaler.scala | 6 +++--- .../de/nowchess/coordinator/service/HealthMonitor.scala | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/modules/coordinator/src/main/scala/de/nowchess/coordinator/service/AutoScaler.scala b/modules/coordinator/src/main/scala/de/nowchess/coordinator/service/AutoScaler.scala index 173ad76..3185ba9 100644 --- a/modules/coordinator/src/main/scala/de/nowchess/coordinator/service/AutoScaler.scala +++ b/modules/coordinator/src/main/scala/de/nowchess/coordinator/service/AutoScaler.scala @@ -51,7 +51,7 @@ class AutoScaler: drainingForScaleDown.remove(instanceId) def clearDrainingByPodName(podName: String): Unit = - drainingForScaleDown.asScala.find(podName.contains).foreach(drainingForScaleDown.remove) + drainingForScaleDown.asScala.find(id => id.contains(podName)).foreach(drainingForScaleDown.remove) private def kubeClientOpt: Option[KubernetesClient] = if kubeClientInstance.isUnsatisfied then None @@ -124,7 +124,7 @@ class AutoScaler: try val pods = kube.pods().inNamespace(config.k8sNamespace).withLabel(config.k8sRolloutLabelSelector).list().getItems.asScala - pods.find(_.getMetadata.getName.contains(instanceId)).exists { pod => + pods.find(pod => instanceId.contains(pod.getMetadata.getName)).exists { pod => try val requests = Option(pod.getSpec) .flatMap(s => Option(s.getContainers)) @@ -302,7 +302,7 @@ class AutoScaler: .list() .getItems .asScala - pods.find(_.getMetadata.getName.contains(instanceId)) match + pods.find(pod => instanceId.contains(pod.getMetadata.getName)) match case Some(pod) => kube.pods().inNamespace(config.k8sNamespace).withName(pod.getMetadata.getName).withGracePeriod(0L).delete() log.infof("Force-deleted pod for drained instance %s", instanceId) diff --git a/modules/coordinator/src/main/scala/de/nowchess/coordinator/service/HealthMonitor.scala b/modules/coordinator/src/main/scala/de/nowchess/coordinator/service/HealthMonitor.scala index 959ae69..c9c60b6 100644 --- a/modules/coordinator/src/main/scala/de/nowchess/coordinator/service/HealthMonitor.scala +++ b/modules/coordinator/src/main/scala/de/nowchess/coordinator/service/HealthMonitor.scala @@ -130,7 +130,7 @@ class HealthMonitor: pods.exists { pod => val podName = pod.getMetadata.getName - podName.contains(instanceId) && isPodReady(pod) + instanceId.contains(podName) && isPodReady(pod) } catch case ex: Exception => @@ -184,7 +184,7 @@ class HealthMonitor: .getItems .asScala - pods.find(pod => pod.getMetadata.getName.contains(instanceId)) match + pods.find(pod => instanceId.contains(pod.getMetadata.getName)) match case Some(pod) => val podName = pod.getMetadata.getName kube.pods().inNamespace(config.k8sNamespace).withName(podName).withGracePeriod(0L).delete() @@ -244,4 +244,4 @@ class HealthMonitor: private def findRegisteredInstance(pod: Pod): Option[InstanceMetadata] = val podName = pod.getMetadata.getName - instanceRegistry.getAllInstances.find(inst => podName.contains(inst.instanceId)) + instanceRegistry.getAllInstances.find(inst => inst.instanceId.contains(podName))