Upgrading¶
zpodcore releases are tagged vX.Y.Z; What's new summarises each one, and the changelog has every change, with a Breaking section when a release has one. Read it before you upgrade.
Upgrade the stack¶
On the appliance, from the zpodcore directory:
zpod-update refuses to run on a working tree with uncommitted changes. It fetches the tag, rebuilds the images, restarts the stack, waits for the API, then redeploys the flows. It prints which versions it crosses.
Then update zcli on every workstation to the same major.minor, since the API refuses any other (see Set up the zPod CLI (zcli)):
From 0.7.x to 0.8 or later¶
0.8.0 was the first release after two years. These steps are not automatic:
- Back up the database. The migration drops the
zpod_featurestable (features now live as JSON on the zPod), and the Postgres image moved from bullseye to trixie, so every database is reindexed on first start. Neither is reversible. - Host toolchain: uv replaces pyenv and Poetry.
- Prefect 2 → 3: stop the stack, remove the Prefect volume, start it again, then run
just zpodengine-deploy-all. Flow-run history is lost. - zbox → zcore: run
just zcore-transition; see zcore migration. - Broadcom downloads: set the Broadcom download token. Library entries still using the removed
customerconnectoravipulseengines end inFAILED_UNSUPPORTED_ENGINE. - Optional: set
compute.vdson endpoints whose NSX transport zone spans several VDSs, and review the new feature flags.
The .env file does not change; new behaviour comes from settings seeded when the API starts.
From 0.8 to 0.9¶
- zcore 13.7 is the new default core. Profiles still on
zcore-13.5keep working but miss the storage features and network masquerade; see zcore migration. - Datastore floor: deploys and component adds now stop when the endpoint's datastore has less free space than
zpodfactory_datastore_min_free_pct(default 15%).