From 35d0d4b3b9371f65963ef99897c677267d081abe Mon Sep 17 00:00:00 2001 From: ITO Mac Date: Tue, 19 May 2026 10:53:09 +0200 Subject: [PATCH] init --- manifests/app/deployment.yaml | 58 ++++++++++++++++++++++++++++++ manifests/app/ingress.yaml | 20 +++++++++++ manifests/app/service.yaml | 12 +++++++ manifests/config/configmap.yaml | 9 +++++ manifests/config/namespace.yaml | 6 ++++ manifests/config/secret.yaml | 11 ++++++ manifests/database/deployment.yaml | 43 ++++++++++++++++++++++ manifests/database/pvc.yaml | 11 ++++++ manifests/database/service.yaml | 12 +++++++ 9 files changed, 182 insertions(+) create mode 100644 manifests/app/deployment.yaml create mode 100644 manifests/app/ingress.yaml create mode 100644 manifests/app/service.yaml create mode 100644 manifests/config/configmap.yaml create mode 100644 manifests/config/namespace.yaml create mode 100644 manifests/config/secret.yaml create mode 100644 manifests/database/deployment.yaml create mode 100644 manifests/database/pvc.yaml create mode 100644 manifests/database/service.yaml diff --git a/manifests/app/deployment.yaml b/manifests/app/deployment.yaml new file mode 100644 index 0000000..810ce81 --- /dev/null +++ b/manifests/app/deployment.yaml @@ -0,0 +1,58 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: fastapi-api + namespace: student-blazp04 +spec: + replicas: 1 + selector: + matchLabels: + app: fastapi-api + template: + metadata: + labels: + app: fastapi-api + spec: + containers: + - name: fastapi-api + image: fesb/fastapi-todos:latest + ports: + - containerPort: 8000 + env: + - name: POSTGRES_HOST + valueFrom: + configMapKeyRef: + name: app-config + key: POSTGRES_HOST + - name: POSTGRES_PORT + valueFrom: + configMapKeyRef: + name: app-config + key: POSTGRES_PORT + - name: POSTGRES_DB + valueFrom: + configMapKeyRef: + name: app-config + key: POSTGRES_DB + - name: POSTGRES_USER + valueFrom: + secretKeyRef: + name: postgres-secret + key: POSTGRES_USER + - name: POSTGRES_PASSWORD + valueFrom: + secretKeyRef: + name: postgres-secret + key: POSTGRES_PASSWORD + readinessProbe: + httpGet: + path: /health + port: 8000 + initialDelaySeconds: 5 + periodSeconds: 10 + livenessProbe: + httpGet: + path: /health + port: 8000 + initialDelaySeconds: 15 + periodSeconds: 20 diff --git a/manifests/app/ingress.yaml b/manifests/app/ingress.yaml new file mode 100644 index 0000000..dccc460 --- /dev/null +++ b/manifests/app/ingress.yaml @@ -0,0 +1,20 @@ +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: fastapi-ingress + namespace: student-blazp04 + annotations: + nginx.ingress.kubernetes.io/rewrite-target: / +spec: + ingressClassName: nginx + rules: + - host: blazp04.student.k3s.local + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: fastapi-service + port: + number: 80 diff --git a/manifests/app/service.yaml b/manifests/app/service.yaml new file mode 100644 index 0000000..705d2ed --- /dev/null +++ b/manifests/app/service.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: Service +metadata: + name: fastapi-service + namespace: student-blazp04 +spec: + selector: + app: fastapi-api + ports: + - port: 80 + targetPort: 8000 + type: ClusterIP diff --git a/manifests/config/configmap.yaml b/manifests/config/configmap.yaml new file mode 100644 index 0000000..6e2370e --- /dev/null +++ b/manifests/config/configmap.yaml @@ -0,0 +1,9 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: app-config + namespace: student-blazp04 +data: + POSTGRES_HOST: "postgres-service" + POSTGRES_PORT: "5432" + POSTGRES_DB: "appdb" diff --git a/manifests/config/namespace.yaml b/manifests/config/namespace.yaml new file mode 100644 index 0000000..a400ff9 --- /dev/null +++ b/manifests/config/namespace.yaml @@ -0,0 +1,6 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: student-blazp04 + labels: + managed-by: argocd diff --git a/manifests/config/secret.yaml b/manifests/config/secret.yaml new file mode 100644 index 0000000..83a564e --- /dev/null +++ b/manifests/config/secret.yaml @@ -0,0 +1,11 @@ +apiVersion: v1 +kind: Secret +metadata: + name: postgres-secret + namespace: student-blazp04 +type: Opaque +data: + # echo -n "appuser" | base64 + POSTGRES_USER: YXBwdXNlcg== + # echo -n "changeme" | base64 + POSTGRES_PASSWORD: Y2hhbmdlbWU= diff --git a/manifests/database/deployment.yaml b/manifests/database/deployment.yaml new file mode 100644 index 0000000..e62ddc4 --- /dev/null +++ b/manifests/database/deployment.yaml @@ -0,0 +1,43 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: postgres + namespace: student-blazp04 +spec: + replicas: 1 + selector: + matchLabels: + app: postgres + template: + metadata: + labels: + app: postgres + spec: + containers: + - name: postgres + image: postgres:16-alpine + ports: + - containerPort: 5432 + env: + - name: POSTGRES_DB + valueFrom: + configMapKeyRef: + name: app-config + key: POSTGRES_DB + - name: POSTGRES_USER + valueFrom: + secretKeyRef: + name: postgres-secret + key: POSTGRES_USER + - name: POSTGRES_PASSWORD + valueFrom: + secretKeyRef: + name: postgres-secret + key: POSTGRES_PASSWORD + volumeMounts: + - name: postgres-storage + mountPath: /var/lib/postgresql/data + volumes: + - name: postgres-storage + persistentVolumeClaim: + claimName: postgres-pvc diff --git a/manifests/database/pvc.yaml b/manifests/database/pvc.yaml new file mode 100644 index 0000000..0a6840d --- /dev/null +++ b/manifests/database/pvc.yaml @@ -0,0 +1,11 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: postgres-pvc + namespace: student-blazp04 +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 1Gi diff --git a/manifests/database/service.yaml b/manifests/database/service.yaml new file mode 100644 index 0000000..1a02ad8 --- /dev/null +++ b/manifests/database/service.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: Service +metadata: + name: postgres-service + namespace: student-blazp04 +spec: + selector: + app: postgres + ports: + - port: 5432 + targetPort: 5432 + type: ClusterIP