flake: split up per host

Inject the inputs in specialArgs so they can be used in the modules
directly. This allows us to split up the top-level flake as well.
This commit is contained in:
zimbatm 2023-05-15 18:47:32 +02:00 committed by Jonas Chevalier
parent 9107bc066b
commit 9db2dcf124
10 changed files with 103 additions and 103 deletions

View file

@ -1,4 +1,4 @@
{ ... }: { inputs, ... }:
# Boot recovery: # Boot recovery:
# Activate 64-bit Rescue system in https://robot.your-server.de/server # Activate 64-bit Rescue system in https://robot.your-server.de/server
# ssh root@build01.nix-community.org "mount /dev/md[0-9]* /mnt && /mnt/kexec_bundle" # ssh root@build01.nix-community.org "mount /dev/md[0-9]* /mnt && /mnt/kexec_bundle"
@ -11,6 +11,7 @@
# nixos-enter # nixos-enter
{ {
imports = [ imports = [
inputs.srvos.nixosModules.hardware-hetzner-online-amd
../roles/common.nix ../roles/common.nix
../roles/raid.nix ../roles/raid.nix
../roles/zfs.nix ../roles/zfs.nix

7
build01/default.nix Normal file
View file

@ -0,0 +1,7 @@
{ self, ... }:
{
flake.nixosConfigurations.build01 = self.lib.nixosSystem {
system = "x86_64-linux";
modules = [ ./configuration.nix ];
};
}

View file

@ -1,7 +1,9 @@
{ ... }: { inputs, ... }:
{ {
imports = [ imports = [
inputs.srvos.nixosModules.mixins-nginx
inputs.srvos.nixosModules.hardware-hetzner-online-amd
./nixpkgs-update.nix ./nixpkgs-update.nix
./nixpkgs-update-backup.nix ./nixpkgs-update-backup.nix
../roles/common.nix ../roles/common.nix

8
build02/default.nix Normal file
View file

@ -0,0 +1,8 @@
{ self, ... }:
{
flake.nixosConfigurations.build02 = self.lib.nixosSystem {
system = "x86_64-linux";
modules = [ ./configuration.nix ];
};
}

View file

@ -1,4 +1,4 @@
{ ... }: { inputs, ... }:
{ {
# Boot recovery: # Boot recovery:
# Activate 64-bit Rescue system in https://robot.your-server.de/server # Activate 64-bit Rescue system in https://robot.your-server.de/server
@ -10,6 +10,8 @@
# $ zpool import -f zroot && mount -t zfs zroot/root/nixos /mnt && mount -t zfs zroot/root/home /mnt/home && mount /dev/md[0-9]* /mnt/boot # $ zpool import -f zroot && mount -t zfs zroot/root/nixos /mnt && mount -t zfs zroot/root/home /mnt/home && mount /dev/md[0-9]* /mnt/boot
# $ nixos-enter # $ nixos-enter
imports = [ imports = [
inputs.srvos.nixosModules.mixins-nginx
inputs.srvos.nixosModules.hardware-hetzner-online-amd
../roles/common.nix ../roles/common.nix
../roles/hercules-ci ../roles/hercules-ci
../roles/watch-store.nix ../roles/watch-store.nix

7
build03/default.nix Normal file
View file

@ -0,0 +1,7 @@
{ self, ... }:
{
flake.nixosConfiguration.build03 = self.lib.nixosSystem {
system = "x86_64-linux";
modules = [ ./configuration.nix ];
};
}

View file

@ -1,5 +1,7 @@
{ inputs, ... }:
{ {
imports = [ imports = [
inputs.disko.nixosModules.disko
./hardware-configuration.nix ./hardware-configuration.nix
../roles/common.nix ../roles/common.nix
../roles/hercules-ci ../roles/hercules-ci

7
build04/default.nix Normal file
View file

@ -0,0 +1,7 @@
{ self, ... }:
{
flake.nixosConfigurations.build04 = self.lib.nixosSystem {
system = "aarch64-linux";
modules = [ ./configuration.nix ];
};
}

View file

@ -42,10 +42,13 @@
}; };
outputs = inputs @ { flake-parts, self, ... }: outputs = inputs @ { flake-parts, self, ... }:
flake-parts.lib.mkFlake flake-parts.lib.mkFlake { inherit inputs; } {
{ inherit inputs; } systems = [
{ "aarch64-darwin"
systems = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ]; "aarch64-linux"
"x86_64-darwin"
"x86_64-linux"
];
herculesCI = { lib, ... }: { herculesCI = { lib, ... }: {
ciSystems = [ "x86_64-linux" "aarch64-linux" ]; ciSystems = [ "x86_64-linux" "aarch64-linux" ];
@ -65,15 +68,19 @@
}; };
}; };
hercules-ci.github-pages.branch = "master";
imports = [ imports = [
inputs.hercules-ci-effects.flakeModule inputs.hercules-ci-effects.flakeModule
inputs.treefmt-nix.flakeModule inputs.treefmt-nix.flakeModule
./effect.nix ./effect.nix
./shell.nix ./shell.nix
./build01
./build02
./build03
./build04
]; ];
hercules-ci.github-pages.branch = "master";
perSystem = { config, pkgs, ... }: { perSystem = { config, pkgs, ... }: {
treefmt.imports = [ ./treefmt.nix ]; treefmt.imports = [ ./treefmt.nix ];
@ -88,61 +95,11 @@
hercules-ci.github-pages.settings.contents = config.packages.pages; hercules-ci.github-pages.settings.contents = config.packages.pages;
}; };
flake.nixosConfigurations = flake.lib.nixosSystem = args:
let inputs.nixpkgs.lib.nixosSystem ({ specialArgs = { inherit inputs; }; } // args);
inherit (inputs.nixpkgs.lib) nixosSystem;
common = [
{ _module.args.inputs = inputs; }
{ srvos.flake = inputs.self; }
inputs.sops-nix.nixosModules.sops
inputs.srvos.nixosModules.server
inputs.srvos.nixosModules.mixins-telegraf flake.nixosModules = {
{ networking.firewall.allowedTCPPorts = [ 9273 ]; } common = ./roles/common.nix;
];
in
{
build01 = nixosSystem {
system = "x86_64-linux";
modules =
common
++ [
./build01/configuration.nix
inputs.srvos.nixosModules.hardware-hetzner-online-amd
];
};
build02 = nixosSystem {
system = "x86_64-linux";
modules =
common
++ [
./build02/configuration.nix
inputs.srvos.nixosModules.mixins-nginx
inputs.srvos.nixosModules.hardware-hetzner-online-amd
];
};
build03 = nixosSystem {
system = "x86_64-linux";
modules =
common
++ [
./build03/configuration.nix
inputs.srvos.nixosModules.mixins-nginx
inputs.srvos.nixosModules.hardware-hetzner-online-amd
];
};
build04 = nixosSystem {
system = "aarch64-linux";
modules =
common
++ [
./build04/configuration.nix
inputs.disko.nixosModules.disko
];
};
}; };
}; };
} }

View file

@ -1,4 +1,4 @@
{ pkgs, ... }: { inputs, pkgs, ... }:
{ {
imports = [ imports = [
./auto-upgrade.nix ./auto-upgrade.nix
@ -6,8 +6,15 @@
./security.nix ./security.nix
./sops-nix.nix ./sops-nix.nix
./users.nix ./users.nix
inputs.sops-nix.nixosModules.sops
inputs.srvos.nixosModules.mixins-telegraf
inputs.srvos.nixosModules.server
]; ];
networking.firewall.allowedTCPPorts = [ 9273 ];
srvos.flake = inputs.self;
zramSwap.enable = true; zramSwap.enable = true;
# https://github.com/hercules-ci/hercules-ci-agent/issues/514 # https://github.com/hercules-ci/hercules-ci-agent/issues/514