Skip to content

helm: bundled swiss 0.6.3 rejects catalog schema v2 and writable catalogs #90

Closed

Description

@imneov

What happened

The chart bundles the swiss subchart, and helm/console/Chart.yaml pins it at 0.6.3. The 0.2.x Model Serving pages already offer catalog schema v2 and writable-catalog editing (#68, #73), but the swissd those pages talk to is 0.6.3, which predates both:

  • Catalog v2: 0.6.3 reads only index.json (v1). There is no index-v2.json reader, so a profile catalog with schemaVersion: v2 cannot be used.
  • Writable catalogs: 0.6.3 has no catalog write API and its profile parser (KnownFields(true), internal/site/profile.go) has no schemaVersion or writable field on a catalog, so saving the Site Profile with either field fails with an unknown-field decode error. The Model Library's New model / Edit model / Add variant actions have no backend.

Expected: the chart that ships the 0.2.x pages installs a swissd those pages require.

What you expected instead

With swiss.enabled=true (bundled), adding schemaVersion: v2 or ticking a catalog Writable in the Site profile editor saves, catalog v2 models are listed, and a writable catalog can be edited from the Model Library.

How to reproduce

  1. helm install console oci://ghcr.io/modelsphere/charts/console --set swiss.enabled=true --set 'swiss.rbac.namespaces={models}' (0.2.1: the dependency resolves to swiss 0.6.3).
  2. Log in as admin → Model Serving → Site Profile.
  3. Add a catalog with schemaVersion: v2 (or tick Writable on one) and save.
  4. swissd returns a profile decode error (field schemaVersion not found in type site.CatalogRepo), and the Model Library lists only v1 catalog models.

Versions

  • Console: 0.2.1 (chart and appVersion), also current main
  • Installed with: helm install/helm upgrade, swiss.enabled=true, otherwise defaults
  • Swiss: 0.6.3, the bundled subchart
  • Kubernetes: any supported cluster

Evidence

  • helm/console/Chart.yaml / helm/console/Chart.lock: swiss dependency 0.6.3.
  • swiss 0.6.3 internal/catalog/ has no index_v2.go; internal/site/profile.go decodes with KnownFields(true) and CatalogRepo has only name, url, default.
  • swiss 0.7.0 adds both (dual-read v1/v2, schemaVersion/writable, and the swissd write proxy).

Anything else

  • Workaround: run swiss 0.7.0 externally and use externalSwiss instead of the bundled subchart.
  • Fix: bump the subchart to 0.7.0. 0.7.0 also vendors catalog-server in the swiss chart, which gives an installation whose own catalog is a static index a writable v2 catalog to add models to (the route that supersedes feat(web): create Console-managed model templates from Model Library #86).
  • Follow-up work is a chart PR; no Console Go or web changes are expected.

Activity

  1. added
    kind/bugBehaviour differs from the docs or the design
    area/swissThe mounted model deployment pages
    area/helmHelm chart and install.sh
    on Oct 22, 2026
  2. imneov commented on Oct 22, 2026

    @imneov
    ContributorAuthor

    Implemented in #91: subchart bump to 0.7.0, catalog-server (bundled) documented in the chart README, and the design doc records that Console owns no catalog storage.

  3. added a commit that references this issue on Oct 26, 2026
    24f58c3
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

area/helmHelm chart and install.sharea/swissThe mounted model deployment pageskind/bugBehaviour differs from the docs or the design

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions