fix: Restore a buildable, digest-pinned base image - #1
Open
johnxie wants to merge 1 commit into
Open
Conversation
v1.24.12 (406449b) swapped the base from a digest-pinned gcr.io image to `bitnami/kubectl:1.24.12`. That tag is broken twice over, and both were reproduced with `docker build` before this revert: 1. The image does not exist. Bitnami retired their free Docker Hub catalog and moved the images to bitnamilegacy: bitnami/kubectl:1.24.12 -> 404 tag not found bitnamilegacy/kubectl:1.24.12 -> 200 2. Resolving it to bitnamilegacy does not help. The build then fails at the aws-iam-authenticator RUN step with `curl: command not found` - the bitnami base ships no curl. So v1.24.12 has never been able to build. Container actions build at job runtime, which is why nothing surfaced it until Dependabot proposed the bump to taskade/taskcade (taskade/taskcade#27963). That action runs on the production deploy path, at "Create AWS credentials secret" and "Register Temporal taskade Namespace", and nothing in PR CI exercises those workflows - so the bump would have merged green and failed at the next release. This restores the digest that v1.0.3 used and that taskade/taskcade runs in production today. Verified locally: builds clean, kubectl v1.23.15, aws-iam-authenticator 0.6.2, sh + base64 present for entrypoint.sh. The resulting image digest is byte-identical to a build of the v1.0.3 Dockerfile. Digest pinning is kept deliberately and commented, since a floating tag on this action means a third party can change what runs with our kubeconfig and AWS credentials.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
v1.24.12(406449b) is broken and has never been able to build. This restores the digest-pinned base thatv1.0.3used and thattaskade/taskcaderuns in production today.Found while triaging taskade/taskcade#27963, where Dependabot proposed moving taskcade from
@v1.0.3to@v1.24.12.Two independent breaks, both reproduced with
docker build1. The base image does not exist
Bitnami retired their free Docker Hub catalog; the images moved to
bitnamilegacy.2. Resolving it to bitnamilegacy still does not build
The bitnami base ships no
curl. So even the "obvious" fix of repointing atbitnamilegacyleaves the action unbuildable.Why nobody noticed
Container actions build at job runtime, not at tag time. Nothing built
v1.24.12until it was proposed for use.Blast radius had taskcade#27963 merged
taskade/taskcade/.github/workflows/production.ymluses this action twice:Nothing in taskcade's PR CI exercises
production.yml, so it would have merged green and detonated at the next release.Verification
entrypoint.shneedssh,base64andkubectl- all present. The resulting image digest is byte-identical to a build of thev1.0.3Dockerfile, so this is a provable zero-regression restore.Follow-up needed after merge
Re-tag
v1.24.12onto this commit, so anyone who already picked it up is repaired. I have not moved the tag in this PR because moving a published tag is an outward-facing change and should be a deliberate call.Not done here (deliberately)
Upgrading kubectl past the 1.23.15 in this image is a real want - that was presumably the intent behind v1.24.12. Doing it properly needs:
curl, or a different way to fetchaws-iam-authenticatoraws-iam-authenticator0.6.2 is from 2022 and probably wants a bump at the same timedocker buildon every PR, which would have caught this at authoring timeWorth its own PR. This one just stops the bleeding.
Note
Low Risk
Build-only Dockerfile change that reverts to a previously verified image; no runtime logic changes beyond fixing a failed build.
Overview
Fixes an unbuildable
Dockerfileby droppingbitnami/kubectl:1.24.12and restoring the digest-pinnedgcr.io/cloud-builders/kubectlimage used inv1.0.3, sodocker buildsucceeds again (including theRUNthat installsaws-iam-authenticatorviacurl).Adds inline documentation explaining why the Bitnami tag is unusable (404 on Docker Hub; legacy image lacks
curl) and why the base must stay immutable for production workflows that run with kubeconfig and AWS credentials.Reviewed by Cursor Bugbot for commit d75d309. Bugbot is set up for automated code reviews on this repo. Configure here.