Migrating to OpenDepot¶
Tip
Migration is one of several Depot use cases. The Depot also supports ongoing upstream provider mirroring and public module tracking with automatic Trivy scanning — see Pull-Based Workflow: Using the Depot for the full picture. For a one-time migration, follow the steps below: once everything is synced, delete the Depot and switch to the GitOps workflow. Deleting a Depot does not delete the Modules or Providers it created, so your registry stays fully intact.
Migrating modules — Use the Depot to bulk-import existing modules into OpenDepot:
- Create a
Depotwith broad version constraints (e.g.,">= 0.0.0") to pull in the full release history - Wait for all versions to sync (check
ModuleandVersionstatus resources) - Update your OpenTofu/Terraform configurations to source modules from OpenDepot
- Delete the Depot — all
ModuleandVersionresources remain untouched - Going forward, publish new versions via the GitOps workflow
Migrating providers — Use spec.providerConfigs in your Depot to mirror providers from the HashiCorp Releases API into your own storage backend:
- Create a
DepotwithproviderConfigslisting each provider, your target OS/architecture matrix, and a version constraint - Wait for all
ProviderandVersionresources to sync - Update your OpenTofu/Terraform configurations to source providers from OpenDepot (see Consuming Providers)
- Delete the Depot — all
ProviderandVersionresources remain untouched
This pattern lets you adopt OpenDepot incrementally without disrupting existing workflows. The Depot bridges the gap between the public registries and a fully self-hosted solution.
Upgrading to 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.