Repository navigation
fix(compute): name an image pull failure instead of a bare runtime wait - #2851
Merged
Merged
Conversation
An unpullable Harness or gateway image left deployment progress at REVISION_INCOMPLETE "Waiting for the runtime to become ready." while the kubelet retried. Kubernetes Compute now reports WORKLOAD_IMAGE_PULL_FAILED when a live Pod's container or init container waits on ErrImagePull or ImagePullBackOff (an unschedulable Pod still leads), and the worker records it as REVISION_IMAGE_PULL_FAILED with fixed copy that never includes the image reference or the registry's response.
Contributor
|
🦞👀 Pull request received. I will update this pull request when review starts. ClawSweeper review completeClawSweeper finished reviewing this revision. The review result is being finalized. |
freeqaz
had a problem deploying
to
integration-qa-pr
October 18, 2026 13:29 — with
GitHub Actions
Error
freeqaz
had a problem deploying
to
integration-qa-pr
October 18, 2026 13:29 — with
GitHub Actions
Error
freeqaz
had a problem deploying
to
integration-qa-pr
October 18, 2026 13:29 — with
GitHub Actions
Error
freeqaz
had a problem deploying
to
integration-qa-pr
October 18, 2026 13:41 — with
GitHub Actions
Failure
freeqaz
temporarily deployed
to
integration-qa-pr
October 18, 2026 13:41 — with
GitHub Actions
Inactive
freeqaz
temporarily deployed
to
integration-qa-pr
October 18, 2026 13:41 — with
GitHub Actions
Inactive
Contributor
|
ClawSweeper status: review started. I am starting a fresh review of this pull request: fix(compute): name an image pull failure instead of a bare runtime wait This is item 1/1 in the current shard. Shard 0/1. This temporary status tracks the active review worker. The completed review will appear in the durable ClawSweeper review comment. Crustacean status: shell secured, claws on keyboard, evidence pebbles being sorted. |
This branch was previously deployed
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.
Problem
An Agent whose Harness or gateway image cannot be pulled shows only
REVISION_INCOMPLETE"Waiting for the runtime to become ready." while the kubelet retries, flipping between queued and running until the convergence deadline. Pending codes named an unschedulable Pod, a full Pod quota and workspace waits, but notErrImagePull/ImagePullBackOff(dogfood D474).Change
safePodPendingObservation. It still returnsWORKLOAD_UNSCHEDULABLEfirst. Otherwise it returns the newWORKLOAD_IMAGE_PULL_FAILEDwhen a live Pod's container or init container waits with reasonErrImagePullorImagePullBackOff. As before, an unavailable observation reports nothing, and a full Pod quota still leads.ComputePendingReasongainsWORKLOAD_IMAGE_PULL_FAILED. The worker maps it toREVISION_IMAGE_PULL_FAILED.REVISION_IMAGE_PULL_FAILEDis fixed text: "Kubernetes cannot pull a container image for this Agent and keeps retrying. Ask an administrator to check the runtime image reference and that the cluster's nodes can pull from its registry." Like the other pending codes, it never includes the image reference or the registry's response.docs/reference/agents/deployment.mdlists the new code. The paragraph was tightened so the page stays at its current word count (2480).lastAttempt.codeis an open string (OpenAPI: 1-64 characters), and no RFC fixes the pending-code set. This follows fix(compute): name a full Namespace Pod quota instead of a bare provisioning wait #2674, which addedNAMESPACE_POD_QUOTA_EXCEEDEDthe same way.Verification
tsc --build tsconfig.json: clean.node --test tests/conformance/kubernetes-compute.test.mjs: 375/375. The new "a pending dedicated deploy names a container image pull failure" covers agent and gateway Pods, init containers, both reasons, non-pull waits (ContainerCreating,CrashLoopBackOff) and unschedulable precedence. It passes 20/20 on 2 CPUs together with the existing pending-deploy tests.tests/integration/postgres-worker-agent-revision.test.mjs: extended with the new code and copy. It needs PostgreSQL and was skipped locally; CI runs it.Risks
REVISION_UNSCHEDULABLE.