--- apiVersion: v1 kind: Namespace metadata: name: researchowl --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: researchowl-data namespace: researchowl spec: accessModes: - ReadWriteOnce resources: requests: storage: 10Gi --- apiVersion: apps/v1 kind: Deployment metadata: name: researchowl namespace: researchowl labels: app: researchowl spec: replicas: 1 selector: matchLabels: app: researchowl template: metadata: labels: app: researchowl spec: containers: - name: researchowl image: git.chemavx.xyz/chemavx/researchowl:latest imagePullPolicy: Always env: - name: TELEGRAM_BOT_TOKEN valueFrom: secretKeyRef: name: researchowl-secrets key: telegram-bot-token - name: TELEGRAM_ALLOWED_USERS valueFrom: secretKeyRef: name: researchowl-secrets key: telegram-allowed-users - name: OLLAMA_URL value: "http://ollama.chemavx.xyz" - name: OLLAMA_MODEL value: "qwen2.5:7b" - name: OLLAMA_EMBED_MODEL value: "bge-m3" - name: DB_PATH value: "/data/researchowl.db" - name: MAX_SOURCES value: "150" - name: MAX_DEPTH value: "3" - name: QUALITY_THRESHOLD value: "0.4" # YouTube (/upload_short). `optional: true` a propósito: sin las # claves el pod arranca igual y el comando contesta "no configurado". # Sin optional, una clave que aún no existe deja el Deployment en # CreateContainerConfigError y tira el bot entero. - name: YOUTUBE_CLIENT_ID valueFrom: secretKeyRef: name: researchowl-secrets key: youtube-client-id optional: true - name: YOUTUBE_CLIENT_SECRET valueFrom: secretKeyRef: name: researchowl-secrets key: youtube-client-secret optional: true - name: YOUTUBE_REFRESH_TOKEN valueFrom: secretKeyRef: name: researchowl-secrets key: youtube-refresh-token optional: true volumeMounts: - name: data mountPath: /data resources: requests: memory: "256Mi" cpu: "100m" limits: memory: "1Gi" cpu: "500m" volumes: - name: data persistentVolumeClaim: claimName: researchowl-data imagePullSecrets: - name: gitea-registry --- # Secret template — fill with real values and apply manually # kubectl create secret generic researchowl-secrets \ # --from-literal=telegram-bot-token=YOUR_TOKEN \ # --from-literal=telegram-allowed-users=YOUR_USER_ID \ # -n researchowl apiVersion: v1 kind: Secret metadata: name: researchowl-secrets namespace: researchowl type: Opaque stringData: telegram-bot-token: "REPLACE_ME" telegram-allowed-users: "REPLACE_ME"