From b66c2ba1a0a797946da7e6cb6cdd2e249e41b38a Mon Sep 17 00:00:00 2001 From: lorenz <stu203404@mail.uni-kiel.de> Date: Sat, 23 Jan 2021 13:37:18 +0100 Subject: [PATCH] Add YAML and SetContanerEnv --- .../kotlin/theodolite/DeploymentManager.kt | 49 ++++++++++++++----- .../src/main/kotlin/theodolite/YamlLoader.kt | 21 ++++++++ 2 files changed, 58 insertions(+), 12 deletions(-) create mode 100644 theodolite-quarkus/src/main/kotlin/theodolite/YamlLoader.kt diff --git a/theodolite-quarkus/src/main/kotlin/theodolite/DeploymentManager.kt b/theodolite-quarkus/src/main/kotlin/theodolite/DeploymentManager.kt index ea1d53ef6..84507963d 100644 --- a/theodolite-quarkus/src/main/kotlin/theodolite/DeploymentManager.kt +++ b/theodolite-quarkus/src/main/kotlin/theodolite/DeploymentManager.kt @@ -1,8 +1,7 @@ package theodolite import com.fasterxml.jackson.annotation.JsonProperty -import io.fabric8.kubernetes.api.model.Quantity -import io.fabric8.kubernetes.api.model.Service +import io.fabric8.kubernetes.api.model.* import io.fabric8.kubernetes.api.model.apps.Deployment import io.fabric8.kubernetes.client.DefaultKubernetesClient import io.fabric8.kubernetes.client.dsl.RollableScalableResource @@ -24,35 +23,60 @@ class DeploymentManager { val inputStream: InputStream = path.byteInputStream() val client = DefaultKubernetesClient().inNamespace("default") - //val deployment = client.apps().deployments().load(absolute + path) + val core = client.configMaps(). - val dp: Service = client.services().load(path+service).get(); + //val deployment = client.apps().deployments().load(absolute + path) - val workload : Deployment = client.apps().deployments().load(path+workloadFile).get(); - val use : Deployment = client.apps().deployments().load(path+usecase).get(); + val dp: Service = client.services().load(path + service).get(); + val workload: Deployment = client.apps().deployments().load(path + workloadFile).get() + val use: Deployment = client.apps().deployments().load(path + usecase).get() + // TODO CHANGE CONFIGURATION ENVIROMENT VARIABLES (DONE) + // TODO ASSEMBLE GOOD SEPERATION + // TODO ADD SERVICES + // TODO ADD CONFIG MAP + // TODO DELETE STUFF // TODO MAKE YAML LOADING CATCH EXEPTION - fun printFile(){ // // println(workload) -// changeWorkloadNumInstances(workload,"5000") +// changeEnviromentsInstances(workload,"5000") // println(workload) println(use) changeRessourceLimits(use, MEMORYLIMIT,"5Gi") println(use) - - -// println(path) + // println(path) // val f : File = File(path+theodoliteDeploment); // val fileAsString : String = String(f.readBytes()) // println(fileAsString.replace("theodolite","spesb")) } + /** + * TODO REFACTOR + */ + fun setContainerEnv (container: Container, map: Map<String,String>){ + map.forEach{ k,v -> + + container.env + + container.env.filter { x -> x.name == k }.forEach { + it.value = v + } + var c = container.env.filter { x -> x.name == k } + + if(c.isEmpty()){ + val y = EnvVar(k,v, EnvVarSource()) + c = listOf(y) + } + + } + + } + // SERVICE fun changeServiceName (service: Service,newName : String){ @@ -63,7 +87,8 @@ class DeploymentManager { } // WORKLOAD GEN - fun changeWorkloadNumInstances (dep: Deployment,num: String) { + // TODO REFACTOR + fun changeEnviromentsInstances (dep: Deployment,num: String) { dep.spec.template.spec.containers.get(0).env.filter { it.name == "NUM_SENSORS" diff --git a/theodolite-quarkus/src/main/kotlin/theodolite/YamlLoader.kt b/theodolite-quarkus/src/main/kotlin/theodolite/YamlLoader.kt new file mode 100644 index 000000000..a031f805f --- /dev/null +++ b/theodolite-quarkus/src/main/kotlin/theodolite/YamlLoader.kt @@ -0,0 +1,21 @@ +package theodolite + +import io.fabric8.kubernetes.api.model.Service +import io.fabric8.kubernetes.client.NamespacedKubernetesClient + +class YamlLoader(client: NamespacedKubernetesClient) { + var client = client + + fun loadService(path: String): Service? { + + var service: Service? = null + + try { + service = client.services().load(path).get() + }catch (e : Exception){ + } + + return service + } +} + -- GitLab