Summary
The Nebari LLM serving pack registers a card on the Nebari landing page via the landingPage block of its key-manager NebariApp resource (charts/nebari-llm-serving/values.yaml, rendered by templates/key-manager-nebariapp.yaml). Today that card reuses the generic built-in keycloak icon and leaves several recommended defaults (visibility, healthCheck) unset. This issue covers designing and shipping a dedicated LLM-themed icon and filling in the remaining landingPage defaults so the card matches the quality and behavior of other packs (e.g. nebari-chat-pack).
Motivation
- The card currently borrows the
nebari icon, which misrepresents the service
visibility is unset, so the card defaults to public; other packs/examples set authenticated for an authenticated-user UI
healthCheck is unset, so the card's status stays unknown; peer packs configure a probe path so health is reported
displayName: "LLM API Keys" and priority: 100 deserve a review for consistency with sibling packs
- A purpose-built, light/dark-aware icon gives the pack a polished, recognizable presence on the landing page
Acceptance Criteria
Out of Scope
- Adding a second landing-page card for the LLM operator itself (only the key-manager UI has landing-page presence today)
- Changes to the landing-page rendering/icon-resolution logic in the
nebari-landing repo (ServiceIcon.tsx, NebariApp schema) — this issue only sets values the existing schema already supports
pack-metadata.yaml (the pack-dashboard identity), which is separate from the landing-page card
- Per-model
LLMModel configuration and access control
Summary
The Nebari LLM serving pack registers a card on the Nebari landing page via the
landingPageblock of its key-managerNebariAppresource (charts/nebari-llm-serving/values.yaml, rendered bytemplates/key-manager-nebariapp.yaml). Today that card reuses the generic built-inkeycloakicon and leaves several recommended defaults (visibility,healthCheck) unset. This issue covers designing and shipping a dedicated LLM-themed icon and filling in the remaininglandingPagedefaults so the card matches the quality and behavior of other packs (e.g.nebari-chat-pack).Motivation
nebariicon, which misrepresents the servicevisibilityis unset, so the card defaults to public; other packs/examples setauthenticatedfor an authenticated-user UIhealthCheckis unset, so the card's status staysunknown; peer packs configure a probe path so health is reporteddisplayName: "LLM API Keys"andpriority: 100deserve a review for consistency with sibling packsAcceptance Criteria
.svg(light/dark variants if needed) and committed to the pack repo (e.g. undercharts/nebari-llm-serving/assets/or hosted at a stable URL)charts/nebari-llm-serving/values.yamllandingPage.iconreferences the new asset (custom URL) instead of the built-inkeycloakkey;landingPage.iconLight/landingPage.iconDarkset if separate variants existtemplates/key-manager-nebariapp.yamlrenders the newicon/iconLight/iconDarkfields correctlylandingPage.visibilityis set to an explicit, intentional value (e.g.authenticated)landingPage.healthCheckis configured (enabled: true+ a validpath, e.g./healthz) so the card reports real statuslandingPage.category,priority,displayName, anddescriptionreviewed and aligned with sibling packs (nebari-chat-pack)examples/argocd-application.yamlupdated to mirror the newlandingPagedefaultsOut of Scope
nebari-landingrepo (ServiceIcon.tsx,NebariAppschema) — this issue only sets values the existing schema already supportspack-metadata.yaml(the pack-dashboard identity), which is separate from the landing-page cardLLMModelconfiguration and access control