svc-storage-nfs-server gains a backend flavor selected by services.nfs-server.flavor (default "{{ 'ganesha' if RUNTIME in ['dev','act'] else 'kernel' }}"). The ganesha flavor installs nfs-ganesha + FSAL_VFS and renders /etc/ganesha/ganesha.conf (NFSv4, Pseudo == Path so clients mount the real paths unchanged, Root_Squash on the export base and No_Root_Squash on the state subdir), reloaded via systemctl restart. It runs in the dev/act DinD swarm-test, where the host kernel nfsd is not network-namespaced and a privileged node driving exportfs would wedge it into a D-state. The kernel flavor keeps nfs-kernel-server + exportfs -ra for production and every non-dev/act runtime. 01_core dispatches on the flavor, 03_prepare holds the shared export preparation, flavor/{kernel,ganesha}/main.yml hold the per-backend install/render/service steps, and handlers gains the ganesha restart.
docs/agents/action/iteration: role.md renamed to compose.md (Compose Loop); new swarm.md for the swarm deploy loop split out of workflow.md; workflow.md trimmed to GitHub Actions workflow iteration; all cross-references updated; the duplicated README gotcha removed; the NFS gotcha rewritten to the ganesha design.
Also drops a retired-flag history comment in group_vars/all/01_modes.yml and a redundant comment in the init selection script, and allows WebFetch(repology.org) used during ganesha packaging research.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Changelog Archive 📚
Per-release archive files for CHANGELOG.md. The active changelog at the repository root keeps the most recent releases inline; once an entry rolls past the configured retention window, it lives here as its own file.
Audience 👥
Contributors who need the full version history past the active changelog window, and Sphinx readers following the navigation tree.
Filename Schema 📁
Every archive file is named <padded-semver>-<release-date>.md, where each numeric component of the semver is zero-padded to three digits and the date is the YYYY-MM-DD value parsed from the original entry's header.
Padded names sort lexicographically in the same order as the underlying versions, so a directory listing is already in chronological order.
Maintenance 🛠️
Archive files are produced and the index in CHANGELOG.md is rebuilt by the changelog archive CLI. Do NOT edit archive files by hand: the source of truth for new entries is CHANGELOG.md, and the CLI moves an entry here exactly once when it leaves the active window.