--- 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