From 3eef28fc103c6de8302186b801f66c5c76847ed2 Mon Sep 17 00:00:00 2001 From: Charlyne Wargnier-Potier Date: Thu, 17 Apr 2025 22:44:02 +0000 Subject: [PATCH] add yaml's file --- z2/k8s/deployment.yaml | 29 +++++++++++++++++++++ z2/k8s/namespace.yaml | 4 +++ z2/k8s/persistant-volume-claim.yaml | 10 ++++++++ z2/k8s/persistant-volume.yaml | 14 ++++++++++ z2/k8s/postgres-service.yaml | 12 +++++++++ z2/k8s/service.yaml | 14 ++++++++++ z2/k8s/statefulset.yaml | 40 +++++++++++++++++++++++++++++ 7 files changed, 123 insertions(+) create mode 100644 z2/k8s/deployment.yaml create mode 100644 z2/k8s/namespace.yaml create mode 100644 z2/k8s/persistant-volume-claim.yaml create mode 100644 z2/k8s/persistant-volume.yaml create mode 100644 z2/k8s/postgres-service.yaml create mode 100644 z2/k8s/service.yaml create mode 100644 z2/k8s/statefulset.yaml diff --git a/z2/k8s/deployment.yaml b/z2/k8s/deployment.yaml new file mode 100644 index 0000000..a325d33 --- /dev/null +++ b/z2/k8s/deployment.yaml @@ -0,0 +1,29 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: travel-planner + namespace: travel-planner +spec: + replicas: 2 + selector: + matchLabels: + app: travel-planner + template: + metadata: + labels: + app: travel-planner + spec: + containers: + - name: python-app + image: chabooo/travel-planner:latest + ports: + - containerPort: 5000 + env: + - name: DB_HOST + value: postgres-db + - name: POSTGRES_DB + value: travel_planner + - name: POSTGRES_USER + value: user + - name: POSTGRES_PASSWORD + value: password \ No newline at end of file diff --git a/z2/k8s/namespace.yaml b/z2/k8s/namespace.yaml new file mode 100644 index 0000000..b27303b --- /dev/null +++ b/z2/k8s/namespace.yaml @@ -0,0 +1,4 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: travel-planner diff --git a/z2/k8s/persistant-volume-claim.yaml b/z2/k8s/persistant-volume-claim.yaml new file mode 100644 index 0000000..2859e3c --- /dev/null +++ b/z2/k8s/persistant-volume-claim.yaml @@ -0,0 +1,10 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: postgres-pvc +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 10Gi # Taille demandée diff --git a/z2/k8s/persistant-volume.yaml b/z2/k8s/persistant-volume.yaml new file mode 100644 index 0000000..d0ad09f --- /dev/null +++ b/z2/k8s/persistant-volume.yaml @@ -0,0 +1,14 @@ +apiVersion: v1 +kind: PersistentVolume +metadata: + name: postgres-pv + labels: + type: local +spec: + capacity: + storage: 10Gi # Taille du volume + accessModes: + - ReadWriteOnce # Seul un pod peut monter le volume en écriture + persistentVolumeReclaimPolicy: Retain # Conserve les données même après suppression du PVC + hostPath: + path: /data/postgres # Chemin local sur le nœud diff --git a/z2/k8s/postgres-service.yaml b/z2/k8s/postgres-service.yaml new file mode 100644 index 0000000..dc3c7e5 --- /dev/null +++ b/z2/k8s/postgres-service.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: Service +metadata: + name: postgres-db + namespace: travel-planner +spec: + selector: + app: postgres + ports: + - protocol: TCP + port: 5432 + targetPort: 5432 \ No newline at end of file diff --git a/z2/k8s/service.yaml b/z2/k8s/service.yaml new file mode 100644 index 0000000..082e83b --- /dev/null +++ b/z2/k8s/service.yaml @@ -0,0 +1,14 @@ +apiVersion: v1 +kind: Service +metadata: + name: travel-planner + namespace: travel-planner +spec: + selector: + app: travel-planner + ports: + - protocol: TCP + port: 80 + targetPort: 5000 + nodePort: 30000 + type: NodePort \ No newline at end of file diff --git a/z2/k8s/statefulset.yaml b/z2/k8s/statefulset.yaml new file mode 100644 index 0000000..c3ad089 --- /dev/null +++ b/z2/k8s/statefulset.yaml @@ -0,0 +1,40 @@ +apiVersion: apps/v1 +kind: StatefulSet +metadata: + name: postgres + namespace: travel-planner +spec: + serviceName: "postgres-db" + replicas: 1 + selector: + matchLabels: + app: postgres + template: + metadata: + labels: + app: postgres + spec: + containers: + - name: postgres + image: postgres:13 + ports: + - containerPort: 5432 + name: postgres + env: + - name: POSTGRES_USER + value: user + - name: POSTGRES_PASSWORD + value: password + - name: POSTGRES_DB + value: travel_planner + volumeMounts: + - name: postgres-data + mountPath: /var/lib/postgresql/data + volumeClaimTemplates: + - metadata: + name: postgres-data + spec: + accessModes: ["ReadWriteOnce"] + resources: + requests: + storage: 10Gi