Add Poimen Memory to ArgoCD wave 2 deployment (namespace: poimen)
This commit is contained in:
@@ -0,0 +1,36 @@
|
|||||||
|
# Poimen Memory — LLM-powered gated memory system
|
||||||
|
# Tracks k8s/argocd/ apps from Poimen Memory repo
|
||||||
|
# Wave 7: Same as other Poimen services, syncs after core infra
|
||||||
|
apiVersion: argoproj.io/v1alpha1
|
||||||
|
kind: Application
|
||||||
|
metadata:
|
||||||
|
name: poimen-memory-root
|
||||||
|
namespace: argocd
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/name: poimen-memory
|
||||||
|
app.kubernetes.io/component: memory-system
|
||||||
|
annotations:
|
||||||
|
argocd.argoproj.io/sync-wave: "7"
|
||||||
|
spec:
|
||||||
|
project: homelab
|
||||||
|
source:
|
||||||
|
repoURL: https://github.com/Riotpiaole/Poimen-memory.git
|
||||||
|
targetRevision: main
|
||||||
|
path: k8s/argocd
|
||||||
|
directory:
|
||||||
|
recurse: false
|
||||||
|
destination:
|
||||||
|
server: https://kubernetes.default.svc
|
||||||
|
namespace: argocd
|
||||||
|
syncPolicy:
|
||||||
|
automated:
|
||||||
|
prune: true
|
||||||
|
selfHeal: true
|
||||||
|
syncOptions:
|
||||||
|
- CreateNamespace=true
|
||||||
|
retry:
|
||||||
|
limit: 5
|
||||||
|
backoff:
|
||||||
|
duration: 5s
|
||||||
|
factor: 2
|
||||||
|
maxDuration: 3m
|
||||||
@@ -12,6 +12,8 @@ spec:
|
|||||||
description: Homelab GitOps — single-repo, in-cluster destinations only
|
description: Homelab GitOps — single-repo, in-cluster destinations only
|
||||||
sourceRepos:
|
sourceRepos:
|
||||||
- https://github.com/Riotpiaole/riotpiao.homelab.com.git
|
- https://github.com/Riotpiaole/riotpiao.homelab.com.git
|
||||||
|
# Poimen Memory repository
|
||||||
|
- https://github.com/Riotpiaole/Poimen-memory.git
|
||||||
# In-cluster Forgejo wildcard — all rock/* repos can be onboarded without
|
# In-cluster Forgejo wildcard — all rock/* repos can be onboarded without
|
||||||
# touching this AppProject. Enabled by Stage 1 (A1).
|
# touching this AppProject. Enabled by Stage 1 (A1).
|
||||||
- https://forgejo.riotpiao.com/rock/*
|
- https://forgejo.riotpiao.com/rock/*
|
||||||
|
|||||||
@@ -1,8 +1,10 @@
|
|||||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
kind: Kustomization
|
kind: Kustomization
|
||||||
# Dedicated per-app CNPG clusters. NO top-level `namespace:` — each Cluster
|
# Dedicated per-app CNPG clusters. NO top-level `namespace:` — each Cluster
|
||||||
# carries its own ns (iam / temporal); a transformer would wrongly collapse them.
|
# carries its own ns (iam / temporal / poimen); a transformer would wrongly collapse them.
|
||||||
|
# poimen ns created by poimen-root app, memory-db deployed into it.
|
||||||
resources:
|
resources:
|
||||||
- namespaces.yaml
|
- namespaces.yaml
|
||||||
- authentik-db.yaml
|
- authentik-db.yaml
|
||||||
- temporal-db.yaml
|
- temporal-db.yaml
|
||||||
|
- memory-db.yaml
|
||||||
|
|||||||
@@ -0,0 +1,41 @@
|
|||||||
|
# Dedicated CNPG Postgres for Poimen Memory (GitOps, wave 2 — before poimen w3).
|
||||||
|
# Includes pgvector extension for semantic search (768-dim embeddings).
|
||||||
|
# CNPG generates secret `memory-db-app` + service `memory-db-rw` in ns poimen;
|
||||||
|
# poimen reads them locally (no cross-ns secret copy).
|
||||||
|
apiVersion: postgresql.cnpg.io/v1
|
||||||
|
kind: Cluster
|
||||||
|
metadata:
|
||||||
|
name: memory-db
|
||||||
|
namespace: poimen
|
||||||
|
annotations:
|
||||||
|
argocd.argoproj.io/sync-options: SkipDryRunOnMissingResource=true
|
||||||
|
spec:
|
||||||
|
instances: 3
|
||||||
|
imageName: ghcr.io/cloudnative-pg/postgresql:16.2
|
||||||
|
bootstrap:
|
||||||
|
initdb:
|
||||||
|
database: memory
|
||||||
|
owner: app
|
||||||
|
encoding: UTF8
|
||||||
|
localeCollate: C
|
||||||
|
localeCType: C
|
||||||
|
postInitApplicationSQL:
|
||||||
|
- "CREATE EXTENSION vector;"
|
||||||
|
enableSuperuserAccess: false
|
||||||
|
resources:
|
||||||
|
requests: { memory: "512Mi", cpu: "250m" }
|
||||||
|
limits: { memory: "2Gi", cpu: "1" }
|
||||||
|
storage:
|
||||||
|
size: 10Gi
|
||||||
|
storageClass: longhorn-cnpg
|
||||||
|
monitoring:
|
||||||
|
enablePodMonitor: true
|
||||||
|
affinity:
|
||||||
|
# preferred + tolerations: HA across nodes without deadlocking a partly-
|
||||||
|
# schedulable 3-CP (same as temporal/authentik-db).
|
||||||
|
podAntiAffinityType: preferred
|
||||||
|
topologyKey: kubernetes.io/hostname
|
||||||
|
tolerations:
|
||||||
|
- key: node-role.kubernetes.io/control-plane
|
||||||
|
operator: Exists
|
||||||
|
effect: NoSchedule
|
||||||
@@ -1,6 +1,7 @@
|
|||||||
# DB clusters are wave 2 — their namespaces must exist first (their apps that
|
# DB clusters are wave 2 — their namespaces must exist first (their apps that
|
||||||
# would CreateNamespace run later, w3/w8). Declared here so the databases App
|
# would CreateNamespace run later, w3/w8). Declared here so the databases App
|
||||||
# creates them. authentik/vault/temporal CreateNamespace=true then no-ops.
|
# creates them. authentik/vault/temporal CreateNamespace=true then no-ops.
|
||||||
|
# poimen namespace created by poimen-root app (wave 7).
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
kind: Namespace
|
kind: Namespace
|
||||||
metadata:
|
metadata:
|
||||||
|
|||||||
Reference in New Issue
Block a user