add missing user and group to restic instances
This commit is contained in:
parent
0fa4a42be7
commit
a48b618923
4 changed files with 36 additions and 4 deletions
modules
|
@ -1,4 +1,4 @@
|
|||
{ config, options, pkgs, lib, ... }:
|
||||
{ config, pkgs, lib, ... }:
|
||||
|
||||
let
|
||||
cfg = config.shb.monitoring;
|
||||
|
|
|
@ -13,6 +13,28 @@ let
|
|||
type = lib.types.path;
|
||||
};
|
||||
|
||||
user = lib.mkOption {
|
||||
description = ''
|
||||
Unix user doing the backups.
|
||||
|
||||
For Restic, the same user must be used for all instances.
|
||||
'';
|
||||
type = lib.types.str;
|
||||
readOnly = true;
|
||||
default = cfg.user;
|
||||
};
|
||||
|
||||
group = lib.mkOption {
|
||||
description = ''
|
||||
Unix group doing the backups.
|
||||
|
||||
For Restic, the same group must be used for all instances.
|
||||
'';
|
||||
type = lib.types.str;
|
||||
readOnly = true;
|
||||
default = cfg.group;
|
||||
};
|
||||
|
||||
sourceDirectories = lib.mkOption {
|
||||
description = "Source directories.";
|
||||
type = lib.types.nonEmptyListOf lib.types.str;
|
||||
|
@ -154,6 +176,17 @@ in
|
|||
enabledInstances = lib.attrsets.filterAttrs (k: i: i.enable) cfg.instances;
|
||||
in lib.mkMerge [
|
||||
{
|
||||
assertions = [
|
||||
{
|
||||
assertion = lib.all (x: x.user == cfg.user) (lib.mapAttrsToList (n: v: v)cfg.instances);
|
||||
message = "All Restic instances must have the same user as 'shb.restic.user'.";
|
||||
}
|
||||
{
|
||||
assertion = lib.all (x: x.group == cfg.group) (lib.mapAttrsToList (n: v: v) cfg.instances);
|
||||
message = "All Restic instances must have the same group as 'shb.restic.group'.";
|
||||
}
|
||||
];
|
||||
|
||||
users.users = {
|
||||
${cfg.user} = {
|
||||
name = cfg.user;
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{ config, options, pkgs, lib, ... }:
|
||||
{ config, pkgs, lib, ... }:
|
||||
|
||||
let
|
||||
cfg = config.shb.arr;
|
||||
|
|
|
@ -1,8 +1,7 @@
|
|||
{ config, options, pkgs, lib, ... }:
|
||||
{ config, pkgs, lib, ... }:
|
||||
|
||||
let
|
||||
cfg = config.shb.nextcloud;
|
||||
opt = options.shb.nextcloud;
|
||||
|
||||
fqdn = "${cfg.subdomain}.${cfg.domain}";
|
||||
fqdnWithPort = if isNull cfg.port then fqdn else "${fqdn}:${toString cfg.port}";
|
||||
|
|
Loading…
Add table
Reference in a new issue