diff --git a/theodolite-quarkus/YAML/aggregation-service.yaml b/theodolite-quarkus/YAML/aggregation-service.yaml new file mode 100644 index 0000000000000000000000000000000000000000..916dd6677d60370b1d62e5d7e708c3ee966bda23 --- /dev/null +++ b/theodolite-quarkus/YAML/aggregation-service.yaml @@ -0,0 +1,17 @@ +apiVersion: v1 +kind: Service +metadata: + name: titan-ccp-aggregation + labels: + app: titan-ccp-aggregation +spec: + #type: NodePort + selector: + app: titan-ccp-aggregation + ports: + - name: http + port: 80 + targetPort: 80 + protocol: TCP + - name: metrics + port: 9980 diff --git a/theodolite-quarkus/YAML/theodolite.yaml b/theodolite-quarkus/YAML/theodolite.yaml new file mode 100644 index 0000000000000000000000000000000000000000..68d53386bcf5e77ce08d964f3c04eb000794575c --- /dev/null +++ b/theodolite-quarkus/YAML/theodolite.yaml @@ -0,0 +1,51 @@ +apiVersion: batch/v1 +kind: Job +metadata: + name: theodolite +spec: + template: + spec: + volumes: + - name: theodolite-pv-storage + persistentVolumeClaim: + claimName: theodolite-pv-claim + containers: + - name: theodolite + image: bvonheid/theodolite:latest + # imagePullPolicy: Never # Used to pull "own" local image + env: + - name: UC # mandatory + value: "1" + - name: LOADS # mandatory + value: "100000, 200000" + - name: INSTANCES # mandatory + value: "1, 2, 3" + # - name: DURATION + # value: "5" + # - name: PARTITIONS + # value: "40" + # - name: DOMAIN_RESTRICTION + # value: "True" + # - name: SEARCH_STRATEGY + # value: "linear-search" + # - name: CPU_LIMIT + # value: "1000m" + # - name: MEMORY_LIMIT + # value: "4Gi" + - name: PROMETHEUS_BASE_URL + value: "http://prometheus-operated:9090" + # - name: NAMESPACE + # value: "default" + # - name: CONFIGURATIONS + # value: "COMMIT_INTERVAL_MS=100, NUM_STREAM_THREADS=1" + - name: RESULT_PATH + value: "results" + - name: PYTHONUNBUFFERED # Enable logs in Kubernetes + value: "1" + volumeMounts: + - mountPath: "/app/results" + name: theodolite-pv-storage + restartPolicy: Never + # Uncomment if RBAC is enabled and configured + # serviceAccountName: theodolite + backoffLimit: 4 diff --git a/theodolite-quarkus/YAML/workloadGenerator.yaml b/theodolite-quarkus/YAML/workloadGenerator.yaml new file mode 100644 index 0000000000000000000000000000000000000000..794468b18dc74ca09872577b5b3c115605bd4620 --- /dev/null +++ b/theodolite-quarkus/YAML/workloadGenerator.yaml @@ -0,0 +1,38 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: titan-ccp-load-generator +spec: + selector: + matchLabels: + app: titan-ccp-load-generator + replicas: 1 + template: + metadata: + labels: + app: titan-ccp-load-generator + spec: + terminationGracePeriodSeconds: 0 + containers: + - name: workload-generator + image: workload-generator:latest + env: + # Order need to be preserved for run_uc.py + - name: NUM_SENSORS + value: "25000" + - name: INSTANCES + value: "1" + - name: NUM_NESTED_GROUPS + value: "5" + - name: ZK_HOST + value: "my-confluent-cp-zookeeper" + - name: ZK_PORT + value: "2181" + - name: KAFKA_BOOTSTRAP_SERVERS + value: "my-confluent-cp-kafka:9092" + - name: SCHEMA_REGISTRY_URL + value: "http://my-confluent-cp-schema-registry:8081" + - name: POD_NAME + valueFrom: + fieldRef: + fieldPath: metadata.name diff --git a/theodolite-quarkus/src/main/kotlin/theodolite/DeploymentManager.kt b/theodolite-quarkus/src/main/kotlin/theodolite/DeploymentManager.kt new file mode 100644 index 0000000000000000000000000000000000000000..41b92089910d1745388ce4137fd89bae1c6c2e81 --- /dev/null +++ b/theodolite-quarkus/src/main/kotlin/theodolite/DeploymentManager.kt @@ -0,0 +1,52 @@ +package theodolite + +import com.fasterxml.jackson.annotation.JsonProperty +import io.fabric8.kubernetes.api.model.Service +import io.fabric8.kubernetes.api.model.apps.Deployment +import io.fabric8.kubernetes.client.DefaultKubernetesClient +import io.fabric8.kubernetes.client.dsl.RollableScalableResource +import java.io.File +import java.io.InputStream +import java.nio.file.Paths + + +class DeploymentManager { + + val absolute = Paths.get("").toAbsolutePath().toString() + val path = "/home/lorenz/git/spesb/theodolite-quarkus/YAML/" + val theodoliteDeploment = "theodolite.yaml" + val service = "aggregation-service.yaml" + val workload = "workloadGenerator" + val inputStream: InputStream = path.byteInputStream() + val client = DefaultKubernetesClient().inNamespace("default") + + //val deployment = client.apps().deployments().load(absolute + path) + + val dp: Service = client.services().load(path+service).get(); + + + fun printFile(){ + + + println() + + + println(dp.toString()) + + + println(path) + val f : File = File(path+theodoliteDeploment); + val fileAsString : String = String(f.readBytes()) + //println(fileAsString.replace("theodolite","spesb")) + } + + + fun changeServiceName (service: Service,newName : String){ + + service.metadata.apply { + name = newName + } + } + + +}