feat: vault actions should support mount declarations for credentials like SSH keys #528
Labels
No labels
action
backlog
blocked
bug-report
cannot-reproduce
in-progress
in-triage
needs-triage
prediction/actioned
prediction/dismissed
prediction/unreviewed
priority
rejected
reproduced
tech-debt
underspecified
vision
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: disinto-admin/disinto#528
Loading…
Add table
Add a link
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?
Description
The vault action TOML supports
secrets = ["GITHUB_TOKEN"]for env-var secrets injected via-e. But some credentials are files (SSH keys, GPG keys, kubeconfig) that need to be mounted as volumes.The release formula needs SSH keys to push tags to Codeberg/GitHub mirrors. Currently the mirrors use
git@remotes with SSH auth. There's no way to declare this in the vault action, so the runner can't push to mirrors.Proposal
Add a
mountsfield to the vault action TOML:The dispatcher maps well-known mount aliases to volume flags:
ssh-v ${HOME}/.ssh:/home/agent/.ssh:rogpg-v ${HOME}/.gnupg:/home/agent/.gnupg:rosops-v ${HOME}/.config/sops/age:/home/agent/.config/sops/age:roThis keeps the vault approval gate intact — the human reviewing the PR sees exactly which file-based credentials the runner gets. The dispatcher builds the
-vflags the same way it builds-eflags for env secrets.lib/release.shshould then generate vault actions withmounts = ["ssh"]instead ofsecrets = ["GITHUB_TOKEN", "CODEBERG_TOKEN"].Files involved
docker/edge/dispatcher.sh— add mount handling inlaunch_runner()lib/release.sh— change secrets to mountsvault/SCHEMA.md— document the mounts fieldvault/vault-env.sh— validate mounts field