From 6743f7c25f9df83113fbb09c6b9b90ecb93bb57c Mon Sep 17 00:00:00 2001 From: rock Date: Sat, 5 Sep 2026 01:10:51 -0700 Subject: [PATCH] Phase 6.6: Add Poimen Memory DLQ queues (ArgoCD managed) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ArgoCD Application: memory-queues ├─ Sync wave: 7 (messaging wave) ├─ Path: k8s/apps/messaging/memory-queues ├─ Namespace: sqs └─ Auto-sync: enabled (prune + selfHeal) Helm Chart: memory-queues ├─ Chart.yaml: v0.1.0 ├─ values.yaml: Queue config └─ templates/queues.yaml: Queue CRD resources Queues Created: 1. poimen-memory-dlq ├─ Purpose: Extraction + webhook + agent failures ├─ Partitions: 3 ├─ Replication factor: 1 ├─ Retention: 14 days (1,209,600 seconds) └─ Visibility timeout: 5 minutes (300 seconds) 2. poimen-memory-metric-dlq ├─ Purpose: Metrics persistence failures ├─ Partitions: 3 ├─ Replication factor: 1 ├─ Retention: 14 days └─ Visibility timeout: 5 minutes Resource: Queue CRD (kmsvc.io/v1alpha1) └─ Managed by: queue-operator (already running in sqs ns) Deployment Flow: ArgoCD (homelab) → sync wave 7 → deploy queues Memory app (poimen) → connects to kmsvc → sends DLQ messages Files: ├─ k8s/apps/messaging/memory-queues/Chart.yaml (new) ├─ k8s/apps/messaging/memory-queues/values.yaml (new) ├─ k8s/apps/messaging/memory-queues/templates/queues.yaml (new) └─ k8s/argocd/apps/50-memory-queues.yaml (new) --- cluster-config/kubeconfig.enc.yaml | 0 k8s/apps/messaging/memory-queues/Chart.yaml | 6 +++++ .../memory-queues/templates/queues.yaml | 20 +++++++++++++++ k8s/apps/messaging/memory-queues/values.yaml | 25 +++++++++++++++++++ k8s/argocd/apps/50-memory-queues.yaml | 20 +++++++++++++++ 5 files changed, 71 insertions(+) create mode 100644 cluster-config/kubeconfig.enc.yaml create mode 100644 k8s/apps/messaging/memory-queues/Chart.yaml create mode 100644 k8s/apps/messaging/memory-queues/templates/queues.yaml create mode 100644 k8s/apps/messaging/memory-queues/values.yaml create mode 100644 k8s/argocd/apps/50-memory-queues.yaml diff --git a/cluster-config/kubeconfig.enc.yaml b/cluster-config/kubeconfig.enc.yaml new file mode 100644 index 0000000..e69de29 diff --git a/k8s/apps/messaging/memory-queues/Chart.yaml b/k8s/apps/messaging/memory-queues/Chart.yaml new file mode 100644 index 0000000..65a9bc4 --- /dev/null +++ b/k8s/apps/messaging/memory-queues/Chart.yaml @@ -0,0 +1,6 @@ +apiVersion: v2 +name: memory-queues +description: Kafka queues (DLQ) for Poimen Memory service (Phase 6.6) +type: application +version: 0.1.0 +appVersion: "1.0" diff --git a/k8s/apps/messaging/memory-queues/templates/queues.yaml b/k8s/apps/messaging/memory-queues/templates/queues.yaml new file mode 100644 index 0000000..0467780 --- /dev/null +++ b/k8s/apps/messaging/memory-queues/templates/queues.yaml @@ -0,0 +1,20 @@ +{{- range .Values.queues }} +--- +apiVersion: kmsvc.io/v1alpha1 +kind: Queue +metadata: + name: {{ .name }} + namespace: {{ $.Values.namespace }} + labels: + app: memory-service + queue: dlq +spec: + name: {{ .name }} + description: {{ .description }} + partitions: {{ .partitions }} + replicationFactor: {{ .replicationFactor }} + config: + retention.ms: "{{ .config.retention.ms }}" + message.retention.seconds: "{{ .config.message.retention.seconds }}" + visibility.timeout.seconds: "{{ .config.visibility.timeout.seconds }}" +{{- end }} diff --git a/k8s/apps/messaging/memory-queues/values.yaml b/k8s/apps/messaging/memory-queues/values.yaml new file mode 100644 index 0000000..c238e88 --- /dev/null +++ b/k8s/apps/messaging/memory-queues/values.yaml @@ -0,0 +1,25 @@ +# Poimen Memory Service Kafka Queues (kmsvc) +# Phase 6.6: DLQ topics for webhook + metrics failures + +queues: + # DLQ for extraction, webhook, and agent failures + - name: poimen-memory-dlq + description: "DLQ for extraction, webhook, and agent failures" + partitions: 3 + replicationFactor: 1 + config: + retention.ms: "1209600000" # 14 days + message.retention.seconds: "1209600" + visibility.timeout.seconds: "300" + + # DLQ for metrics persistence failures + - name: poimen-memory-metric-dlq + description: "DLQ for metrics persistence failures" + partitions: 3 + replicationFactor: 1 + config: + retention.ms: "1209600000" # 14 days + message.retention.seconds: "1209600" + visibility.timeout.seconds: "300" + +namespace: sqs diff --git a/k8s/argocd/apps/50-memory-queues.yaml b/k8s/argocd/apps/50-memory-queues.yaml new file mode 100644 index 0000000..2aaec84 --- /dev/null +++ b/k8s/argocd/apps/50-memory-queues.yaml @@ -0,0 +1,20 @@ +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: memory-queues + namespace: argocd + annotations: + argocd.argoproj.io/sync-wave: "7" +spec: + project: homelab + source: + repoURL: https://forgejo.riotpiao.com/rock/homelab.git + targetRevision: main + path: k8s/apps/messaging/memory-queues + destination: + server: https://kubernetes.default.svc + namespace: sqs + syncPolicy: + automated: + prune: true + selfHeal: true