Files
k8s-version-tracker/kubernetes/upgrade-cronjob.yaml
T
claude-code 5ac7b2f5c5
CI/CD / lint-test (push) Failing after 1m40s
CI/CD / build-push (push) Has been skipped
fix: add request_upgrades.py to image, add web dashboard
- Dockerfile: add COPY for request_upgrades.py (was missing — root cause
  of Monday upgrade CronJob failing with 'No such file'), add git (needed
  for repo cloning in upgrade workflow), copy web.py + templates/
- requirements.txt: add fastapi, uvicorn, jinja2 for web dashboard
- web.py: FastAPI dashboard with image inventory and upgrade trigger pages
- templates/: base layout, images page (namespace→app→container grouped
  with live version status), upgrade page (outdated list + trigger button
  + job history)
- kubernetes/web-deployment.yaml: Deployment + LoadBalancer at 192.168.87.13
- kubernetes/rbac.yaml: add version-tracker-web ServiceAccount, ClusterRole
  (read pods/deployments/replicasets/statefulsets/daemonsets/jobs/cronjobs),
  and namespace Role to create upgrade Jobs
- kubernetes/upgrade-cronjob.yaml: fix YAML indentation bug on GITEA_USERNAME
  and GITEA_COMMITTER_NAME env vars
2026-07-12 16:15:15 +00:00

67 lines
2.2 KiB
YAML

---
apiVersion: batch/v1
kind: CronJob
metadata:
name: upgrade-requester
namespace: k8s-version-tracker
labels:
app: upgrade-requester
spec:
# Every Monday at 09:00 UTC — one day after the Sunday version report
schedule: "0 9 * * 1"
concurrencyPolicy: Forbid
successfulJobsHistoryLimit: 3
failedJobsHistoryLimit: 3
jobTemplate:
spec:
# 90 minutes: 60m approval window + time to clone, update, and push
activeDeadlineSeconds: 5400
template:
metadata:
labels:
app: upgrade-requester
spec:
serviceAccountName: upgrade-requester
restartPolicy: Never
containers:
- name: upgrade-requester
image: registry.storedbox.net/k8s-version-tracker:latest
imagePullPolicy: Always
command: ["python", "request_upgrades.py"]
env:
- name: MATTERMOST_WEBHOOK_URL
valueFrom:
secretKeyRef:
name: version-tracker-secrets
key: MATTERMOST_WEBHOOK_URL
- name: GITEA_TOKEN
valueFrom:
secretKeyRef:
name: version-tracker-secrets
key: GITEA_TOKEN
- name: GITEA_REPO_URL
value: "https://repo.adservio.us/ai_approver/argocd-gitops.git"
- name: GITEA_USERNAME
value: "ai_approver"
- name: GITEA_COMMITTER_NAME
value: "k8s-version-tracker"
- name: GITEA_COMMITTER_EMAIL
value: "k8s-version-tracker@themosers.club"
- name: APPROVAL_MIDDLEWARE_URL
value: "http://192.168.87.14:8085"
- name: APPROVAL_TIMEOUT_MINUTES
value: "60"
- name: APPROVAL_POLL_INTERVAL
value: "30"
resources:
requests:
cpu: 50m
memory: 128Mi
limits:
cpu: 200m
memory: 256Mi
---
# Manual trigger:
# kubectl create job --from=cronjob/upgrade-requester upgrade-manual -n k8s-version-tracker