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>
This commit is contained in:
@@ -0,0 +1,124 @@
|
||||
---
|
||||
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
|
||||
Reference in New Issue
Block a user