From 2d3fb6068d62ace24d8d6fc8b17b6070b7044056 Mon Sep 17 00:00:00 2001 From: Paul Payne Date: Sun, 18 May 2025 15:26:24 -0700 Subject: [PATCH] Add postgres app. --- apps/postgres/README.md | 10 ++++++++ apps/postgres/deployment.yaml | 40 ++++++++++++++++++++++++++++++++ apps/postgres/kustomization.yaml | 34 +++++++++++++++++++++++++++ apps/postgres/manifest.yaml | 5 ++++ apps/postgres/namespace.yaml | 4 ++++ apps/postgres/pvc.yaml | 12 ++++++++++ apps/postgres/service.yaml | 10 ++++++++ 7 files changed, 115 insertions(+) create mode 100644 apps/postgres/README.md create mode 100644 apps/postgres/deployment.yaml create mode 100644 apps/postgres/kustomization.yaml create mode 100644 apps/postgres/manifest.yaml create mode 100644 apps/postgres/namespace.yaml create mode 100644 apps/postgres/pvc.yaml create mode 100644 apps/postgres/service.yaml diff --git a/apps/postgres/README.md b/apps/postgres/README.md new file mode 100644 index 0000000..63d3041 --- /dev/null +++ b/apps/postgres/README.md @@ -0,0 +1,10 @@ +# Postgress app + +## Required .env variables + +``` +POSTGRES_DB +POSTGRES_USER +POSTGRES_PASSWORD +PGDATA +``` diff --git a/apps/postgres/deployment.yaml b/apps/postgres/deployment.yaml new file mode 100644 index 0000000..277234d --- /dev/null +++ b/apps/postgres/deployment.yaml @@ -0,0 +1,40 @@ +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: postgres-deployment +spec: + replicas: 1 + selector: + matchLabels: + app: postgres + template: + metadata: + labels: + app: postgres + spec: + containers: + - name: postgres + image: postgres:15 + ports: + - containerPort: 5432 + envFrom: + - secretRef: + name: secrets + - configMapRef: + name: config + env: + - name: PGDATA + value: /var/lib/postgresql/data/pgdata + - name: TZ + valueFrom: + configMapKeyRef: + name: config + key: TZ + volumeMounts: + - name: postgres-data + mountPath: /var/lib/postgresql/data + volumes: + - name: postgres-data + persistentVolumeClaim: + claimName: postgres-pvc diff --git a/apps/postgres/kustomization.yaml b/apps/postgres/kustomization.yaml new file mode 100644 index 0000000..b8ffe97 --- /dev/null +++ b/apps/postgres/kustomization.yaml @@ -0,0 +1,34 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +namespace: postgres +labels: + - includeSelectors: true + pairs: + app: postgres + managedBy: kustomize + partOf: sovereign-cloud +resources: + - deployment.yaml + - namespace.yaml + - service.yaml + - pvc.yaml +configMapGenerator: + - name: config + envs: + - config/config.env +secretGenerator: + - name: secrets + envs: + - config/secrets.env + +replacements: + - source: + kind: ConfigMap + name: config + fieldPath: data.POSTGRES_STORAGE + targets: + - fieldPaths: + - spec.resources.requests.storage + select: + kind: PersistentVolumeClaim + name: postgresql-pvc diff --git a/apps/postgres/manifest.yaml b/apps/postgres/manifest.yaml new file mode 100644 index 0000000..43a340b --- /dev/null +++ b/apps/postgres/manifest.yaml @@ -0,0 +1,5 @@ +name: postgres +install: true +description: PostgreSQL is a powerful, open source object-relational database system. +version: 1.0.0 +icon: https://www.postgresql.org/media/img/about/press/elephant.png diff --git a/apps/postgres/namespace.yaml b/apps/postgres/namespace.yaml new file mode 100644 index 0000000..427794c --- /dev/null +++ b/apps/postgres/namespace.yaml @@ -0,0 +1,4 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: postgres diff --git a/apps/postgres/pvc.yaml b/apps/postgres/pvc.yaml new file mode 100644 index 0000000..8751928 --- /dev/null +++ b/apps/postgres/pvc.yaml @@ -0,0 +1,12 @@ +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: postgres-pvc +spec: + accessModes: + - ReadWriteOnce + storageClassName: longhorn + resources: + requests: + storage: 2Gi diff --git a/apps/postgres/service.yaml b/apps/postgres/service.yaml new file mode 100644 index 0000000..4628dde --- /dev/null +++ b/apps/postgres/service.yaml @@ -0,0 +1,10 @@ +--- +apiVersion: v1 +kind: Service +metadata: + name: postgres +spec: + ports: + - port: 5432 + selector: + app: postgres