Skip to content

helm lint cannot pass on any app chart: icon is a dashboard-relative path #3702

Open

Description

helm lint packages/apps/<any> exits non-zero on main:

[ERROR] Chart.yaml: invalid icon URL '/logos/qdrant.svg'
Error: 1 chart(s) linted, 1 chart(s) failed

Helm wants an absolute URL in icon. All 23 app charts use a path the dashboard resolves instead, and no chart anywhere in packages/ carries an http(s) icon, so this is a convention rather than a typo. The consequence is that helm lint is unusable over packages/apps/ as the tree stands.

Nothing runs it today: helm lint appears nowhere in .github/, Makefile or hack/. That makes the failure latent rather than breaking, and it also means a lint sweep cannot be added to CI without first choosing between absolute URLs and an accepted exception. Worth settling before someone adds the sweep and reads the red as their own change.

Two smaller things sit next to it. packages/apps/vpc/Chart.yaml uses logos/vpc.svg with no leading slash while the other 22 use /logos/..., which resolves against whatever page is open rather than the dashboard root. And helm template on an app chart dies with 'default' is not a valid tenant identifier unless the release namespace is a tenant namespace, so a template sweep needs a tenant namespace to run at all.

Activity

  1. lexfrei commented on Sep 22, 2026

    @lexfrei
    ContributorAuthor

    The system charts fail too, for an unrelated reason, so a lint sweep would have to settle two conventions rather than one.

    [ERROR] packages/system/kamaji: chart metadata is missing these dependencies: kamaji-crds,kamaji
    

    Every package that vendors a subchart under charts/ hits this, because make update drops the upstream chart into place and nothing adds a matching entry to Chart.yaml. That is 53 packages under packages/system/ today, all of them carrying at least one vendored subchart and none of them declaring dependencies.

    Declaring them would be the wrong fix on its own: the entries carry a version and a repository, and the vendored copy is pinned by whatever the package Makefile fetched, so the metadata would be a second copy of a version that already lives in the recipe. Whichever way it is settled, it is a decision about how vendoring is recorded rather than a typo, same as the icon.

    The practical claim stands wider than the title: helm lint is unusable over packages/ as the tree stands, apps on the icon and system on the dependency metadata.

  2. added
    kind/cleanupCategorizes issue or PR as related to cleanup of code, process, or technical debt
    area/buildIssues or PRs related to image build infrastructure, multi-arch support
    triage/acceptedIndicates an issue is ready to be actively worked on
    priority/backlogGeneral backlog priority. Lower than priority/important-longterm
    and removed
    triage/needs-triageIndicates an issue needs triage by a maintainer
    on Sep 23, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/buildIssues or PRs related to image build infrastructure, multi-arch supportkind/cleanupCategorizes issue or PR as related to cleanup of code, process, or technical debtpriority/backlogGeneral backlog priority. Lower than priority/important-longtermtriage/acceptedIndicates an issue is ready to be actively worked on

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions