diff --git a/k8s/infra/databases/memory-db.yaml b/k8s/infra/databases/memory-db.yaml index 3193c0a..995f52c 100644 --- a/k8s/infra/databases/memory-db.yaml +++ b/k8s/infra/databases/memory-db.yaml @@ -1,8 +1,6 @@ ---- -# CNPG Postgres cluster for Poimen Memory system (GitOps, declarative extensions). -# 2 instances, pgvector 0.7.0 via spec.extensions (not manual CREATE EXTENSION). -# Storage: 10Gi longhorn, consistent with temporal-db.yaml. -# No manual psql needed — all via git/ArgoCD. +# Dedicated CNPG Postgres for Poimen Memory (GitOps, wave 2). +# Matches homelab/k8s/infra/databases/memory-db.yaml — single source of truth. +# CNPG generates secret `memory-db-app` + service `memory-db-rw` in ns poimen. apiVersion: postgresql.cnpg.io/v1 kind: Cluster metadata: @@ -13,20 +11,6 @@ metadata: spec: instances: 2 imageName: ghcr.io/cloudnative-pg/postgresql:16.2 - enableSuperuserAccess: false - storage: - size: 10Gi - storageClass: longhorn - resources: - requests: { memory: "512Mi", cpu: "250m" } - limits: { memory: "2Gi", cpu: "1" } - affinity: - podAntiAffinityType: preferred - topologyKey: kubernetes.io/hostname - tolerations: - - key: node-role.kubernetes.io/control-plane - operator: Exists - effect: NoSchedule bootstrap: initdb: database: memory @@ -34,25 +18,19 @@ spec: encoding: UTF8 localeCollate: C localeCType: C - monitoring: - enabled: true - podMonitorTemplate: - spec: - interval: 30s - scrapeTimeout: 10s ---- -# Database resource with pgvector extension (declarative, git-managed). -# CNPG 1.30.0+ supports this via spec.extensions on the Database CRD. -# Ensures pgvector is installed and available for HNSW indexing. -apiVersion: postgresql.cnpg.io/v1 -kind: Database -metadata: - name: memory - namespace: poimen -spec: - cluster: - name: memory-db - owner: app - extensions: - - name: vector - ensure: present + postInitApplicationSQL: + - "CREATE EXTENSION vector;" + enableSuperuserAccess: false + resources: + requests: { memory: "512Mi", cpu: "250m" } + limits: { memory: "2Gi", cpu: "1" } + storage: + size: 20Gi + storageClass: longhorn + affinity: + podAntiAffinityType: preferred + topologyKey: kubernetes.io/hostname + tolerations: + - key: node-role.kubernetes.io/control-plane + operator: Exists + effect: NoSchedule