Skip to content
Snippets Groups Projects
Commit 5f6010d1 authored by Sören Henning's avatar Sören Henning
Browse files

Merge branch 'make-teardown-faster' into 'master'

Make teardown faster

See merge request !278
parents 27468d4f d8c771f9
No related branches found
No related tags found
1 merge request!278Make teardown faster
Pipeline #8601 passed
......@@ -27,8 +27,9 @@ class K8sManager(private val client: NamespacedKubernetesClient) {
* Removes different k8s resources using the client.
* @throws IllegalArgumentException if KubernetesResource not supported.
*/
fun remove(resource: HasMetadata) {
fun remove(resource: HasMetadata, blockUntilDeleted: Boolean = true) {
client.resource(resource).delete()
if(blockUntilDeleted) {
when (resource) {
is Deployment -> {
ResourceByLabelHandler(client = client)
......@@ -47,3 +48,4 @@ class K8sManager(private val client: NamespacedKubernetesClient) {
}
}
}
}
......@@ -2,6 +2,8 @@ package rocks.theodolite.kubernetes
import io.fabric8.kubernetes.api.model.HasMetadata
import io.fabric8.kubernetes.api.model.KubernetesResource
import io.fabric8.kubernetes.api.model.apps.Deployment
import io.fabric8.kubernetes.api.model.apps.StatefulSet
import io.fabric8.kubernetes.client.NamespacedKubernetesClient
import io.quarkus.runtime.annotations.RegisterForReflection
import mu.KotlinLogging
......@@ -72,14 +74,25 @@ class KubernetesBenchmarkDeployment(
* - Remove the [KubernetesResource]s.
*/
override fun teardown() {
loadGenResources.forEach { kubernetesManager.remove(it) }
val podCleaner = ResourceByLabelHandler(client)
loadGenResources.forEach { kubernetesManager.remove(it, false) }
loadGenAfterActions.forEach { it.exec(client = client) }
appResources.forEach { kubernetesManager.remove(it) }
appResources.forEach { kubernetesManager.remove(it,false) }
sutAfterActions.forEach { it.exec(client = client) }
if (this.topics.isNotEmpty()) {
kafkaController.removeTopics(this.topics.map { topic -> topic.name })
}
ResourceByLabelHandler(client).removePods(
listOf(loadGenResources, appResources)
.forEach {
if (it is Deployment) {
podCleaner.blockUntilPodsDeleted(it.spec.selector.matchLabels)
} else if (it is StatefulSet) {
podCleaner.blockUntilPodsDeleted(it.spec.selector.matchLabels)
}
}
podCleaner.removePods(
labelName = LAG_EXPORTER_POD_LABEL_NAME,
labelValue = LAG_EXPORTER_POD_LABEL_VALUE
)
......
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment