Add a integration where the sudo password can be specified in a sops encrypted file #324
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.
As I use sudo on my machines (to elevate the privileges from the "deploy" user) and don't want to manually type the sudo password every time I run a deployment, I implemented a solution where the password is retrieved from a sops encrypted file.
This is especially nice since I use sops-nix to set the password of the user and now can reuse this fact to run the deployment.
In particular, we need to specify
sudoFile
as well assudoSecret
for a node.I introduced a NixOS test for this use case as well as provided an example and explained on how
sudoSecrets
works.Currently, the only drawback I see with this approach is that
SOPS_AGE_KEY_FILE
(sops will look for age private keys under$XDG_CONFIG_HOME/sops/age/keys.txt
by default) will not be respected by this implementation and therefore forcing users to put the keys under the aforementioned directory (I have not tested that it won't work, but I assume that).P.S. The flake under
example/sops
currently points to my fork and should be changed when this gets merged :)