# ---------- iam-db ---------- apiVersion: v1 kind: PersistentVolumeClaim metadata: {name: iam-db-data, namespace: enkly} spec: accessModes: [ReadWriteOnce] storageClassName: managed-nfs-storage resources: {requests: {storage: 5Gi}} --- apiVersion: apps/v1 kind: Deployment metadata: {name: iam-db, namespace: enkly, labels: {app: iam-db}} spec: replicas: 1 strategy: {type: Recreate} selector: {matchLabels: {app: iam-db}} template: metadata: {labels: {app: iam-db}} spec: imagePullSecrets: [{name: enkly-registry}] containers: - name: postgres image: postgres:16-alpine ports: [{name: pg, containerPort: 5432}] env: - {name: POSTGRES_USER, value: "enkly"} - {name: POSTGRES_DB, value: "enkly_iam"} - {name: PGDATA, value: "/var/lib/postgresql/data/pgdata"} - name: POSTGRES_PASSWORD valueFrom: {secretKeyRef: {name: enkly-secrets, key: POSTGRES_PASSWORD}} resources: requests: {cpu: 100m, memory: 256Mi} limits: {cpu: 500m, memory: 512Mi} readinessProbe: exec: {command: ["pg_isready", "-U", "enkly"]} periodSeconds: 5 timeoutSeconds: 5 failureThreshold: 10 livenessProbe: exec: {command: ["pg_isready", "-U", "enkly"]} initialDelaySeconds: 30 periodSeconds: 15 failureThreshold: 6 volumeMounts: [{name: data, mountPath: /var/lib/postgresql/data}] volumes: - name: data persistentVolumeClaim: {claimName: iam-db-data} --- apiVersion: v1 kind: Service metadata: {name: iam-db, namespace: enkly, labels: {app: iam-db}} spec: selector: {app: iam-db} ports: [{name: pg, port: 5432, targetPort: pg}] # ---------- billing-db ---------- --- apiVersion: v1 kind: PersistentVolumeClaim metadata: {name: billing-db-data, namespace: enkly} spec: accessModes: [ReadWriteOnce] storageClassName: managed-nfs-storage resources: {requests: {storage: 5Gi}} --- apiVersion: apps/v1 kind: Deployment metadata: {name: billing-db, namespace: enkly, labels: {app: billing-db}} spec: replicas: 1 strategy: {type: Recreate} selector: {matchLabels: {app: billing-db}} template: metadata: {labels: {app: billing-db}} spec: imagePullSecrets: [{name: enkly-registry}] containers: - name: postgres image: postgres:16-alpine ports: [{name: pg, containerPort: 5432}] env: - {name: POSTGRES_USER, value: "enkly"} - {name: POSTGRES_DB, value: "enkly_billing"} - {name: PGDATA, value: "/var/lib/postgresql/data/pgdata"} - name: POSTGRES_PASSWORD valueFrom: {secretKeyRef: {name: enkly-secrets, key: POSTGRES_PASSWORD}} resources: requests: {cpu: 100m, memory: 256Mi} limits: {cpu: 500m, memory: 512Mi} readinessProbe: exec: {command: ["pg_isready", "-U", "enkly"]} periodSeconds: 5 timeoutSeconds: 5 failureThreshold: 10 livenessProbe: exec: {command: ["pg_isready", "-U", "enkly"]} initialDelaySeconds: 30 periodSeconds: 15 failureThreshold: 6 volumeMounts: [{name: data, mountPath: /var/lib/postgresql/data}] volumes: - name: data persistentVolumeClaim: {claimName: billing-db-data} --- apiVersion: v1 kind: Service metadata: {name: billing-db, namespace: enkly, labels: {app: billing-db}} spec: selector: {app: billing-db} ports: [{name: pg, port: 5432, targetPort: pg}] # ---------- conversation-db ---------- --- apiVersion: v1 kind: PersistentVolumeClaim metadata: {name: conversation-db-data, namespace: enkly} spec: accessModes: [ReadWriteOnce] storageClassName: managed-nfs-storage resources: {requests: {storage: 5Gi}} --- apiVersion: apps/v1 kind: Deployment metadata: {name: conversation-db, namespace: enkly, labels: {app: conversation-db}} spec: replicas: 1 strategy: {type: Recreate} selector: {matchLabels: {app: conversation-db}} template: metadata: {labels: {app: conversation-db}} spec: imagePullSecrets: [{name: enkly-registry}] containers: - name: postgres image: postgres:16-alpine ports: [{name: pg, containerPort: 5432}] env: - {name: POSTGRES_USER, value: "enkly"} - {name: POSTGRES_DB, value: "enkly_conversation"} - {name: PGDATA, value: "/var/lib/postgresql/data/pgdata"} - name: POSTGRES_PASSWORD valueFrom: {secretKeyRef: {name: enkly-secrets, key: POSTGRES_PASSWORD}} resources: requests: {cpu: 100m, memory: 256Mi} limits: {cpu: 500m, memory: 512Mi} readinessProbe: exec: {command: ["pg_isready", "-U", "enkly"]} periodSeconds: 5 timeoutSeconds: 5 failureThreshold: 10 livenessProbe: exec: {command: ["pg_isready", "-U", "enkly"]} initialDelaySeconds: 30 periodSeconds: 15 failureThreshold: 6 volumeMounts: [{name: data, mountPath: /var/lib/postgresql/data}] volumes: - name: data persistentVolumeClaim: {claimName: conversation-db-data} --- apiVersion: v1 kind: Service metadata: {name: conversation-db, namespace: enkly, labels: {app: conversation-db}} spec: selector: {app: conversation-db} ports: [{name: pg, port: 5432, targetPort: pg}] # ---------- knowledge-db (pgvector) ---------- --- apiVersion: v1 kind: PersistentVolumeClaim metadata: {name: knowledge-db-data, namespace: enkly} spec: accessModes: [ReadWriteOnce] storageClassName: managed-nfs-storage resources: {requests: {storage: 10Gi}} --- apiVersion: apps/v1 kind: Deployment metadata: {name: knowledge-db, namespace: enkly, labels: {app: knowledge-db}} spec: replicas: 1 strategy: {type: Recreate} selector: {matchLabels: {app: knowledge-db}} template: metadata: {labels: {app: knowledge-db}} spec: imagePullSecrets: [{name: enkly-registry}] containers: - name: postgres image: pgvector/pgvector:pg16 ports: [{name: pg, containerPort: 5432}] env: - {name: POSTGRES_USER, value: "enkly"} - {name: POSTGRES_DB, value: "enkly_knowledge"} - {name: PGDATA, value: "/var/lib/postgresql/data/pgdata"} - name: POSTGRES_PASSWORD valueFrom: {secretKeyRef: {name: enkly-secrets, key: POSTGRES_PASSWORD}} resources: requests: {cpu: 200m, memory: 512Mi} limits: {cpu: 1, memory: 1Gi} readinessProbe: exec: {command: ["pg_isready", "-U", "enkly"]} periodSeconds: 5 timeoutSeconds: 5 failureThreshold: 10 livenessProbe: exec: {command: ["pg_isready", "-U", "enkly"]} initialDelaySeconds: 30 periodSeconds: 15 failureThreshold: 6 volumeMounts: [{name: data, mountPath: /var/lib/postgresql/data}] volumes: - name: data persistentVolumeClaim: {claimName: knowledge-db-data} --- apiVersion: v1 kind: Service metadata: {name: knowledge-db, namespace: enkly, labels: {app: knowledge-db}} spec: selector: {app: knowledge-db} ports: [{name: pg, port: 5432, targetPort: pg}]