Upgrading¶
Breaking changes and upgrade steps for each OpenDepot release. Check this page before running helm upgrade on an existing installation.
Tip
Helm does not update CRDs during helm upgrade. Always apply the latest CRDs before upgrading:
v0.9.0¶
v0.9.0 adds an opt-in reverse proxy so Dex never needs its own public ingress or hostname. See Proxying Dex Through the Server.
Set server.oidc.dexProxy.enabled: true to have the server reverse-proxy /dex/* requests to the bundled Dex service. This is fully backward compatible — the flag defaults to false, and existing dex.enabled: true deployments with a separately exposed Dex continue to work unchanged.
Upgrade Steps¶
- Apply the updated CRDs:
- Upgrade the chart:
- (Optional) To adopt the recommended proxy mode, set
dex.config.issuerandserver.oidc.issuerUrlto the same external, path-based URL and enableserver.oidc.dexProxy.enabled: true. See Proxying Dex Through the Server for the full walkthrough.
No action is required to keep existing behavior — dexProxy.enabled defaults to false.
v0.8.0¶
v0.8.0 adds automatic README resolution for modules. See Module READMEs and the Registry Explorer README rendering.
New RBAC Permissions¶
The version-controller ServiceAccount now requires configmaps (create, get, list, patch, update, watch) to store resolved READMEs, and the server ServiceAccount now requires configmaps (get, list, watch) to serve them through the browse API. Both rules are added automatically by the Helm chart — no values changes are required. See Kubernetes RBAC.
Upgrade Steps¶
- Apply the updated CRDs:
- Upgrade the chart:
No manual action is required for existing Module and Version resources — the version controller resolves and stores READMEs automatically on each Version's next reconcile, or immediately when forceSync: true is set.
Dependency Updates¶
The UI's vitest dependency was bumped to ^3.2.6, with vite and undici pinned via resolutions, resolving HIGH/CRITICAL npm advisories. This affects the UI's build and test tooling only — no runtime or Helm values changes are required.
v0.6.0¶
v0.6.0 replaces the SQLite download-stats backend with a bundled Valkey instance.
Breaking Changes¶
--stats-db-pathis removed. The server flag no longer exists. Any custom Helm values overrides that referenceserver.stats.*must be removed — the chart will reject unknown values.server.statsvalues block is removed. Removeserver.stats.emptyDir,server.stats.persistence.*, or anyserver.statskey from yourvalues.yamlbefore upgrading.- Stats history is not migrated. Valkey starts with a clean slate — download counts accumulated in the previous SQLite database are not carried over. Historic data can be discarded or archived manually before upgrading.
Upgrade Steps¶
- Apply the updated CRDs:
- Remove any
server.statskeys from yourvalues.yaml. - Upgrade the chart:
Valkey is deployed automatically as part of the chart. Download tracking resumes immediately after the server pod becomes ready. For production clusters, valkey.dataStorage.enabled: true (the default) ensures stats survive pod restarts — no additional configuration is required.
v0.5.0¶
Breaking Changes¶
| Change | Affected field | Action required |
|---|---|---|
Provider.status.sourceScans removed; per-version provider source scans moved to Version.status.sourceScan | ProviderStatus, VersionStatus | Update any automation or scripts that read .status.sourceScans on a Provider resource. Provider source scan results are now stored on each Version resource in status.sourceScan, alongside module IaC scan results. |
Provider.status.resolvedSourceRepository added (read-only, string) | ProviderStatus | No action required. The field is populated automatically by the Version controller after the first scan. |
Upgrade Steps¶
- Apply the updated CRDs:
- Update any scripts or automation reading
Provider.status.sourceScansto readVersion.status.sourceScaninstead. - Upgrade the chart: