Skip to content
Snippets Groups Projects
Commit 0c1215a0 authored by Lorenz Boguhn's avatar Lorenz Boguhn
Browse files

Its working now

parent ba1f5b58
No related branches found
No related tags found
4 merge requests!159Re-implementation of Theodolite with Kotlin/Quarkus,!157Update Graal Image in CI pipeline,!106Introduce a Theodolite operator,!83WIP: Re-implementation of Theodolite with Kotlin/Quarkus
Showing with 30 additions and 49 deletions
...@@ -6,6 +6,7 @@ import io.fabric8.kubernetes.client.CustomResource ...@@ -6,6 +6,7 @@ import io.fabric8.kubernetes.client.CustomResource
import theodolite.util.ConfigurationOverride import theodolite.util.ConfigurationOverride
import kotlin.properties.Delegates import kotlin.properties.Delegates
@JsonDeserialize
class BenchmarkExecution : CustomResource(){ class BenchmarkExecution : CustomResource(){
lateinit var name: String lateinit var name: String
lateinit var benchmark: String lateinit var benchmark: String
......
package theodolite.benchmark
import io.fabric8.kubernetes.client.CustomResourceDoneable
import io.fabric8.kubernetes.api.builder.Function
class DonableTestResource(resource: TestResource, function: Function<TestResource,TestResource>) :
CustomResourceDoneable<TestResource>(resource, function)
\ No newline at end of file
package theodolite.benchmark
import io.fabric8.kubernetes.client.CustomResource
data class TestResource(var spec: TestSpec = TestSpec()): CustomResource() {
}
\ No newline at end of file
package theodolite.benchmark
import io.fabric8.kubernetes.client.CustomResourceList
class TestResourceList : CustomResourceList<TestResource> ()
\ No newline at end of file
package theodolite.benchmark
import com.fasterxml.jackson.databind.annotation.JsonDeserialize
@JsonDeserialize
data class TestSpec(var message: String = "MEGAAIDS") {
}
\ No newline at end of file
package theodolite.execution package theodolite.execution
import io.fabric8.kubernetes.api.model.apiextensions.v1beta1.CustomResourceDefinitionBuilder
import io.fabric8.kubernetes.client.DefaultKubernetesClient import io.fabric8.kubernetes.client.DefaultKubernetesClient
import io.fabric8.kubernetes.client.dsl.base.CustomResourceDefinitionContext import io.fabric8.kubernetes.client.dsl.base.CustomResourceDefinitionContext
import io.fabric8.kubernetes.client.informers.ResourceEventHandler import io.fabric8.kubernetes.client.informers.ResourceEventHandler
import io.quarkus.runtime.annotations.QuarkusMain import io.quarkus.runtime.annotations.QuarkusMain
import mu.KotlinLogging import mu.KotlinLogging
import theodolite.benchmark.* import theodolite.benchmark.*
import theodolite.util.YamlParser import io.fabric8.kubernetes.internal.KubernetesDeserializer
import kotlin.system.exitProcess
private var DEFAULT_NAMESPACE = "default" private var DEFAULT_NAMESPACE = "default"
private val logger = KotlinLogging.logger {} private val logger = KotlinLogging.logger {}
...@@ -24,15 +25,12 @@ object TheodoliteCRDExecutor { ...@@ -24,15 +25,12 @@ object TheodoliteCRDExecutor {
val client = DefaultKubernetesClient().inNamespace("default") val client = DefaultKubernetesClient().inNamespace("default")
// val customResourceDefinition = CustomResourceDefinitionBuilder() KubernetesDeserializer.registerCustomKind(
// .withNewMetadata().withName("benchmarkExecutions.demo.k8s.io").endMetadata() "demo.k8s.io/v1alpha1",
// .withNewSpec() "Benchmarkexecutions",
// .withGroup("demo.k8s.io") BenchmarkExecution::class.java
// .withVersion("v1alpha1") )
// .withNewNames().withKind("BenchmarkExecution").withPlural("benchmarkExecutions").endNames()
// .withScope("Namespaced")
// .endSpec()
// .build()
val context = CustomResourceDefinitionContext.Builder() val context = CustomResourceDefinitionContext.Builder()
.withVersion("v1alpha1") .withVersion("v1alpha1")
...@@ -44,21 +42,23 @@ object TheodoliteCRDExecutor { ...@@ -44,21 +42,23 @@ object TheodoliteCRDExecutor {
val informerFactory = client.informers() val informerFactory = client.informers()
val x = informerFactory.sharedIndexInformerForCustomResource(context, TestResource::class.java, val x = informerFactory.sharedIndexInformerForCustomResource(context, BenchmarkExecution::class.java,
TestResourceList::class.java,10 * 60 * 1000.toLong()) BenchmarkExecutionList::class.java,10 * 60 * 1000.toLong())
x.addEventHandler(object : ResourceEventHandler<TestResource> { x.addEventHandler(object : ResourceEventHandler<BenchmarkExecution> {
override fun onAdd(webServer: TestResource) { override fun onAdd(webServer: BenchmarkExecution) {
println("hello there") println("hello there add")
println(webServer.name)
} }
override fun onUpdate(webServer: TestResource, newWebServer: TestResource) { override fun onUpdate(webServer: BenchmarkExecution, newWebServer: BenchmarkExecution) {
println("hello there") println("hello there update")
} }
override fun onDelete(webServer: TestResource, b: Boolean) { override fun onDelete(webServer: BenchmarkExecution, b: Boolean) {
println("delted") println("delted")
println(webServer.name)
} }
}) })
...@@ -66,7 +66,6 @@ object TheodoliteCRDExecutor { ...@@ -66,7 +66,6 @@ object TheodoliteCRDExecutor {
//println(client.apiextensions().v1beta1().customResourceDefinitions().list()) //println(client.apiextensions().v1beta1().customResourceDefinitions().list())
//exitProcess(0) //exitProcess(0)
......
package theodolite.util package theodolite.util
import com.fasterxml.jackson.databind.annotation.JsonDeserialize
@JsonDeserialize
class ConfigurationOverride { class ConfigurationOverride {
lateinit var patcher: PatcherDefinition lateinit var patcher: PatcherDefinition
lateinit var value: String lateinit var value: String
......
package theodolite.util package theodolite.util
import com.fasterxml.jackson.databind.annotation.JsonDeserialize
@JsonDeserialize
class PatcherDefinition { class PatcherDefinition {
lateinit var type: String lateinit var type: String
lateinit var resource: String lateinit var resource: String
......
apiVersion: demo.k8s.io/v1alpha1 apiVersion: demo.k8s.io/v1alpha1
kind: Benchmarkexecutions kind: Benchmarkexecutions
metadata: metadata:
name: example-webserver name: aids-webserver
name: "Theodolite Test Context" spec:
\ No newline at end of file message: "Theodolite Test Context"
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment