Conversation
…e to the current architecture in target installation directory
Updated acknowledgement section and configuration paths.
Updated section title from 'Honest strengths and weaknesses' to 'Strengths and weaknesses'.
Updated section header from 'Honest overall characterisation' to 'Conclusion'.
Introduces a pluggable lease.Backend interface so the orchestrator can run against either a cvmfs_gateway HTTP lease API (existing behaviour) or a local cvmfs_server subprocess (new, for single-node deployments without a gateway). lease package: - Add Backend interface (Acquire, Heartbeat, Commit, Probe, NeedsPipeline) - Client implements Backend; gateway-mode code path unchanged - Add LocalBackend: serialises concurrent requests per repo, runs cvmfs_server transaction/publish/abort as subprocesses under the cvmfs-prepub service account - acquireLease: validate path (no empty, leading/trailing/adjacent slashes), percent-encode each segment individually to preserve slash separators orchestrator: - Lease field changed from *lease.Client to lease.Backend - Add CVMFSMount field (used by local mode to locate the repo mount point) - Run() bifurcates on Lease.NeedsPipeline(): gateway path unchanged; local path skips CAS pipeline and calls Lease.Commit() directly - Distribute and Pipeline config marked optional (nil/zero in local mode) server: - Add stagingRoot field and constructor parameter; when set, enables JSON tar_path submission mode and restricts accepted paths to that directory tree (SHA-256 content check prevents path-traversal) - New submitJob handles both multipart/form-data and application/json Content-Types on the same endpoint probe: - Run() accepts lease.Backend instead of *lease.Client - CAS probe skipped when backend.NeedsPipeline() == false - Gateway probe delegated to backend.Probe() install.sh (replaces uninstall.sh): - Unified install/uninstall script with positional ACTION argument - install: prereq check, optional legacy spool daemon removal (--purge-legacy), account + dirs + binaries + config templates + systemd units + health check - uninstall: stop/disable services, remove files/dirs, optionally preserve spool (--keep-spool), CAS (--keep-cas), or user (--keep-user) - --dry-run prints every action without making changes - Fix --help: replace fragile sed range (broke on UTF-8 em-dash in line 2) with awk rule that stops at the first non-comment line uninstall.sh: forwarding stub → deprecated, delegates to install.sh uninstall INSTALL.md: - §5.1 Local Mode: architecture diagram, requirements, service account setup, config snippet, and smoke-test commands - §10 renamed "Installing and Uninstalling": install quick-start, config file table, legacy detection notes, updated uninstall commands
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This is a continuation of work on new features covering the remaining open issues.