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

Merge branch 'feature/155-make-Namespace-configurable' into 'theodolite-kotlin'

Make namespace configurable

See merge request !91
parents 1119f6d6 de84b8fe
Branches
Tags
4 merge requests!159Re-implementation of Theodolite with Kotlin/Quarkus,!157Update Graal Image in CI pipeline,!91Make namespace configurable,!83WIP: Re-implementation of Theodolite with Kotlin/Quarkus
Pipeline #2225 passed
......@@ -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()
......
......@@ -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)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment