docs: add workload status reasons enhancement#136
Open
scotwells wants to merge 1 commit into
Open
Conversation
When a workload isn't running, users get one consistent, actionable reason and a plain-language message naming the specific blocker, surfaced the same way at the Instance, WorkloadDeployment, and Workload levels — instead of digging through raw nested Kubernetes conditions across three resources. This enhancement captures the platform-side contract — a single readiness condition per resource, a stable shared reason vocabulary, and an Instance-to-Workload priority rollup — that makes the "why isn't it running" developer-experience promise real. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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.
When a workload isn't running, a user can tell at a glance why — one consistent, actionable reason and a plain-language message naming the specific blocker (a missing ConfigMap, a quota shortfall, an absent network) — surfaced the same way at the Instance, WorkloadDeployment, and Workload levels, and the same way across the CLI today and the web console later. No more digging through raw nested Kubernetes conditions across three resources to answer a single question.
What it covers
Readyon Instance,Availableon WorkloadDeployment and Workload) that carries a stable reason and message whenever it isn't healthy.api/v1alphaand used consistently across all three resources —ReferencedDataNotReady,SourceNotFound,QuotaNotGranted,NetworkNotFound,NetworkProvisioning,InstancesProvisioning, and more.datumctl computesurfaces the reason directly off the resource it already fetches, with no special-case code.Why
This closes the platform-side half of the "why isn't it running" developer-experience gap named in
docs/enhancements/datumctl-compute-dx.md. That doc promises the CLI explains a stuck workload in plain terms with a next step; this contract is the data underneath that makes it real. The contract is already implemented in the compute controllers — this enhancement describes the shipped behavior, not a proposal.Notes for reviewers
This lifts the durable, product-facing contract out of the implementation-focused RFC in #129 (
docs/compute/development/rfcs/status-blocking-reason-contract.md) into a product enhancement onmain, matching thedocs/enhancements/convention. The step-by-step build sequence, file-by-file plan, and test-plan tail are intentionally left in the RFC and out of this doc. #129 will drop the original RFC. Uses "Instance" / "Workload" Datum nomenclature throughout.🤖 Generated with Claude Code