44 lines
994 B
Nix
44 lines
994 B
Nix
{
|
|
inputs,
|
|
lib,
|
|
config,
|
|
...
|
|
}:
|
|
|
|
with lib;
|
|
let
|
|
cfg = config.modules.secrets;
|
|
secrets = inputs.secrets;
|
|
in
|
|
{
|
|
options.modules.secrets = {
|
|
enable = mkEnableOption "secrets";
|
|
defaultFile = mkOption {
|
|
type = types.str;
|
|
default = "${secrets}/secrets/common.enc.yaml";
|
|
description = ''
|
|
The default file to use for SOPS.
|
|
'';
|
|
};
|
|
secrets = mkOption {
|
|
type = types.attrs;
|
|
default = { };
|
|
description = ''
|
|
All secrets that should be made available.
|
|
'';
|
|
};
|
|
};
|
|
|
|
config = mkIf cfg.enable {
|
|
# Set up SOPS
|
|
# TODO: Fix the key not being present in .config/sops before sops-nix runs
|
|
sops.defaultSopsFile = cfg.defaultFile;
|
|
sops.age.sshKeyPaths = [
|
|
"${config.home.homeDirectory}/.config/sops/sops_ed25519_key"
|
|
# "/persist/home/${config.home.username}/.config/sops/sops_ed25519_key"
|
|
];
|
|
sops.secrets = cfg.secrets;
|
|
modules.impermanence.directories = [ ".config/sops" ];
|
|
};
|
|
}
|