Files
k8s-manifests/reddit-intel/deployment.yaml
T
chemavxandClaude Fable 5 ae0b5f9492 feat(reddit-intel): manifiestos preparados, INACTIVOS hasta promoción
App corre en docker compose en n97 (semana de calibración). El app-of-apps
no es recursivo: nada de este directorio se sincroniza hasta aplicar a mano
argocd-app.yaml. Checklist de activación en PROMOTION.md (imagen construida,
secrets en Infisical /reddit-intel, copia de la BD al PVC).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-06 17:14:06 +00:00

125 lines
3.5 KiB
YAML

---
apiVersion: v1
kind: Namespace
metadata:
name: reddit-intel
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
annotations:
# Never let ArgoCD prune this PVC: it holds the SQLite DB.
argocd.argoproj.io/sync-options: Prune=false
name: reddit-intel-data
namespace: reddit-intel
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 2Gi
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: reddit-intel
namespace: reddit-intel
labels:
app: reddit-intel
spec:
replicas: 1
# Single-replica app on a RWO local-path SQLite DB (WAL) with an in-process
# APScheduler: Recreate avoids two pods briefly sharing /data/reddit-intel.db.
strategy:
type: Recreate
selector:
matchLabels:
app: reddit-intel
template:
metadata:
labels:
app: reddit-intel
spec:
containers:
- name: reddit-intel
# Placeholder tag: el workflow manual (repo reddit-intel) lo sustituye
# por el sha8 real en cada build. Ver PROMOTION.md.
image: git.chemavx.xyz/chemavx/reddit-intel:00000000
imagePullPolicy: Always
ports:
- containerPort: 8080
env:
- name: DB_PATH
value: "/data/reddit-intel.db"
- name: REDDIT_USERNAME
value: "ExclusionZoneUAP"
- name: REDDIT_USER_AGENT
value: "linux:reddit-intel:v1.0 (by /u/ExclusionZoneUAP)"
- name: LLM_PROVIDER
value: "anthropic"
- name: LLM_MODEL_SCORING
value: "claude-haiku-4-5"
- name: LLM_MODEL_DRAFTING
value: "claude-sonnet-5"
- name: DAILY_LLM_BUDGET
value: "60"
- name: REDDIT_CLIENT_ID
valueFrom:
secretKeyRef:
name: reddit-intel-secrets
key: reddit-client-id
- name: REDDIT_CLIENT_SECRET
valueFrom:
secretKeyRef:
name: reddit-intel-secrets
key: reddit-client-secret
- name: LLM_API_KEY
valueFrom:
secretKeyRef:
name: reddit-intel-secrets
key: llm-api-key
- name: DASHBOARD_AUTH_TOKEN
valueFrom:
secretKeyRef:
name: reddit-intel-secrets
key: dashboard-auth-token
- name: TELEGRAM_BOT_TOKEN
valueFrom:
secretKeyRef:
name: reddit-intel-secrets
key: telegram-bot-token
- name: TELEGRAM_CHAT_ID
valueFrom:
secretKeyRef:
name: reddit-intel-secrets
key: telegram-chat-id
volumeMounts:
- name: data
mountPath: /data
readinessProbe:
httpGet:
path: /healthz
port: 8080
initialDelaySeconds: 10
livenessProbe:
httpGet:
path: /healthz
port: 8080
initialDelaySeconds: 20
periodSeconds: 60
resources:
requests:
memory: "128Mi"
cpu: "50m"
limits:
memory: "512Mi"
cpu: "500m"
volumes:
- name: data
persistentVolumeClaim:
claimName: reddit-intel-data
imagePullSecrets:
- name: gitea-registry