aboutsummaryrefslogtreecommitdiff
path: root/infra/libkookie/nixpkgs/nixos/modules/tasks/filesystems
diff options
context:
space:
mode:
Diffstat (limited to 'infra/libkookie/nixpkgs/nixos/modules/tasks/filesystems')
-rw-r--r--infra/libkookie/nixpkgs/nixos/modules/tasks/filesystems/nfs.nix48
-rw-r--r--infra/libkookie/nixpkgs/nixos/modules/tasks/filesystems/unionfs-fuse.nix6
-rw-r--r--infra/libkookie/nixpkgs/nixos/modules/tasks/filesystems/zfs.nix9
3 files changed, 41 insertions, 22 deletions
diff --git a/infra/libkookie/nixpkgs/nixos/modules/tasks/filesystems/nfs.nix b/infra/libkookie/nixpkgs/nixos/modules/tasks/filesystems/nfs.nix
index ddcc0ed8f5a4..fd35c35d32ad 100644
--- a/infra/libkookie/nixpkgs/nixos/modules/tasks/filesystems/nfs.nix
+++ b/infra/libkookie/nixpkgs/nixos/modules/tasks/filesystems/nfs.nix
@@ -10,20 +10,9 @@ let
rpcMountpoint = "${nfsStateDir}/rpc_pipefs";
- idmapdConfFile = pkgs.writeText "idmapd.conf" ''
- [General]
- Pipefs-Directory = ${rpcMountpoint}
- ${optionalString (config.networking.domain != null)
- "Domain = ${config.networking.domain}"}
-
- [Mapping]
- Nobody-User = nobody
- Nobody-Group = nogroup
-
- [Translation]
- Method = nsswitch
- '';
+ format = pkgs.formats.ini {};
+ idmapdConfFile = format.generate "idmapd.conf" cfg.idmapd.settings;
nfsConfFile = pkgs.writeText "nfs.conf" cfg.extraConfig;
requestKeyConfFile = pkgs.writeText "request-key.conf" ''
create id_resolver * * ${pkgs.nfs-utils}/bin/nfsidmap -t 600 %k %d
@@ -38,6 +27,25 @@ in
options = {
services.nfs = {
+ idmapd.settings = mkOption {
+ type = format.type;
+ default = {};
+ description = ''
+ libnfsidmap configuration. Refer to
+ <link xlink:href="https://linux.die.net/man/5/idmapd.conf"/>
+ for details.
+ '';
+ example = literalExample ''
+ {
+ Translation = {
+ GSS-Methods = "static,nsswitch";
+ };
+ Static = {
+ "root/hostname.domain.com@REALM.COM" = "root";
+ };
+ }
+ '';
+ };
extraConfig = mkOption {
type = types.lines;
default = "";
@@ -54,6 +62,20 @@ in
services.rpcbind.enable = true;
+ services.nfs.idmapd.settings = {
+ General = mkMerge [
+ { Pipefs-Directory = rpcMountpoint; }
+ (mkIf (config.networking.domain != null) { Domain = config.networking.domain; })
+ ];
+ Mapping = {
+ Nobody-User = "nobody";
+ Nobody-Group = "nogroup";
+ };
+ Translation = {
+ Method = "nsswitch";
+ };
+ };
+
system.fsPackages = [ pkgs.nfs-utils ];
boot.initrd.kernelModules = mkIf inInitrd [ "nfs" ];
diff --git a/infra/libkookie/nixpkgs/nixos/modules/tasks/filesystems/unionfs-fuse.nix b/infra/libkookie/nixpkgs/nixos/modules/tasks/filesystems/unionfs-fuse.nix
index 1dcc4c87e3ce..f54f3559c341 100644
--- a/infra/libkookie/nixpkgs/nixos/modules/tasks/filesystems/unionfs-fuse.nix
+++ b/infra/libkookie/nixpkgs/nixos/modules/tasks/filesystems/unionfs-fuse.nix
@@ -18,9 +18,9 @@
boot.initrd.postDeviceCommands = ''
# Hacky!!! fuse hard-codes the path to mount
- mkdir -p /nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-${pkgs.utillinux.name}-bin/bin
- ln -s $(which mount) /nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-${pkgs.utillinux.name}-bin/bin
- ln -s $(which umount) /nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-${pkgs.utillinux.name}-bin/bin
+ mkdir -p /nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-${pkgs.util-linux.name}-bin/bin
+ ln -s $(which mount) /nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-${pkgs.util-linux.name}-bin/bin
+ ln -s $(which umount) /nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-${pkgs.util-linux.name}-bin/bin
'';
})
diff --git a/infra/libkookie/nixpkgs/nixos/modules/tasks/filesystems/zfs.nix b/infra/libkookie/nixpkgs/nixos/modules/tasks/filesystems/zfs.nix
index 9ca7c6fb3431..6becc6962735 100644
--- a/infra/libkookie/nixpkgs/nixos/modules/tasks/filesystems/zfs.nix
+++ b/infra/libkookie/nixpkgs/nixos/modules/tasks/filesystems/zfs.nix
@@ -175,14 +175,10 @@ in
forceImportAll = mkOption {
type = types.bool;
- default = true;
+ default = false;
description = ''
Forcibly import all ZFS pool(s).
- This is enabled by default for backwards compatibility purposes, but it is highly
- recommended to disable this option, as it bypasses some of the safeguards ZFS uses
- to protect your ZFS pools.
-
If you set this option to <literal>false</literal> and NixOS subsequently fails to
import your non-root ZFS pool(s), you should manually import each pool with
"zpool import -f &lt;pool-name&gt;", and then reboot. You should only need to do
@@ -444,7 +440,7 @@ in
pkgs.gnugrep
pkgs.gnused
pkgs.nettools
- pkgs.utillinux
+ pkgs.util-linux
];
};
@@ -507,6 +503,7 @@ in
Type = "oneshot";
RemainAfterExit = true;
};
+ environment.ZFS_FORCE = optionalString cfgZfs.forceImportAll "-f";
script = (importLib {
# See comments at importLib definition.
zpoolCmd="${packages.zfsUser}/sbin/zpool";