Skip to content

Upgrades

FlexFS provides several upgrade paths depending on which components you are upgrading and your tolerance for downtime.

ComponentUpgrade methodDowntime
Servers (meta, proxy, admin)manage.flexfs upgradeBrief restart per service
Mount clientsAuto-update (automatic) or update.flexfs (manual)Seamless FUSE session handoff
CSI driverHelm upgrade or manifest reapplyPod restarts

The manage.flexfs upgrade command performs a complete upgrade cycle: download new binaries, install them, stop services, clean state, and restart services.

Terminal window
sudo manage.flexfs upgrade

This will:

  1. Download the latest binaries for all installed flexFS components from get.flexfs.io
  2. Install them to /usr/sbin/
  3. Stop all flexFS systemd services
  4. Clean runtime state
  5. Start all services
Terminal window
sudo manage.flexfs upgrade --version v1.9.x
Terminal window
sudo manage.flexfs upgrade meta proxy

This downloads and upgrades only the specified binaries while still performing the full stop/clean/start cycle.

Terminal window
sudo manage.flexfs upgrade --arch aarch64

By default, the host architecture is detected automatically.

Add --vacuum to also clean system journal logs during the upgrade:

Terminal window
sudo manage.flexfs upgrade --vacuum

If you prefer more control, use manage.flexfs download to download binaries without installing or restarting:

Terminal window
# Download to /tmp
sudo manage.flexfs download meta proxy mount
# Download and install to /usr/sbin
sudo manage.flexfs download meta proxy mount --install
FlagDefaultDescription
--version(build version)Version branch to download (e.g., v1.9.x).
--arch(host arch)Architecture: amd64 or aarch64.
--installfalseInstall binaries to /usr/sbin/ after downloading.

The manage.flexfs deploy command downloads the latest mount.flexfs binary and places it in the admin server’s deploy directory, making it available for auto-update by mount clients.

Terminal window
sudo manage.flexfs deploy
FlagDefaultDescription
--version(build version)Version branch to deploy.
--channelallDeployment channel: staging, production, or all.
--adminPath(auto)Path to the admin folder.

The deploy directory has two channels:

ChannelDescription
stagingMount clients with --staging flag pull from this channel. Use for testing updates before wide rollout.
productionDefault channel for all mount clients.

Deploy flow:

Terminal window
# Deploy to staging first
sudo manage.flexfs deploy --channel staging
# Test with staging mounts, then promote to production
sudo manage.flexfs deploy --channel production

Or deploy to both at once:

Terminal window
sudo manage.flexfs deploy --channel all

Mount clients automatically check the admin server for new versions and update themselves. When an update is available:

  1. The mount client downloads the new mount.flexfs binary from the admin server’s deploy endpoint.
  2. It performs a FUSE session handoff — the new binary takes over the existing FUSE mount without interrupting running applications.
  3. The old process exits cleanly.
FlagEffect
--noUpdateDisable auto-update entirely.
--noRemountDownload the update but do not perform the FUSE session handoff. The update takes effect on next manual mount.
--stagingPull updates from the staging channel instead of production.

Use update.flexfs to manually update the mount client binary:

Terminal window
sudo update.flexfs

This downloads the latest version and replaces the binary at /sbin/mount.flexfs. Running mounts are not affected until they are remounted.

FlexFS maintains backward compatibility within a major version series. A v1.9.x mount client can connect to v1.9.x servers without issues. When upgrading, update servers first, then mount clients.

When manage.flexfs starts services, it follows the correct dependency order:

  1. Statistics server (stat.flexfs, if installed)
  2. Admin server (admin.flexfs, if installed)
  3. Free server (free.flexfs, if installed)
  4. Proxy server (proxy.flexfs, if installed)
  5. Metadata server (meta.flexfs)

When stopping, the order is reversed.