From e1dd908eac620c2c52e510cbb5d8ed1ae17c47ce Mon Sep 17 00:00:00 2001 From: Pascal Schmid Date: Sat, 15 Jul 2023 23:58:52 +0200 Subject: [PATCH] Add tilt --- Tiltfile | 3 ++ init_cluster.sh | 15 ++++++ konvert/Tiltfile | 19 ++++++++ konvert/connect-deployment.yaml | 48 +++++++++++++++++++ konvert/connect-service.yaml | 13 +++++ konvert/console-deployment.yaml | 48 +++++++++++++++++++ konvert/console-ingress.yaml | 17 +++++++ konvert/console-service.yaml | 13 +++++ konvert/kafka-lag-exporter-deployment.yaml | 29 +++++++++++ konvert/kafka-lag-exporter-service.yaml | 13 +++++ konvert/owl-shop-deployment.yaml | 31 ++++++++++++ konvert/redpanda-deployment.yaml | 44 +++++++++++++++++ ...dpanda-owl-shop-default-networkpolicy.yaml | 13 +++++ ...l-shop-redpanda-network-networkpolicy.yaml | 13 +++++ konvert/redpanda-persistentvolumeclaim.yaml | 12 +++++ konvert/redpanda-service.yaml | 25 ++++++++++ 16 files changed, 356 insertions(+) create mode 100644 Tiltfile create mode 100755 init_cluster.sh create mode 100644 konvert/Tiltfile create mode 100644 konvert/connect-deployment.yaml create mode 100644 konvert/connect-service.yaml create mode 100644 konvert/console-deployment.yaml create mode 100644 konvert/console-ingress.yaml create mode 100644 konvert/console-service.yaml create mode 100644 konvert/kafka-lag-exporter-deployment.yaml create mode 100644 konvert/kafka-lag-exporter-service.yaml create mode 100644 konvert/owl-shop-deployment.yaml create mode 100644 konvert/redpanda-deployment.yaml create mode 100644 konvert/redpanda-owl-shop-default-networkpolicy.yaml create mode 100644 konvert/redpanda-owl-shop-redpanda-network-networkpolicy.yaml create mode 100644 konvert/redpanda-persistentvolumeclaim.yaml create mode 100644 konvert/redpanda-service.yaml diff --git a/Tiltfile b/Tiltfile new file mode 100644 index 0000000..2cec1e2 --- /dev/null +++ b/Tiltfile @@ -0,0 +1,3 @@ +allow_k8s_contexts('default') + +include('konvert/Tiltfile') diff --git a/init_cluster.sh b/init_cluster.sh new file mode 100755 index 0000000..ce006af --- /dev/null +++ b/init_cluster.sh @@ -0,0 +1,15 @@ +#!/usr/bin/env bash + +kind delete cluster + +kind create cluster --config deployment/kind.yaml + +kubectl wait -A --for=condition=ready pod --field-selector=status.phase!=Succeeded --timeout=15m + +kubectl get cm -n kube-system kube-proxy -o yaml | sed 's/maxPerCore.*/maxPerCore: 0/' | kubectl apply -n kube-system -f - + +kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.7.1/deploy/static/provider/kind/deploy.yaml + +LB_IP=$(kubectl get svc -n ingress-nginx ingress-nginx-controller -o jsonpath='{.status.loadBalancer.ingress[0].ip}') + +echo "address=/kind.cluster/$LB_IP" diff --git a/konvert/Tiltfile b/konvert/Tiltfile new file mode 100644 index 0000000..e8939bd --- /dev/null +++ b/konvert/Tiltfile @@ -0,0 +1,19 @@ +k8s_yaml('./redpanda-owl-shop-default-networkpolicy.yaml') +k8s_yaml('./redpanda-persistentvolumeclaim.yaml') +k8s_yaml('./redpanda-deployment.yaml') +k8s_yaml('./redpanda-owl-shop-redpanda-network-networkpolicy.yaml') +k8s_yaml('./redpanda-service.yaml') + +k8s_yaml('./connect-service.yaml') +k8s_yaml('./connect-deployment.yaml') + +k8s_yaml('./owl-shop-deployment.yaml') + +k8s_yaml('./console-deployment.yaml') +k8s_yaml('./console-service.yaml') +k8s_yaml('./console-ingress.yaml') + +docker_build('kafka-lag-exporter', './..') + +k8s_yaml('./kafka-lag-exporter-deployment.yaml') +k8s_yaml('./kafka-lag-exporter-service.yaml') diff --git a/konvert/connect-deployment.yaml b/konvert/connect-deployment.yaml new file mode 100644 index 0000000..f217c7b --- /dev/null +++ b/konvert/connect-deployment.yaml @@ -0,0 +1,48 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + creationTimestamp: null + labels: + io.kompose.service: connect + name: connect +spec: + replicas: 1 + selector: + matchLabels: + io.kompose.service: connect + template: + metadata: + labels: + io.kompose.network/redpanda-owl-shop-redpanda-network: "true" + io.kompose.service: connect + spec: + containers: + - env: + - name: CONNECT_BOOTSTRAP_SERVERS + value: redpanda:29092 + - name: CONNECT_CONFIGURATION + value: | + key.converter=org.apache.kafka.connect.converters.ByteArrayConverter + value.converter=org.apache.kafka.connect.converters.ByteArrayConverter + group.id=connectors-cluster + offset.storage.topic=_internal_connectors_offsets + config.storage.topic=_internal_connectors_configs + status.storage.topic=_internal_connectors_status + config.storage.replication.factor=-1 + offset.storage.replication.factor=-1 + status.storage.replication.factor=-1 + offset.flush.interval.ms=1000 + producer.linger.ms=50 + producer.batch.size=131072 + - name: CONNECT_GC_LOG_ENABLED + value: "false" + - name: CONNECT_HEAP_OPTS + value: -Xms512M -Xmx512M + - name: CONNECT_LOG_LEVEL + value: info + image: docker.redpanda.com/redpandadata/connectors:latest + name: connect + ports: + - containerPort: 8083 + hostname: connect + restartPolicy: Always diff --git a/konvert/connect-service.yaml b/konvert/connect-service.yaml new file mode 100644 index 0000000..ff4d2a1 --- /dev/null +++ b/konvert/connect-service.yaml @@ -0,0 +1,13 @@ +apiVersion: v1 +kind: Service +metadata: + labels: + io.kompose.service: connect + name: connect +spec: + ports: + - name: "8083" + port: 8083 + targetPort: 8083 + selector: + io.kompose.service: connect diff --git a/konvert/console-deployment.yaml b/konvert/console-deployment.yaml new file mode 100644 index 0000000..da161a6 --- /dev/null +++ b/konvert/console-deployment.yaml @@ -0,0 +1,48 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + creationTimestamp: null + labels: + io.kompose.service: console + name: console +spec: + replicas: 1 + selector: + matchLabels: + io.kompose.service: console + template: + metadata: + labels: + io.kompose.network/redpanda-owl-shop-redpanda-network: "true" + io.kompose.service: console + spec: + containers: + - args: + - -c + - echo "$(CONSOLE_CONFIG_FILE)" > /tmp/config.yml; /app/console + command: + - /bin/sh + env: + - name: CONFIG_FILEPATH + value: /tmp/config.yml + - name: CONSOLE_CONFIG_FILE + value: | + kafka: + brokers: ["redpanda:29092"] + schemaRegistry: + enabled: true + urls: ["http://redpanda:8081"] + redpanda: + adminApi: + enabled: true + urls: ["http://redpanda:9644"] + connect: + enabled: true + clusters: + - name: local-connect-cluster + url: http://connect:8083 + image: docker.redpanda.com/redpandadata/console:v2.2.4 + name: console + ports: + - containerPort: 8080 + restartPolicy: Always diff --git a/konvert/console-ingress.yaml b/konvert/console-ingress.yaml new file mode 100644 index 0000000..0a4db2e --- /dev/null +++ b/konvert/console-ingress.yaml @@ -0,0 +1,17 @@ +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: ingress-myserviceb +spec: + rules: + - host: console.lechindianer.hack + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: console + port: + number: 8080 + ingressClassName: nginx diff --git a/konvert/console-service.yaml b/konvert/console-service.yaml new file mode 100644 index 0000000..b83618b --- /dev/null +++ b/konvert/console-service.yaml @@ -0,0 +1,13 @@ +apiVersion: v1 +kind: Service +metadata: + labels: + io.kompose.service: console + name: console +spec: + ports: + - name: "8080" + port: 8080 + targetPort: 8080 + selector: + io.kompose.service: console diff --git a/konvert/kafka-lag-exporter-deployment.yaml b/konvert/kafka-lag-exporter-deployment.yaml new file mode 100644 index 0000000..0459a87 --- /dev/null +++ b/konvert/kafka-lag-exporter-deployment.yaml @@ -0,0 +1,29 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + io.kompose.service: kafka-lag-exporter + name: kafka-lag-exporter +spec: + replicas: 1 + selector: + matchLabels: + io.kompose.service: kafka-lag-exporter + template: + metadata: + labels: + io.kompose.network/redpanda-owl-shop-default: "true" + io.kompose.service: kafka-lag-exporter + spec: + containers: + - env: + - name: KAFKA_BROKERS + value: redpanda:29092 + image: kafka-lag-exporter + name: kafka-lag-exporter + ports: + - containerPort: 4000 + # Remove the command for final part + command: [ "/bin/sh", "-c", "--" ] + args: [ "while true; do sleep 30; done;" ] + restartPolicy: Always diff --git a/konvert/kafka-lag-exporter-service.yaml b/konvert/kafka-lag-exporter-service.yaml new file mode 100644 index 0000000..6688c7a --- /dev/null +++ b/konvert/kafka-lag-exporter-service.yaml @@ -0,0 +1,13 @@ +apiVersion: v1 +kind: Service +metadata: + labels: + io.kompose.service: kafka-lag-exporter + name: kafka-lag-exporter +spec: + ports: + - name: "4000" + port: 4000 + targetPort: 4000 + selector: + io.kompose.service: kafka-lag-exporter diff --git a/konvert/owl-shop-deployment.yaml b/konvert/owl-shop-deployment.yaml new file mode 100644 index 0000000..b5f48d7 --- /dev/null +++ b/konvert/owl-shop-deployment.yaml @@ -0,0 +1,31 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + io.kompose.service: owl-shop + name: owl-shop +spec: + replicas: 1 + selector: + matchLabels: + io.kompose.service: owl-shop + template: + metadata: + creationTimestamp: null + labels: + io.kompose.network/redpanda-owl-shop-redpanda-network: "true" + io.kompose.service: owl-shop + spec: + containers: + - env: + - name: SHOP_KAFKA_BROKERS + value: redpanda:29092 + - name: SHOP_KAFKA_TOPICREPLICATIONFACTOR + value: "1" + - name: SHOP_TRAFFIC_INTERVAL_DURATION + value: 0.1s + - name: SHOP_TRAFFIC_INTERVAL_RATE + value: "6" + image: quay.io/cloudhut/owl-shop:latest + name: owl-shop + restartPolicy: Always diff --git a/konvert/redpanda-deployment.yaml b/konvert/redpanda-deployment.yaml new file mode 100644 index 0000000..d7c5229 --- /dev/null +++ b/konvert/redpanda-deployment.yaml @@ -0,0 +1,44 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + io.kompose.service: redpanda + name: redpanda +spec: + replicas: 1 + selector: + matchLabels: + io.kompose.service: redpanda + strategy: + type: Recreate + template: + metadata: + labels: + io.kompose.network/redpanda-owl-shop-redpanda-network: "true" + io.kompose.service: redpanda + spec: + containers: + - args: + - redpanda start + - --smp 1 + - --overprovisioned + - --kafka-addr PLAINTEXT://0.0.0.0:29092,OUTSIDE://0.0.0.0:9092 + - --advertise-kafka-addr PLAINTEXT://redpanda:29092,OUTSIDE://localhost:9092 + - --pandaproxy-addr 0.0.0.0:8082 + - --advertise-pandaproxy-addr localhost:8082 + image: docker.redpanda.com/redpandadata/redpanda:v23.1.8 + name: redpanda + ports: + - containerPort: 8081 + - containerPort: 8082 + - containerPort: 9092 + - containerPort: 9644 + - containerPort: 29092 + volumeMounts: + - mountPath: /var/lib/redpanda/data + name: redpanda + restartPolicy: Always + volumes: + - name: redpanda + persistentVolumeClaim: + claimName: redpanda diff --git a/konvert/redpanda-owl-shop-default-networkpolicy.yaml b/konvert/redpanda-owl-shop-default-networkpolicy.yaml new file mode 100644 index 0000000..d065c8b --- /dev/null +++ b/konvert/redpanda-owl-shop-default-networkpolicy.yaml @@ -0,0 +1,13 @@ +apiVersion: networking.k8s.io/v1 +kind: NetworkPolicy +metadata: + name: redpanda-owl-shop-default +spec: + ingress: + - from: + - podSelector: + matchLabels: + io.kompose.network/redpanda-owl-shop-default: "true" + podSelector: + matchLabels: + io.kompose.network/redpanda-owl-shop-default: "true" diff --git a/konvert/redpanda-owl-shop-redpanda-network-networkpolicy.yaml b/konvert/redpanda-owl-shop-redpanda-network-networkpolicy.yaml new file mode 100644 index 0000000..81351cb --- /dev/null +++ b/konvert/redpanda-owl-shop-redpanda-network-networkpolicy.yaml @@ -0,0 +1,13 @@ +apiVersion: networking.k8s.io/v1 +kind: NetworkPolicy +metadata: + name: redpanda-owl-shop-redpanda-network +spec: + ingress: + - from: + - podSelector: + matchLabels: + io.kompose.network/redpanda-owl-shop-redpanda-network: "true" + podSelector: + matchLabels: + io.kompose.network/redpanda-owl-shop-redpanda-network: "true" diff --git a/konvert/redpanda-persistentvolumeclaim.yaml b/konvert/redpanda-persistentvolumeclaim.yaml new file mode 100644 index 0000000..d55fb56 --- /dev/null +++ b/konvert/redpanda-persistentvolumeclaim.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + labels: + io.kompose.service: redpanda + name: redpanda +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 100Mi diff --git a/konvert/redpanda-service.yaml b/konvert/redpanda-service.yaml new file mode 100644 index 0000000..b825496 --- /dev/null +++ b/konvert/redpanda-service.yaml @@ -0,0 +1,25 @@ +apiVersion: v1 +kind: Service +metadata: + labels: + io.kompose.service: redpanda + name: redpanda +spec: + ports: + - name: "8081" + port: 8081 + targetPort: 8081 + - name: "8082" + port: 8082 + targetPort: 8082 + - name: "9092" + port: 9092 + targetPort: 9092 + - name: "9644" + port: 9644 + targetPort: 9644 + - name: "29092" + port: 29092 + targetPort: 29092 + selector: + io.kompose.service: redpanda