Fix tf-state-backup CronJob — replace dead bitnami/kubectl image #51
Labels
No labels
domain:backend
domain:devops
domain:frontend
status:approved
status:in-progress
status:needs-fix
status:qa
type:bug
type:devops
type:feature
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
forgejo_admin/pal-e-platform#51
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Lineage
bug-tf-state-backup-image-dead— relates toplan-pal-e-platform→ Phase 6.1 (state backup)Repo
forgejo_admin/pal-e-platformUser Story
As a platform operator
I want the tf-state-backup CronJob to use a working container image
So that daily Terraform state backups resume and data loss risk is eliminated
Context
Bitnami removed all Docker Hub images (same pattern that broke Keycloak). The
bitnami/kubectl:1.31image used by the tf-state-backup CronJob no longer exists. Pods fail withImagePullBackOff. No state backups have run since the CronJob was deployed.The fix is to switch to
alpine:3.20and download the kubectl binary alongside the existing mc (MinIO client) download in the init script. This avoids future Bitnami disappearances and keeps the image small.File Targets
Files the agent should modify:
terraform/main.tf(~line 1704) — CronJob container image + command/argsFiles the agent should NOT touch:
.woodpecker.yaml— CI pipeline, no changes neededsalt/— not relevant to this fixAcceptance Criteria
bitnami/kubectl:1.31toalpine:3.20/bin/bashto/bin/sh(alpine uses ash, not bash)kubectlcalls replaced with/tmp/kubectltofu validatepassestofu fmtproduces no changesTest Expectations
tofu validatepassestofu fmtcheck produces no diffkubectl create job --from=cronjob/tf-state-backup test-backup -n tofu-statecreates a pod that completes successfullytf-state-backupsbucketConstraints
alpine:3.20(pinned version, not:latest)dl.k8s.ioURLset -euo pipefailworks in BusyBox ash (alpine's shell)Checklist
tofu validatepassestofu fmtcleanRelated
bug-tf-state-backup-image-dead— pal-e-docs bug noteplan-pal-e-platform— Platform Hardening plan