config-perso/hive.nix

216 lines
5.3 KiB
Nix
Raw Normal View History

2024-05-14 19:21:19 +02:00
let
2024-03-13 11:11:16 +01:00
mods = import ./modules;
users = import ./users;
2024-06-01 00:28:17 +02:00
sources = import ./npins;
2024-06-19 08:34:47 +02:00
id_sylvain = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCvi5VUsDrwS4XqQQfFFIx1JoRDPVdtChUQWqKFbPFtP8gH51woXiKtKRbDebL0z/EmkdYKxxIkzixHTR5xQXjo8JiFZbwldZi5IvMr3x//ad9sVyOhmbRx1DXLKjyOdWyo+w0vORvbEDu2lHktfSvhHGrvUHfFc3EY+cAl7IImgGEeGNPruAuNkN90Lth9QgwJVsdOEs9j7hwwKtpfMMETL5tkW34Nu7io03+SaPxwi2xLuWTdTklfZ7GWYtG2w/hFkzDbkW97rp5dxB1HO58cPqyRlqyfhZFpiUmWlyuMba3Tip6JarCa52IpFffEIDR0CSeh5CFPoeppo/TPDiXDie370TjjQpxJiG+9PobBhmChH5FmQ/lksffI/WimqpVO7Ixf5cYiHN5Z0mgJgZsXwI3YPICQLA8ebSKHA8+mdmkunDmCBRaBj1qEgkp/UoYqXT6BjBm07nOsnL+3SG/yfx4fLotgWtdm2mkjEAG+OGVR7G3Vk/POxn0EqX7Z+gU= sylvain@idefix";
2024-05-14 19:21:19 +02:00
in
{
2024-06-19 16:26:15 +02:00
meta.nixpkgs = (import sources.nix-patches { patchFile = ./patches; }).mkNixpkgsSrc {
src = sources.nixpkgs;
version = "unstable";
};
2024-03-13 11:11:16 +01:00
meta.specialArgs = {
2024-06-01 00:28:17 +02:00
inherit mods users sources;
2024-03-13 11:11:16 +01:00
};
2024-05-14 19:21:19 +02:00
defaults =
2024-06-01 16:26:08 +02:00
{
2024-06-18 09:47:57 +02:00
nodes,
2024-06-01 16:26:08 +02:00
name,
pkgs,
lib,
config,
...
}:
2024-05-14 19:21:19 +02:00
{
2024-06-01 00:28:17 +02:00
imports = [
"${sources.home-manager}/nixos"
"${sources.agenix}/modules/age.nix"
2024-06-01 16:26:08 +02:00
"${sources.disko}/module.nix"
2024-06-01 00:28:17 +02:00
];
2024-06-01 16:26:08 +02:00
options.system.build.anywhere = lib.mkOption {
type = lib.types.package;
readOnly = true;
};
config = {
boot.tmp.useTmpfs = true;
networking.hostName = name;
2024-06-17 16:13:54 +02:00
nix = {
nixPath = [
"nixpkgs=${builtins.storePath pkgs.path}"
"nixos=${builtins.storePath pkgs.path}"
];
package = pkgs.lix;
};
2024-06-01 16:26:08 +02:00
system.build.anywhere = pkgs.writeShellApplication {
name = "anywhere-deploy_${name}.sh";
runtimeInputs = [ pkgs.nixos-anywhere ];
text = ''
2024-06-18 09:47:57 +02:00
nixos-anywhere --kexec ${nodes.kat-kexec.config.system.build.kexecTarball}/${nodes.kat-kexec.config.system.kexec-installer.name}-${pkgs.stdenv.hostPlatform.system}.tar.gz --store-paths ${config.system.build.diskoScriptNoDeps} ${config.system.build.toplevel} ${config.deployment.targetHost}
2024-06-01 16:26:08 +02:00
'';
};
};
2024-05-14 19:21:19 +02:00
};
2024-03-18 20:26:22 +01:00
2024-05-14 19:21:19 +02:00
kat-probook =
{
name,
nodes,
users,
...
}:
{
deployment.allowLocalDeployment = true;
imports = [
2024-06-25 18:19:34 +02:00
./machines/kat-probook
2024-05-14 19:21:19 +02:00
(users.root { ssh = false; })
users.catvayor
];
nix.settings.trusted-users = [
"root"
"@wheel"
];
};
2024-03-16 20:03:01 +01:00
2024-05-14 19:21:19 +02:00
kat-r86s =
{ name, nodes, ... }:
{
deployment.targetHost = "r86s.kat";
imports = [
2024-06-25 18:19:34 +02:00
./machines/kat-r86s
2024-05-14 19:21:19 +02:00
(users.root { ssh = true; })
];
};
2024-03-18 20:26:22 +01:00
2024-05-14 19:21:19 +02:00
kat-virt =
{ name, nodes, ... }:
{
deployment.targetHost = "virt.kat";
imports = [
2024-06-25 18:19:34 +02:00
./machines/kat-virt
2024-05-14 19:21:19 +02:00
(users.root { ssh = true; })
];
2024-06-19 08:34:47 +02:00
users.users.root.openssh.authorizedKeys.keys = [ id_sylvain ];
2024-03-22 14:24:31 +01:00
};
2024-03-18 20:26:22 +01:00
2024-06-01 16:26:08 +02:00
kat-traque =
{ name, nodes, ... }:
{
deployment.targetHost = "traque.kat";
imports = [
2024-06-25 18:19:34 +02:00
./machines/kat-traque
2024-06-01 16:26:08 +02:00
(users.root { ssh = true; })
];
2024-06-19 08:34:47 +02:00
users.users.root.openssh.authorizedKeys.keys = [ id_sylvain ];
};
kat-mail-test =
{ name, nodes, ... }:
{
deployment.targetHost = "mail-test.kat";
imports = [
./machines/kat-mail-test
(users.root { ssh = true; })
2024-06-01 16:26:08 +02:00
];
2024-06-19 08:34:47 +02:00
users.users.root.openssh.authorizedKeys.keys = [ id_sylvain ];
2024-06-01 16:26:08 +02:00
};
2024-06-18 09:47:57 +02:00
kat-watcher =
{ name, nodes, ... }:
{
deployment.targetHost = "watcher.kat";
imports = [
./machines/kat-watcher
(users.root { ssh = true; })
];
};
2024-06-25 10:54:31 +02:00
kat-son =
{ name, nodes, ... }:
{
deployment.targetHost = "son.kat";
imports = [
./machines/kat-son
(users.root { ssh = true; })
];
};
2024-05-14 19:21:19 +02:00
kat-iso =
2024-06-01 00:28:17 +02:00
{
name,
pkgs,
modulesPath,
...
}:
2024-05-14 19:21:19 +02:00
{
deployment = {
allowLocalDeployment = false;
targetHost = null;
};
2024-03-16 20:03:01 +01:00
2024-05-14 19:21:19 +02:00
imports = [
2024-06-01 00:28:17 +02:00
(modulesPath + "/installer/cd-dvd/installation-cd-minimal-new-kernel-no-zfs.nix")
2024-05-14 19:21:19 +02:00
(users.root { ssh = true; })
];
2024-03-16 20:03:01 +01:00
2024-05-14 19:21:19 +02:00
networking = {
networkmanager.enable = true;
wireless.enable = false;
};
console.keyMap = "fr";
environment.systemPackages = with pkgs; [
perl
git
];
boot.supportedFilesystems = [ "bcachefs" ];
programs.zsh.enable = true;
services.openssh.enable = true;
services.qemuGuest.enable = true;
boot.kernelParams = [ "console=ttyS0" ];
2024-03-18 20:26:22 +01:00
};
2024-06-18 09:47:57 +02:00
kat-kexec =
{
name,
pkgs,
modulesPath,
lib,
...
}:
{
deployment = {
allowLocalDeployment = false;
targetHost = null;
};
imports = [
("${sources.nixos-images}/nix/kexec-installer/module.nix")
(users.root { ssh = true; })
];
networking = {
networkmanager.enable = false;
wireless.enable = false;
};
console.keyMap = "fr";
environment.systemPackages = with pkgs; [
perl
git
];
programs.zsh.enable = true;
services.openssh.enable = true;
services.qemuGuest.enable = true;
boot.kernelParams = [ "console=ttyS0" ];
boot.kernelPackages = lib.mkForce pkgs.linuxPackages_latest;
boot.supportedFilesystems = {
bcachefs = true;
zfs = lib.mkForce false;
};
};
2024-03-12 17:26:16 +01:00
}