Files
k3s-cluster/myorg-assistant/cronjobs/morning-briefing.yaml
Platform Engineer 533b448082 fix(myorg-assistant): fix ImagePullBackOff on cronjobs — use Gitea registry image
All 5 CronJob manifests (deadline-checker, evening-summary, git-sync,
morning-briefing, waiting-followup) referenced 'myorg-assistant:latest'
—a bare local image name that doesn't exist on any node. The main
Deployment already uses git.rogi.casa/roger/myorg-assistant/myorg-assistant:fcf79bf.

Changes per cronjob:
- image: myorg-assistant:latest → git.rogi.casa/.../myorg-assistant:fcf79bf
- imagePullPolicy: IfNotPresent → Always (match Deployment)
- Add imagePullSecrets: gitea-registry (required for private registry)

This fixes 4 pods stuck in ImagePullBackOff for ~6+ hours.
2026-07-05 22:00:36 +00:00

70 lines
2.0 KiB
YAML

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
- run_job.py
- 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
volumeMounts:
- name: myorg-data
mountPath: /data/myorg
volumes:
- name: myorg-data
persistentVolumeClaim:
claimName: myorg-assistant-pvc