From 1a02f9e18673d0038e9a307fee5ea5219dc76af8 Mon Sep 17 00:00:00 2001 From: Janis Date: Sun, 17 May 2026 13:49:03 +0200 Subject: [PATCH] fix: remove unused clearDrainingByPodName method and update HealthMonitor to clear draining instances --- .../scala/de/nowchess/coordinator/service/AutoScaler.scala | 3 --- .../scala/de/nowchess/coordinator/service/HealthMonitor.scala | 2 +- 2 files changed, 1 insertion(+), 4 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 3185ba9..c2ae167 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 @@ -50,9 +50,6 @@ class AutoScaler: def clearDraining(instanceId: String): Unit = drainingForScaleDown.remove(instanceId) - def clearDrainingByPodName(podName: String): Unit = - drainingForScaleDown.asScala.find(id => id.contains(podName)).foreach(drainingForScaleDown.remove) - private def kubeClientOpt: Option[KubernetesClient] = if kubeClientInstance.isUnsatisfied then None else Some(kubeClientInstance.get()) 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 c9c60b6..9b2de02 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 @@ -89,6 +89,7 @@ class HealthMonitor: log.warnf("Evicted %d stale instances: %s", evicted.size, evicted.mkString(", ")) evicted.foreach(deleteK8sPod) val unexpectedEvictions = evicted.filterNot(autoScaler.isDrainingForScaleDown) + evicted.foreach(autoScaler.clearDraining) if unexpectedEvictions.nonEmpty then autoScaler.scaleUp() val instances = instanceRegistry.getAllInstances val failed = instances.collect { inst => @@ -230,7 +231,6 @@ class HealthMonitor: private def handlePodGone(pod: Pod): Unit = val podName = pod.getMetadata.getName - autoScaler.clearDrainingByPodName(podName) findRegisteredInstance(pod).foreach { inst => log.warnf("Pod %s deleted — triggering failover for %s", podName, inst.instanceId) failoverService