apiVersion: batch/v1 kind: CronJob metadata: name: myorg-morning-briefing namespace: myorg-assistant labels: app: myorg-assistant job: morning-briefing spec: # Run at 8:00 AM every day (adjust for your timezone) schedule: "0 8 * * *" timeZone: "Europe/Madrid" successfulJobsHistoryLimit: 3 failedJobsHistoryLimit: 3 concurrencyPolicy: Forbid jobTemplate: spec: template: metadata: labels: app: myorg-assistant job: morning-briefing spec: restartPolicy: OnFailure imagePullSecrets: - name: gitea-registry containers: - name: morning-briefing image: git.rogi.casa/roger/myorg-assistant/myorg-assistant:fcf79bf imagePullPolicy: Always command: - python - -c - "from src.scheduler.jobs import run_job; import sys; run_job(sys.argv[1])" - morning-briefing env: # From ConfigMap - name: MYORG_REPO_PATH valueFrom: configMapKeyRef: name: myorg-assistant-config key: MYORG_REPO_PATH - name: TIMEZONE valueFrom: configMapKeyRef: name: myorg-assistant-config key: TIMEZONE # From Secret - name: DISCORD_BOT_TOKEN valueFrom: secretKeyRef: name: myorg-assistant-secret key: DISCORD_BOT_TOKEN - name: DISCORD_CHANNEL_ID valueFrom: secretKeyRef: name: myorg-assistant-secret key: DISCORD_CHANNEL_ID - name: LITELLM_API_KEY valueFrom: secretKeyRef: name: myorg-assistant-secret key: LITELLM_API_KEY - name: WEB_SECRET_KEY valueFrom: secretKeyRef: name: myorg-assistant-secret key: WEB_SECRET_KEY - name: GIT_REPO_URL valueFrom: secretKeyRef: name: myorg-assistant-secret key: GIT_REPO_URL - name: GIT_USERNAME valueFrom: secretKeyRef: name: myorg-assistant-secret key: GIT_USERNAME - name: GIT_TOKEN valueFrom: secretKeyRef: name: myorg-assistant-secret key: GIT_TOKEN volumeMounts: - name: myorg-data mountPath: /data/myorg volumes: - name: myorg-data persistentVolumeClaim: claimName: myorg-assistant-pvc