Allow the hosting credential to come from a named config path #164
Labels
No labels
blocked
bug
decision
duplicate
enhancement
help wanted
invalid
landed?
question
ready-to-merge
stale
wontfix
bug
duplicate
enhancement
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
allod/tools#164
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Let a deployment supply the hosting credential declaratively, so the one secret
allod site deployneeds stops being imperative state that a rebuilt machine loses.Primary goals:
allod site configwriting rclone's default file stays the answer for anyone who does not want a secrets pipeline.Current state and specifics
rcloneConfigPath(cmd/allod/site_config.go:198-218) asksrclone config file, falling back to$XDG_CONFIG_HOMEthen$HOME/.config/rclone/rclone.conf, and writes at mode 0600 (cmd/allod/site_config.go:41). Deploy shells out to rclone with no--config, so both ends use whatever rclone resolves.That makes the credential ordinary state in a home directory. It is the only thing in the deploy path that is not reproducible from source: a machine rebuilt from its configuration comes back without it, and the absence is discovered at the next publish rather than at rebuild time. rclone's
obscureis not encryption — it defeats shoulder-surfing and nothing else — so the file is plaintext-equivalent, protected by its mode.The mechanism this unblocks is age-encrypted delivery: the deployment keeps the ciphertext in its secrets repository, encrypted to the host, and activation writes the plaintext to a runtime path. That needs only one thing from this repository — the ability to name the config file — and the rest is the deployment's own composition, which is why this issue stops at the flag and the contract.
Reading a config from a runtime path implies the file may be root-owned or on a tmpfs, so the resolution order and the failure message when the file is absent both matter more than they do today.
Scope
In: naming the config location, the precedence between an explicit value and rclone's own resolution, and the errors when the named file is missing or unreadable.
Out: any particular secrets tool, and the deployment-side composition that produces the file — those live in the consuming deployment. The credential's lifecycle commands are
allod/tools#163; the deploy preflight isallod/tools#162.