From 9816c281adb3210a48d7fc24af8f84b9ee6947b5 Mon Sep 17 00:00:00 2001 From: florian Date: Wed, 8 Oct 2025 11:38:29 +0200 Subject: [PATCH] first commit --- backend-api-internal/deployment.yaml | 34 ++++++++++++++++++++++++++++ backend-api-internal/service.yaml | 14 ++++++++++++ backend-api/deployment.yaml | 32 ++++++++++++++++++++++++++ backend-api/service.yaml | 14 ++++++++++++ mysql/deployment.yaml | 33 +++++++++++++++++++++++++++ mysql/kustomization.yaml | 7 ++++++ mysql/pvc.yaml | 12 ++++++++++ mysql/service.yaml | 13 +++++++++++ namespace.yaml | 4 ++++ rabbitmq/deployment.yaml | 28 +++++++++++++++++++++++ rabbitmq/pvc.yaml | 11 +++++++++ rabbitmq/service.yaml | 18 +++++++++++++++ 12 files changed, 220 insertions(+) create mode 100644 backend-api-internal/deployment.yaml create mode 100644 backend-api-internal/service.yaml create mode 100644 backend-api/deployment.yaml create mode 100644 backend-api/service.yaml create mode 100644 mysql/deployment.yaml create mode 100644 mysql/kustomization.yaml create mode 100644 mysql/pvc.yaml create mode 100644 mysql/service.yaml create mode 100644 namespace.yaml create mode 100644 rabbitmq/deployment.yaml create mode 100644 rabbitmq/pvc.yaml create mode 100644 rabbitmq/service.yaml diff --git a/backend-api-internal/deployment.yaml b/backend-api-internal/deployment.yaml new file mode 100644 index 0000000..69220b4 --- /dev/null +++ b/backend-api-internal/deployment.yaml @@ -0,0 +1,34 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: backend-api-internal + namespace: app-notifications +spec: + replicas: 1 + selector: + matchLabels: + app: backend-api-internal + template: + metadata: + labels: + app: backend-api-internal + spec: + containers: + - name: backend-api-internal + image: notification_app.backend-api-internal:v1 + imagePullPolicy: Never + ports: + - containerPort: 8101 + env: + - name: BACKEND_API_INTERNAL_RMQ_HOST + value: "rabbitmq.app-notifications.svc.cluster.local" + - name: BACKEND_API_DB_HOST + value: "mysql.app-notifications.svc.cluster.local" + volumeMounts: + - name: backend-api-internal-secrets + mountPath: /etc/secrets + readOnly: true + volumes: + - name: backend-api-internal-secrets + secret: + secretName: backend-api-internal diff --git a/backend-api-internal/service.yaml b/backend-api-internal/service.yaml new file mode 100644 index 0000000..0bf6df3 --- /dev/null +++ b/backend-api-internal/service.yaml @@ -0,0 +1,14 @@ +apiVersion: v1 +kind: Service +metadata: + name: backend-api-internal + namespace: app-notifications +spec: + selector: + app: backend-api-internal + ports: + - protocol: TCP + port: 8101 + targetPort: 8101 + nodePort: 30101 + type: NodePort diff --git a/backend-api/deployment.yaml b/backend-api/deployment.yaml new file mode 100644 index 0000000..b99dda1 --- /dev/null +++ b/backend-api/deployment.yaml @@ -0,0 +1,32 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: backend-api + namespace: app-notifications +spec: + replicas: 1 + selector: + matchLabels: + app: backend-api + template: + metadata: + labels: + app: backend-api + spec: + containers: + - name: backend-api + image: notification_app.backend-api:v1 + imagePullPolicy: Never + ports: + - containerPort: 8100 + env: + - name: BACKEND_API_DB_HOST + value: "mysql.app-notifications.svc.cluster.local" + volumeMounts: + - name: backend-api-secrets + mountPath: /etc/secrets + readOnly: true + volumes: + - name: backend-api-secrets + secret: + secretName: backend-api diff --git a/backend-api/service.yaml b/backend-api/service.yaml new file mode 100644 index 0000000..5a70eae --- /dev/null +++ b/backend-api/service.yaml @@ -0,0 +1,14 @@ +apiVersion: v1 +kind: Service +metadata: + name: backend-api + namespace: app-notifications +spec: + selector: + app: backend-api + ports: + - protocol: TCP + port: 8100 + targetPort: 8100 + nodePort: 30100 + type: NodePort diff --git a/mysql/deployment.yaml b/mysql/deployment.yaml new file mode 100644 index 0000000..77bb5f7 --- /dev/null +++ b/mysql/deployment.yaml @@ -0,0 +1,33 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: mysql + namespace: app-notifications +spec: + replicas: 1 + selector: + matchLabels: + app: mysql + template: + metadata: + labels: + app: mysql + spec: + volumes: + - name: mysql-data + persistentVolumeClaim: + claimName: mysql-pvc + containers: + - name: mysql + image: mysql:8.0.4 + env: + - name: MYSQL_ROOT_PASSWORD + valueFrom: + secretKeyRef: + name: mysql-secret + key: root-password + ports: + - containerPort: 3306 + volumeMounts: + - name: mysql-data + mountPath: /var/lib/mysql diff --git a/mysql/kustomization.yaml b/mysql/kustomization.yaml new file mode 100644 index 0000000..a09caee --- /dev/null +++ b/mysql/kustomization.yaml @@ -0,0 +1,7 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization + +configMapGenerator: + - name: mysql-initdb + files: + - initdb/app_database.sql diff --git a/mysql/pvc.yaml b/mysql/pvc.yaml new file mode 100644 index 0000000..c8d1b20 --- /dev/null +++ b/mysql/pvc.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: mysql-pvc + namespace: app-notifications +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 10Gi + diff --git a/mysql/service.yaml b/mysql/service.yaml new file mode 100644 index 0000000..524f631 --- /dev/null +++ b/mysql/service.yaml @@ -0,0 +1,13 @@ +apiVersion: v1 +kind: Service +metadata: + name: mysql + namespace: app-notifications +spec: + selector: + app: mysql + ports: + - protocol: TCP + port: 3306 + targetPort: 3306 + type: ClusterIP diff --git a/namespace.yaml b/namespace.yaml new file mode 100644 index 0000000..3fac87d --- /dev/null +++ b/namespace.yaml @@ -0,0 +1,4 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: app-notifications diff --git a/rabbitmq/deployment.yaml b/rabbitmq/deployment.yaml new file mode 100644 index 0000000..c0d178d --- /dev/null +++ b/rabbitmq/deployment.yaml @@ -0,0 +1,28 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: rabbitmq + namespace: app-notifications +spec: + replicas: 1 + selector: + matchLabels: + app: rabbitmq + template: + metadata: + labels: + app: rabbitmq + spec: + containers: + - name: rabbitmq + image: rabbitmq:3.11-management + ports: + - containerPort: 5672 + - containerPort: 15672 + volumeMounts: + - name: rabbitmq-data + mountPath: /var/lib/rabbitmq + volumes: + - name: rabbitmq-data + persistentVolumeClaim: + claimName: rabbitmq-pvc diff --git a/rabbitmq/pvc.yaml b/rabbitmq/pvc.yaml new file mode 100644 index 0000000..f4585e3 --- /dev/null +++ b/rabbitmq/pvc.yaml @@ -0,0 +1,11 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: rabbitmq-pvc + namespace: app-notifications +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 5Gi diff --git a/rabbitmq/service.yaml b/rabbitmq/service.yaml new file mode 100644 index 0000000..85ab0cf --- /dev/null +++ b/rabbitmq/service.yaml @@ -0,0 +1,18 @@ +apiVersion: v1 +kind: Service +metadata: + name: rabbitmq + namespace: app-notifications +spec: + ports: + - port: 5672 + targetPort: 5672 + protocol: TCP + name: amqp + - port: 15672 + targetPort: 15672 + protocol: TCP + name: management + selector: + app: rabbitmq + type: ClusterIP