Skip to content

Automatic Updates

The mount client includes a built-in automatic update mechanism that downloads new versions from the admin server and performs a seamless FUSE session handoff, allowing updates without unmounting the filesystem or interrupting running applications.

  1. Periodic check — The daemon polls the admin server’s deploy endpoint at a regular interval (default: every 360 seconds) to check for a newer version.
  2. Download — When a newer version is available, the client downloads the new binary to a temporary location and verifies it is executable.
  3. FUSE session yield — The running mount client yields the active FUSE file descriptor and serialized session state to the new binary.
  4. Handoff — The new binary adopts the yielded FUSE session, inheriting the mount point, file descriptor, and all in-flight state. The old process exits.
  5. Seamless — Applications reading and writing to the mount point experience no interruption. The mount never disappears from the mount table.

FlexFS supports two update channels:

  • Production (default) — Stable releases deployed to the admin server’s production deploy folder.
  • Staging — Pre-release builds deployed to the staging folder. Enabled with --staging.

The deploy endpoint is derived from the admin server address:

  • Production: https://<adminAddr>/deploy/production
  • Staging: https://<adminAddr>/deploy/staging
FlagEffect
--noUpdateDisable automatic updates entirely. The mount client will not check for or install updates. Implies --noRemount.
--noRemountDownload and install the update, but do not perform the FUSE session handoff. The mount will stop after the update is downloaded. Automatically implied by --foreground.
--stagingCheck the staging channel instead of production.

When running in foreground mode (--foreground), --noRemount is automatically implied. In this configuration, the mount client downloads the new binary but does not attempt the FUSE session handoff. Mounts running under systemd (without --foreground) are not affected — they perform the normal session handoff.

For environments where automatic updates are disabled, use update.flexfs to manually check for and install updates:

Terminal window
sudo update.flexfs

Use -f to force an update even if the current version is up to date, and -m to also update the mount binary path:

Terminal window
sudo update.flexfs -f -m

The manage.flexfs tool also supports downloading and deploying updates across all flexFS services on a host:

Terminal window
sudo manage.flexfs download mount --version v1.9.x
sudo manage.flexfs deploy

During the session handoff:

  1. The old process releases the mount lock file.
  2. The new process acquires the mount lock.
  3. The new process adopts the FUSE file descriptor and session state.
  4. The old process exits.

This sequence ensures that there is never a window where two daemons are simultaneously serving the same mount point.