nebari-dev / nebari-dev/llm-serving-pack
PassthroughModel reports Ready even when the upstream credential Secret is missing/misnamed
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 3
- Forks
- 3
- Avg merge
- 16h 31m
- Merged PRs (30d)
- 11
Description
The webhook validates that spec.provider.credentialSecretName is non-empty (passthroughmodel_webhook.go:201) but nothing verifies the referenced Secret exists or carries the expected apiKey key. If it is missing or misnamed, all gateway resources still apply, the CR goes Ready, and every upstream request 401s with no signal in CR status. This is new surface (LLMModels have no upstream credential).
A webhook hard-fail would be wrong - the Secret may legitimately be created after the CR. Instead, add a status condition (e.g. CredentialResolved) that the controller sets based on the Secret's presence and apiKey key, turning a silent runtime 401 into a visible status signal.
Surfaced in review of #96.
Acceptance
- Controller reads the credential Secret during reconcile
- A status condition reflects present-and-valid vs missing/misnamed
- Condition does not block
Readyon transient absence but is visible - Test coverage for both states
Contributor 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.
Research direction
Start with the PassthroughModel controller reconcile path and the validation reference in passthroughmodel_webhook.go:201. Trace how status conditions are currently set, then add coverage for a present Secret with apiKey and a missing or misnamed Secret; done means the credential condition is visible while Ready remains unblocked.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go, kubernetes
- Domain
- backend, infrastructure
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Active
- Clarity
- Clearly specified
- Newbie friendliness
- 75/100