modules.services.mariadb: allow mount from configurable location

This commit is contained in:
2025-09-06 08:26:07 +08:00
parent c07d104f44
commit 5054b557bf
4 changed files with 10 additions and 3 deletions

View File

@@ -113,6 +113,7 @@ inputs:
kvm.aarch64 = true;
nfs."/" = [ "192.168.84.0/24" ];
peerBanHelper = {};
mariadb.mountFrom = "nodatacow";
};
bugs = [ "xmunet" "backlight" "amdpstate" "iwlwifi" ];
packages = { mathematica = {}; vasp = {}; };

View File

@@ -59,6 +59,7 @@ inputs:
{ name = "n1"; mpiThreads = 8; openmpThreads = 4; }
];
};
mariadb.mountFrom = "nodatacow";
};
packages = { vasp = {}; lumerical = {}; };
user.users = [ "chn" "xll" "zem" "yjq" "gb" "wp" "hjp" "wm" "GROUPIII-1" "GROUPIII-2" "GROUPIII-3" "zgq" ];

View File

@@ -74,6 +74,7 @@ inputs:
];
};
};
mariadb.mountFrom = "nodatacow";
};
packages = { vasp = {}; desktop = {}; };
user.users =

View File

@@ -13,6 +13,7 @@ inputs:
};}));
default = {};
};
mountFrom = mkOption { type = types.nullOr types.nonEmptyStr; default = null; };
};
config = let inherit (inputs.config.nixos.services) mariadb; in inputs.lib.mkIf mariadb.enable
{
@@ -30,7 +31,7 @@ inputs:
};
mysqlBackup =
{
enable = true;
enable = mariadb.mountFrom == "nodatacow";
singleTransaction = true;
databases = builtins.map (db: db.value.database) (inputs.localLib.attrsToList mariadb.instances);
};
@@ -49,7 +50,10 @@ inputs:
nixos.system.sops.secrets = builtins.listToAttrs (builtins.map
(db: { name = "mariadb/${db.value.user}"; value.owner = inputs.config.users.users.mysql.name; })
(builtins.filter (db: db.value.passwordFile == null) (inputs.localLib.attrsToList mariadb.instances)));
environment.persistence."/nix/nodatacow".directories =
[{ directory = "/var/lib/mysql"; user = "mysql"; group = "mysql"; mode = "0750"; }];
environment.persistence = inputs.lib.mkIf (mariadb.mountFrom != null)
{
"/nix/${mariadb.mountFrom}".directories =
[{ directory = "/var/lib/mysql"; user = "mysql"; group = "mysql"; mode = "0750"; }];
};
};
}