Gate SkillCollection / run readiness on the SkillCard Resolvable condition
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 35/100
- Issue type
- Feature
- Clarity
- Needs clarification
- Activity status
- Active
- Tech stack
- go, kubernetes
- Domain
- backend, infrastructure
Research direction
Start with SkillCollection.checkSkillCardRef in internal/controller/skillcollection_controller.go and classifyResolveError in internal/controller/imageresolve.go. Read the related readiness and AgentRun admission paths, then settle how Resolvable=False and Unknown should be handled, including the bare-404 caveat. Done means the admission behavior is decided and covered by appropriate controller tests.
Written by the indexing model from the issue text.
Description
Background
#188 added a best-effort Resolvable condition to image-backed SkillCards
(ArtifactPresent / ArtifactMissing / ResolveInconclusive) so a phantom
image ref — well-formed, Ready=True, but with no manifest in its registry — is
surfaced before run time, which is the point of #187.
Today that condition is informational only. Nothing consumes it, so it does
not yet prevent the failure #187 set out to catch.
Problem
SkillCollection.checkSkillCardRef
(skillcollection_controller.go:174)
gates a collection's readiness only on the card's Ready condition. So a phantom
card (Ready=True, Resolvable=False) still makes its collection Ready, and a
run using that collection is still admitted — then ImagePullBackOffs at pod
time. The same is true for an AgentRun that references a phantom card directly.
Proposal
Decide how Resolvable should feed collection and run admission. Two design
calls to settle:
-
What may block — only
False, neverUnknown.Resolvable=Unknownis
best-effort inconclusive (a private registry the controller can't
authenticate to, or a transient network error); the pod may still pull it
with its ownimagePullSecrets. Gating onUnknownwould break every
private image, so only a definitiveResolvable=Falseis a candidate to
block. -
Hard gate vs. soft warning. Does
Falsemake the collectionNotReady/
refuse the run (a real run-admission gate), or just annotate a warning and
let the operator's requested run proceed? A hard gate changes admission
semantics.
Caveat to resolve before any hard gate
classifyResolveError
(imageresolve.go)
currently maps a bare 404 (no MANIFEST_UNKNOWN / NAME_UNKNOWN code) to
Missing. Some registries answer 404 for private repos to avoid leaking
existence, so a pullable private image could report Resolvable=False. If
False becomes a hard gate, tighten the classification first (only the
structured codes → Missing; a code-less 404 → Unknown) or the gate will
wrongly block private images.
Follow-up to #187 / #188 (per @djzager's review). Filing to capture the design
so the new condition doesn't stay inert.
- Dominant language
- Go
- Stars
- 5
- Forks
- 13
- Avg merge
- 3d 7h
- Merged PRs (30d)
- 44
Getting set up
- Ships a Dockerfile or Docker Compose file
- Has a pull request template
- No contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from konveyor/agentic-controller
-
bug stream/controller
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
konveyor/agentic-controller#164 ·
Maintainers usually reply within 1 day
-
documentation good first issue
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
konveyor/agentic-controller#124 · 1 comment ·
Maintainers usually reply within 1 day
-
Difficulty 4/5 3-5 days Newbie friendliness 48/100
konveyor/agentic-controller#323 ·
Maintainers usually reply within 1 day
-
Provider-aware Gateway verification for aws-bedrock / gcp-vertex-ai, so bad credentials fail at verify rather than mid-runPossibly taken @ibolton336 claimed this 4 days ago. Openenhancement stream/controller
konveyor/agentic-controller#304 · 1 assignee ·
Maintainers usually reply within 1 day
-
verify skill: require the whole Verification block to pass on the final tree before committingPossibly taken @ibolton336 claimed this 4 days ago. Openenhancement stream/controller
konveyor/agentic-controller#301 · 1 assignee ·
Maintainers usually reply within 1 day
All issues in konveyor/agentic-controller
Similar issues
-
Query cache: a failed cache page read leaves the set request's read lock held, so the scan hangsOpen
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
turbot/steampipe-plugin-sdk#986 · 1 comment ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
router-for-me/CLIProxyAPI#7307 · 1 comment ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
betterleaks/betterleaks#460 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 79/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
openmcp-project/service-provider-crossplane#330 ·
Maintainers usually reply within 1 day