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.
How it works
Section titled “How it works”- 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.
- Download — When a newer version is available, the client downloads the new binary to a temporary location and verifies it is executable.
- FUSE session yield — The running mount client yields the active FUSE file descriptor and serialized session state to the new binary.
- Handoff — The new binary adopts the yielded FUSE session, inheriting the mount point, file descriptor, and all in-flight state. The old process exits.
- Seamless — Applications reading and writing to the mount point experience no interruption. The mount never disappears from the mount table.
Update channels
Section titled “Update channels”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
Controlling updates
Section titled “Controlling updates”| Flag | Effect |
|---|---|
--noUpdate | Disable automatic updates entirely. The mount client will not check for or install updates. Implies --noRemount. |
--noRemount | Download 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. |
--staging | Check the staging channel instead of production. |
Foreground mode
Section titled “Foreground mode”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.
Manual updates
Section titled “Manual updates”For environments where automatic updates are disabled, use update.flexfs to manually check for and install updates:
sudo update.flexfsUse -f to force an update even if the current version is up to date, and -m to also update the mount binary path:
sudo update.flexfs -f -mThe manage.flexfs tool also supports downloading and deploying updates across all flexFS services on a host:
sudo manage.flexfs download mount --version v1.9.xsudo manage.flexfs deployMount lock and remount
Section titled “Mount lock and remount”During the session handoff:
- The old process releases the mount lock file.
- The new process acquires the mount lock.
- The new process adopts the FUSE file descriptor and session state.
- The old process exits.
This sequence ensures that there is never a window where two daemons are simultaneously serving the same mount point.