diff --git a/modules/builder/nixos.nix b/modules/builder/nixos.nix index 568cf35..3bfce68 100644 --- a/modules/builder/nixos.nix +++ b/modules/builder/nixos.nix @@ -6,50 +6,50 @@ }: let cfg = config.modules.remoteBuild; + remoteBuilder = lib.mkIf cfg.become-remote-builder { + users.users.remotebuild = { + isSystemUser = true; + group = "remotebuild"; + useDefaultShell = true; + + # ssh-keygen -f /root/.ssh/remotebuild + openssh.authorizedKeys.keyFiles = [ ./remotebuild.pub ]; + openssh.authorizedKeys.keys = [ + # Laptop + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIE/4h+WCBBW82puv8SMdUbkWymF4amEMuZitgFztB6oZ doloroo@proton.me" + ]; + }; + + users.groups.remotebuild = { }; + + nix.settings.trusted-users = [ "remotebuild" ]; + }; + useBulders = lib.mkIf cfg.use-remote-builders { + nix.distributedBuilds = true; + nix.settings.builders-use-substitutes = true; + + # Define every build machine here.. + nix.buildMachines = [ + { + # Main desktop pc + # ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKqsFEgtcTDw89GaZJg8P/FE1xngIXmiUZl8j0b+V7n+ root@doloroo-main + hostName = "doloroo-main"; + sshUser = "remotebuild"; + sshKey = "/root/.ssh/remotebuild"; + system = "x86_64-linux"; + supportedFeatures = [ + "nixos-test" + "big-parallel" + "kvm" + ]; + } + ]; + }; in { options.modules.remoteBuild = { use-remote-builders = lib.mkEnableOption "remoteBuild"; become-remote-builder = lib.mkEnableOption "remoteBuild"; }; - config = - lib.mkIf cfg.become-remote-builder { - users.users.remotebuild = { - isSystemUser = true; - group = "remotebuild"; - useDefaultShell = true; - - # ssh-keygen -f /root/.ssh/remotebuild - openssh.authorizedKeys.keyFiles = [ ./remotebuild.pub ]; - openssh.authorizedKeys.keys = [ - # Laptop - "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIE/4h+WCBBW82puv8SMdUbkWymF4amEMuZitgFztB6oZ doloroo@proton.me" - ]; - }; - - users.groups.remotebuild = { }; - - nix.settings.trusted-users = [ "remotebuild" ]; - } - // lib.mkIf cfg.use-remote-builders { - nix.distributedBuilds = true; - nix.settings.builders-use-substitutes = true; - - # Define every build machine here.. - nix.buildMachines = [ - { - # Main desktop pc - # ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKqsFEgtcTDw89GaZJg8P/FE1xngIXmiUZl8j0b+V7n+ root@doloroo-main - hostName = "doloroo-main"; - sshUser = "remotebuild"; - sshKey = "/root/.ssh/remotebuild"; - system = "x86_64-linux"; - supportedFeatures = [ - "nixos-test" - "big-parallel" - "kvm" - ]; - } - ]; - }; + config = lib.attrsets.recursiveUpdate useBulders remoteBuilder; } diff --git a/modules/builder/remotebuild.pub b/modules/builder/remotebuild.pub new file mode 100644 index 0000000..ccf7529 --- /dev/null +++ b/modules/builder/remotebuild.pub @@ -0,0 +1 @@ +ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKqsFEgtcTDw89GaZJg8P/FE1xngIXmiUZl8j0b+V7n+ root@doloroo-main