diff --git a/theodolite/src/main/kotlin/theodolite/k8s/K8sManager.kt b/theodolite/src/main/kotlin/theodolite/k8s/K8sManager.kt
index abeb1c514d100fc3a12bd8f210e89d65eff9b2cf..389d5eefad556df502c218862e2f253ef8ad2100 100644
--- a/theodolite/src/main/kotlin/theodolite/k8s/K8sManager.kt
+++ b/theodolite/src/main/kotlin/theodolite/k8s/K8sManager.kt
@@ -46,8 +46,7 @@ class K8sManager(private val client: NamespacedKubernetesClient) {
                 this.client.apps().deployments().delete(resource)
                 ResourceByLabelHandler(client = client)
                     .blockUntilPodsDeleted(
-                        labelName = "app",
-                        labelValue = resource.spec.selector.matchLabels["app"]!!
+                        matchLabels = resource.spec.selector.matchLabels
                     )
                 logger.info { "Deployment '${resource.metadata.name}' deleted." }
             }
@@ -59,8 +58,7 @@ class K8sManager(private val client: NamespacedKubernetesClient) {
                 this.client.apps().statefulSets().delete(resource)
                 ResourceByLabelHandler(client = client)
                     .blockUntilPodsDeleted(
-                        labelName = "app",
-                        labelValue = resource.spec.selector.matchLabels["app"]!!
+                        matchLabels = resource.spec.selector.matchLabels
                     )
                 logger.info { "StatefulSet '$resource.metadata.name' deleted." }
             }
diff --git a/theodolite/src/main/kotlin/theodolite/k8s/ResourceByLabelHandler.kt b/theodolite/src/main/kotlin/theodolite/k8s/ResourceByLabelHandler.kt
index 9f3754c54f4b1eeb018b55787974179647f726b6..28a72c8947bffe7b57203cacf2460d7080fa7b51 100644
--- a/theodolite/src/main/kotlin/theodolite/k8s/ResourceByLabelHandler.kt
+++ b/theodolite/src/main/kotlin/theodolite/k8s/ResourceByLabelHandler.kt
@@ -99,16 +99,16 @@ class ResourceByLabelHandler(private val client: NamespacedKubernetesClient) {
      * @param [labelName] the label name
      * @param [labelValue] the value of this label
      * */
-    fun blockUntilPodsDeleted(labelName: String, labelValue: String) {
+    fun blockUntilPodsDeleted(matchLabels: MutableMap<String, String>) {
         while (
             !this.client
                 .pods()
-                .withLabel("$labelName=$labelValue")
+                .withLabels(matchLabels)
                 .list()
                 .items
                 .isNullOrEmpty()
         ) {
-            logger.info { "Wait for pods with label $labelName=$labelValue to be deleted." }
+            logger.info { "Wait for pods with label ${matchLabels.toString()} to be deleted." }
             Thread.sleep(1000)
         }
     }