commit 9816c281adb3210a48d7fc24af8f84b9ee6947b5 Author: florian Date: Wed Oct 8 11:38:29 2025 +0200 first commit 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