From d877745fcbbfe204ff5b0793aea50bfd45d38b2d Mon Sep 17 00:00:00 2001 From: Martin Schmollinger <martin.schmollinger@reutlingen-university.de> Date: Sat, 27 Apr 2024 17:46:03 +0200 Subject: [PATCH] Added K8S resource yaml files for myaktion-go --- k8s/deployment/mariadb-deployment.yaml | 33 ++++++++++++++ k8s/deployment/myaktion-deployment.yaml | 26 +++++++++++ k8s/ingressroute/myaktion-ingressroute.yaml | 48 +++++++++++++++++++++ k8s/namespace/myaktion-namespace.yaml | 4 ++ k8s/persistedvolume/myaktion-pv.yaml | 31 +++++++++++++ k8s/service/mariadb-service.yaml | 12 ++++++ k8s/service/myaktion-service.yaml | 13 ++++++ 7 files changed, 167 insertions(+) create mode 100644 k8s/deployment/mariadb-deployment.yaml create mode 100644 k8s/deployment/myaktion-deployment.yaml create mode 100644 k8s/ingressroute/myaktion-ingressroute.yaml create mode 100644 k8s/namespace/myaktion-namespace.yaml create mode 100644 k8s/persistedvolume/myaktion-pv.yaml create mode 100644 k8s/service/mariadb-service.yaml create mode 100644 k8s/service/myaktion-service.yaml diff --git a/k8s/deployment/mariadb-deployment.yaml b/k8s/deployment/mariadb-deployment.yaml new file mode 100644 index 0000000..8d711f3 --- /dev/null +++ b/k8s/deployment/mariadb-deployment.yaml @@ -0,0 +1,33 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: mariadb + namespace: myaktion +spec: + selector: + matchLabels: + run: mariadb + replicas: 1 + template: + metadata: + annotations: + linkerd.io/inject: enabled + labels: + run: mariadb + spec: + containers: + - name: mariadb + image: mariadb:10.5 + imagePullPolicy: IfNotPresent + env: + - name: MYSQL_ROOT_PASSWORD + value: root + - name: MYSQL_DATABASE + value: myaktion + volumeMounts: + - mountPath: /var/lib/mysql + name: myaktion-pv + volumes: + - name: myaktion-pv + persistentVolumeClaim: + claimName: myaktion-pv-claim diff --git a/k8s/deployment/myaktion-deployment.yaml b/k8s/deployment/myaktion-deployment.yaml new file mode 100644 index 0000000..400755b --- /dev/null +++ b/k8s/deployment/myaktion-deployment.yaml @@ -0,0 +1,26 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: myaktion + namespace: myaktion +spec: + selector: + matchLabels: + run: myaktion + replicas: 1 + template: + metadata: + annotations: + linkerd.io/inject: enabled + labels: + run: myaktion + spec: + containers: + - name: myaktion + image: schmolli/myaktion-go:1.0.1 + imagePullPolicy: Always + env: + - name: DB_CONNECT + value: mariadb:3306 + - name: LOG_LEVEL + value: info diff --git a/k8s/ingressroute/myaktion-ingressroute.yaml b/k8s/ingressroute/myaktion-ingressroute.yaml new file mode 100644 index 0000000..02b4c19 --- /dev/null +++ b/k8s/ingressroute/myaktion-ingressroute.yaml @@ -0,0 +1,48 @@ +apiVersion: traefik.containo.us/v1alpha1 +kind: IngressRoute +metadata: + annotations: + kubernetes.io/ingress.class: traefik + creationTimestamp: null + name: myaktion-ingressroute + namespace: myaktion +spec: + routes: + + - kind: Rule + match: Path(`/health`) && Method(`GET`) + services: + - kind: Service + name: myaktion + namespace: myaktion + port: 8000 + + - kind: Rule + match: Path(`/campaigns`) && Method(`POST`) + middlewares: + - name: fw-auth-mw + namespace: default + services: + - kind: Service + name: myaktion + namespace: myaktion + port: 8000 + + - kind: Rule + match: Path(`/campaigns`) || Path(`/campaigns/{id:[0-9]+}`) && Method(`GET`) + middlewares: + - name: fw-auth-mw + namespace: default + services: + - kind: Service + name: myaktion + namespace: myaktion + port: 8000 + + - kind: Rule + match: Path(`/campaigns/{id:[0-9]+}/donation`) && Method(`POST`) + services: + - kind: Service + name: myaktion + namespace: myaktion + port: 8000 diff --git a/k8s/namespace/myaktion-namespace.yaml b/k8s/namespace/myaktion-namespace.yaml new file mode 100644 index 0000000..3299430 --- /dev/null +++ b/k8s/namespace/myaktion-namespace.yaml @@ -0,0 +1,4 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: myaktion diff --git a/k8s/persistedvolume/myaktion-pv.yaml b/k8s/persistedvolume/myaktion-pv.yaml new file mode 100644 index 0000000..cc1a151 --- /dev/null +++ b/k8s/persistedvolume/myaktion-pv.yaml @@ -0,0 +1,31 @@ +kind: PersistentVolume +apiVersion: v1 +metadata: + name: myaktion-pv + namespace: myaktion + labels: + type: local +spec: + storageClassName: standard + capacity: + storage: 100M + accessModes: + - ReadWriteOnce + hostPath: + path: "/User/schmolli/data/myaktion" +--- + +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + labels: + app: myaktion + name: myaktion-pv-claim + namespace: myaktion +spec: + storageClassName: standard + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 100M diff --git a/k8s/service/mariadb-service.yaml b/k8s/service/mariadb-service.yaml new file mode 100644 index 0000000..dcaa7c0 --- /dev/null +++ b/k8s/service/mariadb-service.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: Service +metadata: + name: mariadb + namespace: myaktion +spec: + type: ClusterIP + ports: + - port: 3306 + targetPort: 3306 + selector: + run: mariadb diff --git a/k8s/service/myaktion-service.yaml b/k8s/service/myaktion-service.yaml new file mode 100644 index 0000000..1c169ec --- /dev/null +++ b/k8s/service/myaktion-service.yaml @@ -0,0 +1,13 @@ +apiVersion: v1 +kind: Service +metadata: + name: myaktion + namespace: myaktion +spec: + type: ClusterIP + ports: + - port: 8000 + targetPort: 8000 + name: "http" + selector: + run: myaktion -- GitLab