Merge pull request 'Add clan.borgbackup.exclude.' (#1790) from inventory-fixes into main

This commit is contained in:
clan-bot
2024-07-24 08:40:54 +00:00
4 changed files with 20 additions and 5 deletions

View File

@@ -106,6 +106,16 @@ in
''; '';
}; };
options.clan.borgbackup.exclude = lib.mkOption {
type = lib.types.listOf lib.types.str;
example = [ "*.pyc" ];
default = [ ];
description = ''
Directories/Files to exclude from the backup.
Use * as a wildcard.
'';
};
imports = [ imports = [
(lib.mkRemovedOptionModule [ (lib.mkRemovedOptionModule [
"clan" "clan"
@@ -129,7 +139,7 @@ in
paths = lib.unique ( paths = lib.unique (
lib.flatten (map (state: state.folders) (lib.attrValues config.clan.core.state)) lib.flatten (map (state: state.folders) (lib.attrValues config.clan.core.state))
); );
exclude = [ "*.pyc" ]; exclude = cfg.exclude;
repo = dest.repo; repo = dest.repo;
environment.BORG_RSH = dest.rsh; environment.BORG_RSH = dest.rsh;
compression = "auto,zstd"; compression = "auto,zstd";

View File

@@ -9,9 +9,9 @@
users.users.root.hashedPasswordFile = users.users.root.hashedPasswordFile =
config.clan.core.facts.services.root-password.secret.password-hash.path; config.clan.core.facts.services.root-password.secret.password-hash.path;
sops.secrets."${config.clan.core.machineName}-password-hash".neededForUsers = lib.mkIf ( sops.secrets = lib.mkIf (config.clan.core.facts.secretStore == "sops") {
config.clan.core.facts.secretStore == "sops" "${config.clan.core.machineName}-password-hash".neededForUsers = true;
) true; };
clan.core.facts.services.root-password = { clan.core.facts.services.root-password = {
secret.password = { }; secret.password = { };

View File

@@ -23,7 +23,11 @@
users.mutableUsers = false; users.mutableUsers = false;
users.users.${config.clan.user-password.user}.hashedPasswordFile = users.users.${config.clan.user-password.user}.hashedPasswordFile =
config.clan.core.facts.services.user-password.secret.user-password-hash.path; config.clan.core.facts.services.user-password.secret.user-password-hash.path;
sops.secrets."${config.clan.core.machineName}-user-password-hash".neededForUsers = true;
sops.secrets = lib.mkIf (config.clan.core.facts.secretStore == "sops") {
"${config.clan.core.machineName}-user-password-hash".neededForUsers = true;
};
clan.core.facts.services.user-password = { clan.core.facts.services.user-password = {
secret.user-password = { }; secret.user-password = { };
secret.user-password-hash = { }; secret.user-password-hash = { };

View File

@@ -39,6 +39,7 @@ class BorgbackupConfigDestination:
@dataclass @dataclass
class BorgbackupConfig: class BorgbackupConfig:
destinations: dict[str, BorgbackupConfigDestination] = field(default_factory = dict) destinations: dict[str, BorgbackupConfigDestination] = field(default_factory = dict)
exclude: list[str] = field(default_factory = list)
@dataclass @dataclass