diff --git a/theodolite-quarkus/src/main/kotlin/theodolite/benchmark/KubernetesBenchmark.kt b/theodolite-quarkus/src/main/kotlin/theodolite/benchmark/KubernetesBenchmark.kt index ee3307a1c430dcc0a5cc3c7dbbd38099bd2f11ef..1e2d9a2e675bee3817c493e5afc89333ca508ed8 100644 --- a/theodolite-quarkus/src/main/kotlin/theodolite/benchmark/KubernetesBenchmark.kt +++ b/theodolite-quarkus/src/main/kotlin/theodolite/benchmark/KubernetesBenchmark.kt @@ -2,10 +2,14 @@ package theodolite.benchmark import io.fabric8.kubernetes.api.model.KubernetesResource import io.fabric8.kubernetes.client.DefaultKubernetesClient +import mu.KotlinLogging import theodolite.k8s.K8sResourceLoader import theodolite.patcher.PatcherManager import theodolite.util.* -import java.util.* + +private val logger = KotlinLogging.logger {} + +private var DEFAULT_NAMESPACE = "default" class KubernetesBenchmark : Benchmark { lateinit var name: String @@ -14,11 +18,16 @@ class KubernetesBenchmark : Benchmark { lateinit var resourceTypes: List<TypeName> lateinit var loadTypes: List<TypeName> lateinit var kafkaConfig: KafkaConfig + lateinit var namespace: String private fun loadKubernetesResources(resources: List<String>): List<Pair<String, KubernetesResource>> { val basePath = "./../../../resources/main/yaml/" val parser = YamlParser() - val loader = K8sResourceLoader(DefaultKubernetesClient().inNamespace("theodolite-she")) + + namespace = System.getenv("NAMESPACE") ?: DEFAULT_NAMESPACE + logger.info { "Using $namespace as namespace." } + + val loader = K8sResourceLoader(DefaultKubernetesClient().inNamespace(namespace)) return resources .map { resource -> val resourcePath = "$basePath/$resource" @@ -50,6 +59,7 @@ class KubernetesBenchmark : Benchmark { } return KubernetesBenchmarkDeployment( + namespace = namespace, resources = resources.map { r -> r.second }, kafkaConfig = hashMapOf("bootstrap.servers" to kafkaConfig.bootstrapServer), topics = kafkaConfig.getKafkaTopics() diff --git a/theodolite-quarkus/src/main/kotlin/theodolite/benchmark/KubernetesBenchmarkDeployment.kt b/theodolite-quarkus/src/main/kotlin/theodolite/benchmark/KubernetesBenchmarkDeployment.kt index 6049fdb9d749c295dc97a0f067995aa74c7aa6fe..342ceebb89a2ccd04a84ba40fb49a1e4872fa24d 100644 --- a/theodolite-quarkus/src/main/kotlin/theodolite/benchmark/KubernetesBenchmarkDeployment.kt +++ b/theodolite-quarkus/src/main/kotlin/theodolite/benchmark/KubernetesBenchmarkDeployment.kt @@ -5,15 +5,15 @@ import io.fabric8.kubernetes.client.DefaultKubernetesClient import org.apache.kafka.clients.admin.NewTopic import theodolite.k8s.K8sManager import theodolite.k8s.TopicManager -import java.util.* class KubernetesBenchmarkDeployment( + val namespace: String, val resources: List<KubernetesResource>, private val kafkaConfig: HashMap<String, Any>, private val topics: Collection<NewTopic> ) : BenchmarkDeployment { private val kafkaController = TopicManager(this.kafkaConfig) - private val kubernetesManager = K8sManager(DefaultKubernetesClient().inNamespace("theodolite-she")) + private val kubernetesManager = K8sManager(DefaultKubernetesClient().inNamespace(namespace)) override fun setup() { kafkaController.createTopics(this.topics)