forked from raito/shared-public-infra
Compare commits
17 commits
Author | SHA1 | Date | |
---|---|---|---|
raito | 5aeb620a66 | ||
raito | 8e72e4585e | ||
raito | 852d0c107b | ||
Linus Heckemann | fe3e4a50fb | ||
jade | c1f9e26c06 | ||
jade | 227e8a381a | ||
jade | 4ae36d6b79 | ||
raito | 7248adf458 | ||
Julien Malka | 9602ab9539 | ||
Julien Malka | be798718ce | ||
Julien Malka | 74ae6096fd | ||
Julien Malka | e018572545 | ||
Julien Malka | 2b0bd95587 | ||
raito | 5c6e3b2715 | ||
raito | 23831441b3 | ||
raito | 60b1cef998 | ||
jade | fdc980208d |
|
@ -3,6 +3,7 @@ let
|
||||||
inherit
|
inherit
|
||||||
(self.inputs)
|
(self.inputs)
|
||||||
nixpkgs
|
nixpkgs
|
||||||
|
lix-module
|
||||||
home-manager
|
home-manager
|
||||||
agenix
|
agenix
|
||||||
nur
|
nur
|
||||||
|
@ -32,7 +33,6 @@ let
|
||||||
./modules/hosts.nix
|
./modules/hosts.nix
|
||||||
./modules/network.nix
|
./modules/network.nix
|
||||||
./modules/zsh.nix
|
./modules/zsh.nix
|
||||||
./modules/ssh-cursed.nix
|
|
||||||
# FIXME: ./modules/buildbot — whenever you are ready.
|
# FIXME: ./modules/buildbot — whenever you are ready.
|
||||||
|
|
||||||
|
|
||||||
|
@ -45,6 +45,9 @@ let
|
||||||
# srvos.nixosModules.mixins-telegraf
|
# srvos.nixosModules.mixins-telegraf
|
||||||
# srvos.nixosModules.mixins-terminfo
|
# srvos.nixosModules.mixins-terminfo
|
||||||
|
|
||||||
|
# use lix
|
||||||
|
lix-module.nixosModules.default
|
||||||
|
|
||||||
agenix.nixosModules.default
|
agenix.nixosModules.default
|
||||||
({ pkgs
|
({ pkgs
|
||||||
, config
|
, config
|
||||||
|
@ -57,7 +60,7 @@ let
|
||||||
{
|
{
|
||||||
nix.nixPath = [
|
nix.nixPath = [
|
||||||
"home-manager=${home-manager}"
|
"home-manager=${home-manager}"
|
||||||
"nixpkgs=${pkgs.path}"
|
"nixpkgs=flake:nixpkgs"
|
||||||
"nur=${nur}"
|
"nur=${nur}"
|
||||||
];
|
];
|
||||||
# TODO: share nixpkgs for each machine to speed up local evaluation.
|
# TODO: share nixpkgs for each machine to speed up local evaluation.
|
||||||
|
@ -69,10 +72,7 @@ let
|
||||||
#};
|
#};
|
||||||
# sops.defaultSopsFile = lib.mkIf (builtins.pathExists sopsFile) sopsFile;
|
# sops.defaultSopsFile = lib.mkIf (builtins.pathExists sopsFile) sopsFile;
|
||||||
|
|
||||||
nix.extraOptions = ''
|
nix.settings.builders-use-substitutes = true;
|
||||||
flake-registry = ${flake-registry}/flake-registry.json
|
|
||||||
builders-use-substitutes = true
|
|
||||||
'';
|
|
||||||
|
|
||||||
nix.registry = {
|
nix.registry = {
|
||||||
home-manager.flake = home-manager;
|
home-manager.flake = home-manager;
|
||||||
|
@ -103,6 +103,12 @@ in
|
||||||
flake.colmena = {
|
flake.colmena = {
|
||||||
meta.nixpkgs = import nixpkgs {
|
meta.nixpkgs = import nixpkgs {
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
|
# yikes, this overlay has to be listed twice since colmena makes us
|
||||||
|
# import nixpkgs explicitly here
|
||||||
|
overlays = [
|
||||||
|
# bonking cppnix out of the closure as much as possible
|
||||||
|
lix-module.overlays.default
|
||||||
|
];
|
||||||
};
|
};
|
||||||
epyc = {
|
epyc = {
|
||||||
imports =
|
imports =
|
||||||
|
|
196
flake.lock
196
flake.lock
|
@ -163,6 +163,22 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"flake-compat_3": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1696426674,
|
||||||
|
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
|
||||||
|
"owner": "edolstra",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "edolstra",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"flake-parts": {
|
"flake-parts": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs-lib": [
|
"nixpkgs-lib": [
|
||||||
|
@ -183,22 +199,6 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-registry": {
|
|
||||||
"flake": false,
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1717415742,
|
|
||||||
"narHash": "sha256-HKvoLGZUsBpjkxWkdtctGYj6RH0bl6vcw0OjTOqyzJk=",
|
|
||||||
"owner": "NixOS",
|
|
||||||
"repo": "flake-registry",
|
|
||||||
"rev": "895a65f8d5acf848136ee8fe8e8f736f0d27df96",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "NixOS",
|
|
||||||
"repo": "flake-registry",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"flake-utils": {
|
"flake-utils": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1667395993,
|
"lastModified": 1667395993,
|
||||||
|
@ -229,6 +229,39 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"flake-utils_3": {
|
||||||
|
"inputs": {
|
||||||
|
"systems": "systems_2"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1726560853,
|
||||||
|
"narHash": "sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"rev": "c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flakey-profile": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1712898590,
|
||||||
|
"narHash": "sha256-FhGIEU93VHAChKEXx905TSiPZKga69bWl1VB37FK//I=",
|
||||||
|
"owner": "lf-",
|
||||||
|
"repo": "flakey-profile",
|
||||||
|
"rev": "243c903fd8eadc0f63d205665a92d4df91d42d9d",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "lf-",
|
||||||
|
"repo": "flakey-profile",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"home-manager": {
|
"home-manager": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
|
@ -271,6 +304,71 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"lix": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-compat": "flake-compat_3",
|
||||||
|
"nix2container": "nix2container",
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"nixpkgs-regression": "nixpkgs-regression",
|
||||||
|
"pre-commit-hooks": "pre-commit-hooks"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1729296222,
|
||||||
|
"narHash": "sha256-fwJyGrkTemR1SwkAPXfxlY0RYCxy34NedmR35amytCc=",
|
||||||
|
"ref": "refs/heads/main",
|
||||||
|
"rev": "60578b4d7d0dfc296c61cae963b6b2763422788e",
|
||||||
|
"revCount": 16362,
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://git.lix.systems/lix-project/lix.git"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"ref": "refs/heads/main",
|
||||||
|
"rev": "60578b4d7d0dfc296c61cae963b6b2763422788e",
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://git.lix.systems/lix-project/lix.git"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"lix-module": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-utils": "flake-utils_3",
|
||||||
|
"flakey-profile": "flakey-profile",
|
||||||
|
"lix": [
|
||||||
|
"lix"
|
||||||
|
],
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1727752861,
|
||||||
|
"narHash": "sha256-jowmo2aEzrEpPSM96IWtajuogdJm7DjAWxFTEb7Ct0s=",
|
||||||
|
"rev": "fd186f535a4ac7ae35d98c1dd5d79f0a81b7976d",
|
||||||
|
"type": "tarball",
|
||||||
|
"url": "https://git.lix.systems/api/v1/repos/lix-project/nixos-module/archive/fd186f535a4ac7ae35d98c1dd5d79f0a81b7976d.tar.gz?rev=fd186f535a4ac7ae35d98c1dd5d79f0a81b7976d"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"type": "tarball",
|
||||||
|
"url": "https://git.lix.systems/lix-project/nixos-module/archive/main.tar.gz"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nix2container": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1724996935,
|
||||||
|
"narHash": "sha256-njRK9vvZ1JJsP8oV2OgkBrpJhgQezI03S7gzskCcHos=",
|
||||||
|
"owner": "nlewo",
|
||||||
|
"repo": "nix2container",
|
||||||
|
"rev": "fa6bb0a1159f55d071ba99331355955ae30b3401",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nlewo",
|
||||||
|
"repo": "nix2container",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"nixos-hardware": {
|
"nixos-hardware": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1719069430,
|
"lastModified": 1719069430,
|
||||||
|
@ -302,6 +400,22 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"nixpkgs-regression": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1643052045,
|
||||||
|
"narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"nixpkgs-stable": {
|
"nixpkgs-stable": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1711460390,
|
"lastModified": 1711460390,
|
||||||
|
@ -320,11 +434,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs_2": {
|
"nixpkgs_2": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1718983919,
|
"lastModified": 1724932487,
|
||||||
"narHash": "sha256-+1xgeIow4gJeiwo4ETvMRvWoircnvb0JOt7NS9kUhoM=",
|
"narHash": "sha256-zzbqHmY1mt21omyk1+14QbAkII1B7OHlwKLcczVq22w=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "90338afd6177fc683a04d934199d693708c85a3b",
|
"rev": "b4f7fb71438d00539b21f1b1e6968c0eac060127",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -349,6 +463,22 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"pre-commit-hooks": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1726745158,
|
||||||
|
"narHash": "sha256-D5AegvGoEjt4rkKedmxlSEmC+nNLMBPWFxvmYnVLhjk=",
|
||||||
|
"owner": "cachix",
|
||||||
|
"repo": "git-hooks.nix",
|
||||||
|
"rev": "4e743a6920eab45e8ba0fbe49dc459f1423a4b74",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "cachix",
|
||||||
|
"repo": "git-hooks.nix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"agenix": "agenix",
|
"agenix": "agenix",
|
||||||
|
@ -356,8 +486,9 @@
|
||||||
"colmena": "colmena",
|
"colmena": "colmena",
|
||||||
"disko": "disko",
|
"disko": "disko",
|
||||||
"flake-parts": "flake-parts",
|
"flake-parts": "flake-parts",
|
||||||
"flake-registry": "flake-registry",
|
|
||||||
"home-manager": "home-manager_2",
|
"home-manager": "home-manager_2",
|
||||||
|
"lix": "lix",
|
||||||
|
"lix-module": "lix-module",
|
||||||
"nixos-hardware": "nixos-hardware",
|
"nixos-hardware": "nixos-hardware",
|
||||||
"nixpkgs": "nixpkgs_2",
|
"nixpkgs": "nixpkgs_2",
|
||||||
"nur": "nur",
|
"nur": "nur",
|
||||||
|
@ -371,15 +502,15 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1718844164,
|
"lastModified": 1724920817,
|
||||||
"narHash": "sha256-QUXWv6llKIQ5To2N24d9dRI78Hqfm9iFyhvmvlOICNo=",
|
"narHash": "sha256-qWXS+4M9kHXxG1HgZuv+3gm3KQc1aPdBZUPnLLev8w0=",
|
||||||
"owner": "numtide",
|
"owner": "nix-community",
|
||||||
"repo": "srvos",
|
"repo": "srvos",
|
||||||
"rev": "557ff94aa1b48a723f8fa16eb9e7a2e6de991682",
|
"rev": "977841b31ddbd3c919f56767a6f85d0615440759",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "numtide",
|
"owner": "nix-community",
|
||||||
"repo": "srvos",
|
"repo": "srvos",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
|
@ -414,6 +545,21 @@
|
||||||
"repo": "default",
|
"repo": "default",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"systems_2": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1681028828,
|
||||||
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"root": "root",
|
"root": "root",
|
||||||
|
|
138
flake.nix
138
flake.nix
|
@ -4,6 +4,13 @@
|
||||||
# To update all inputs:
|
# To update all inputs:
|
||||||
# $ nix flake update --recreate-lock-file
|
# $ nix flake update --recreate-lock-file
|
||||||
inputs = {
|
inputs = {
|
||||||
|
lix.url = "git+https://git.lix.systems/lix-project/lix.git?ref=refs/heads/main&rev=60578b4d7d0dfc296c61cae963b6b2763422788e";
|
||||||
|
lix.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
|
||||||
|
lix-module.url = "https://git.lix.systems/lix-project/nixos-module/archive/main.tar.gz";
|
||||||
|
lix-module.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
lix-module.inputs.lix.follows = "lix";
|
||||||
|
|
||||||
disko.url = "github:nix-community/disko";
|
disko.url = "github:nix-community/disko";
|
||||||
disko.inputs.nixpkgs.follows = "nixpkgs";
|
disko.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
|
||||||
|
@ -26,7 +33,7 @@
|
||||||
|
|
||||||
attic.url = "github:zhaofengli/attic";
|
attic.url = "github:zhaofengli/attic";
|
||||||
|
|
||||||
srvos.url = "github:numtide/srvos";
|
srvos.url = "github:nix-community/srvos";
|
||||||
# actually not used when using the modules but than nothing ever will try to fetch this nixpkgs variant
|
# actually not used when using the modules but than nothing ever will try to fetch this nixpkgs variant
|
||||||
srvos.inputs.nixpkgs.follows = "nixpkgs";
|
srvos.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
|
||||||
|
@ -34,74 +41,93 @@
|
||||||
# Private repository, you need a valid SSH key to access it
|
# Private repository, you need a valid SSH key to access it
|
||||||
# nixos-hypervisor.url = "git+ssh://gitea@git.newtype.fr/newtype/nixos-hypervisor?ref=main";
|
# nixos-hypervisor.url = "git+ssh://gitea@git.newtype.fr/newtype/nixos-hypervisor?ref=main";
|
||||||
# nixos-hypervisor.inputs.nixpkgs.follows = "nixpkgs";
|
# nixos-hypervisor.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
|
||||||
flake-registry.url = "github:NixOS/flake-registry";
|
|
||||||
flake-registry.flake = false;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs =
|
outputs =
|
||||||
{ flake-parts
|
{
|
||||||
, ...
|
flake-parts,
|
||||||
} @ inputs:
|
...
|
||||||
(flake-parts.lib.evalFlakeModule
|
}@inputs:
|
||||||
{ inherit inputs; }
|
(flake-parts.lib.evalFlakeModule { inherit inputs; } (
|
||||||
({ self, inputs, ... }: {
|
{ self, inputs, ... }:
|
||||||
systems = [ "x86_64-linux" "aarch64-linux" "aarch64-darwin" ];
|
{
|
||||||
|
systems = [
|
||||||
|
"x86_64-linux"
|
||||||
|
"aarch64-linux"
|
||||||
|
"aarch64-darwin"
|
||||||
|
];
|
||||||
imports = [
|
imports = [
|
||||||
./configurations.nix
|
./configurations.nix
|
||||||
# ./modules/monitoring/flake-module.nix
|
# ./modules/monitoring/flake-module.nix
|
||||||
# ./pkgs/flake-module.nix
|
# ./pkgs/flake-module.nix
|
||||||
# ./templates
|
# ./templates
|
||||||
];
|
];
|
||||||
perSystem = { self', pkgs, ... }: {
|
|
||||||
devShells.default = pkgs.mkShellNoCC {
|
|
||||||
buildInputs = [
|
|
||||||
pkgs.ipmitool
|
|
||||||
pkgs.colmena
|
|
||||||
|
|
||||||
pkgs.python3.pkgs.invoke
|
# provide debug, allSystems, currentSystem in the resulting flake
|
||||||
#Until nixos-anywhere is packaged
|
debug = true;
|
||||||
pkgs.python3.pkgs.deploykit
|
|
||||||
pkgs.mypy
|
|
||||||
pkgs.pixiecore
|
|
||||||
pkgs.dnsmasq
|
|
||||||
pkgs.python3.pkgs.netaddr
|
|
||||||
pkgs.qemu_kvm
|
|
||||||
pkgs.openssh
|
|
||||||
pkgs.gitMinimal # for git flakes
|
|
||||||
pkgs.rsync
|
|
||||||
pkgs.nix
|
|
||||||
pkgs.coreutils
|
|
||||||
pkgs.curl # when uploading tarballs
|
|
||||||
pkgs.gnugrep
|
|
||||||
pkgs.findutils
|
|
||||||
pkgs.gnused # needed by ssh-copy-id
|
|
||||||
# sops dependencies
|
|
||||||
pkgs.age
|
|
||||||
pkgs.yq-go
|
|
||||||
] ++ pkgs.lib.optional (pkgs.stdenv.isLinux) pkgs.mkpasswd;
|
|
||||||
};
|
|
||||||
packages = {
|
|
||||||
# netboot = pkgs.callPackage ./modules/netboot/netboot.nix {
|
|
||||||
# # this nixosSystem is built for x86_64 machines regardless of the host machine
|
|
||||||
# pkgs = inputs.nixpkgs.legacyPackages.x86_64-linux;
|
|
||||||
# inherit (inputs.nixpkgs.lib) nixosSystem;
|
|
||||||
# extraModules = [
|
|
||||||
# self.inputs.nur.nixosModules.nur
|
|
||||||
# { _module.args.inputs = self.inputs; }
|
|
||||||
# ];
|
|
||||||
# };
|
|
||||||
|
|
||||||
# netboot-pixie-core = pkgs.callPackage ./modules/netboot/netboot-pixie-core.nix {
|
perSystem =
|
||||||
# inherit (self'.packages) netboot;
|
{ self', pkgs, system, ... }:
|
||||||
# };
|
{
|
||||||
|
# apply the lix overlay to banish CppNix
|
||||||
|
_module.args.pkgs = import inputs.nixpkgs {
|
||||||
|
inherit system;
|
||||||
|
overlays = [ inputs.lix-module.overlays.default ];
|
||||||
|
};
|
||||||
|
|
||||||
|
devShells.default = pkgs.mkShellNoCC {
|
||||||
|
buildInputs = [
|
||||||
|
pkgs.ipmitool
|
||||||
|
pkgs.colmena
|
||||||
|
|
||||||
|
pkgs.python3.pkgs.invoke
|
||||||
|
#Until nixos-anywhere is packaged
|
||||||
|
pkgs.python3.pkgs.deploykit
|
||||||
|
pkgs.mypy
|
||||||
|
pkgs.pixiecore
|
||||||
|
pkgs.dnsmasq
|
||||||
|
pkgs.python3.pkgs.netaddr
|
||||||
|
pkgs.qemu_kvm
|
||||||
|
pkgs.openssh
|
||||||
|
pkgs.gitMinimal # for git flakes
|
||||||
|
pkgs.rsync
|
||||||
|
pkgs.nix
|
||||||
|
pkgs.coreutils
|
||||||
|
pkgs.curl # when uploading tarballs
|
||||||
|
pkgs.gnugrep
|
||||||
|
pkgs.findutils
|
||||||
|
pkgs.gnused # needed by ssh-copy-id
|
||||||
|
# sops dependencies
|
||||||
|
pkgs.age
|
||||||
|
pkgs.yq-go
|
||||||
|
] ++ pkgs.lib.optional (pkgs.stdenv.isLinux) pkgs.mkpasswd;
|
||||||
|
};
|
||||||
|
packages = {
|
||||||
|
# netboot = pkgs.callPackage ./modules/netboot/netboot.nix {
|
||||||
|
# # this nixosSystem is built for x86_64 machines regardless of the host machine
|
||||||
|
# pkgs = inputs.nixpkgs.legacyPackages.x86_64-linux;
|
||||||
|
# inherit (inputs.nixpkgs.lib) nixosSystem;
|
||||||
|
# extraModules = [
|
||||||
|
# self.inputs.nur.nixosModules.nur
|
||||||
|
# { _module.args.inputs = self.inputs; }
|
||||||
|
# ];
|
||||||
|
# };
|
||||||
|
|
||||||
|
# netboot-pixie-core = pkgs.callPackage ./modules/netboot/netboot-pixie-core.nix {
|
||||||
|
# inherit (self'.packages) netboot;
|
||||||
|
# };
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
|
||||||
flake = {
|
flake = {
|
||||||
hydraJobs = inputs.nixpkgs.lib.mapAttrs' (name: config: inputs.nixpkgs.lib.nameValuePair "nixos-${name}" config.config.system.build.toplevel) self.nixosConfigurations // {
|
hydraJobs =
|
||||||
devShells = self.devShells.x86_64-linux.default;
|
inputs.nixpkgs.lib.mapAttrs' (
|
||||||
};
|
name: config: inputs.nixpkgs.lib.nameValuePair "nixos-${name}" config.config.system.build.toplevel
|
||||||
|
) self.nixosConfigurations
|
||||||
|
// {
|
||||||
|
devShells = self.devShells.x86_64-linux.default;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
})).config.flake;
|
}
|
||||||
|
)).config.flake;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,6 +13,16 @@ in
|
||||||
../modules/garage.nix
|
../modules/garage.nix
|
||||||
../modules/users/friends.nix
|
../modules/users/friends.nix
|
||||||
../modules/bagel-container.nix
|
../modules/bagel-container.nix
|
||||||
|
../modules/lix-bug-details-pls
|
||||||
|
];
|
||||||
|
|
||||||
|
# Include debuginfo for Lix
|
||||||
|
environment.systemPackages = [
|
||||||
|
pkgs.lix.debug
|
||||||
|
pkgs.lix.passthru.capnproto-lix.debug
|
||||||
|
];
|
||||||
|
environment.pathsToLink = [
|
||||||
|
"/lib/debug"
|
||||||
];
|
];
|
||||||
|
|
||||||
networking.hostName = "epyc";
|
networking.hostName = "epyc";
|
||||||
|
@ -33,19 +43,7 @@ in
|
||||||
'';
|
'';
|
||||||
networking.firewall.allowedTCPPorts = [ 5432 ];
|
networking.firewall.allowedTCPPorts = [ 5432 ];
|
||||||
|
|
||||||
nix.buildMachines = [
|
boot.binfmt.emulatedSystems = [ "riscv64-linux" "aarch64-linux" ];
|
||||||
{
|
|
||||||
hostName = "localhost";
|
|
||||||
systems = [
|
|
||||||
"x86_64-linux"
|
|
||||||
"riscv64-linux"
|
|
||||||
];
|
|
||||||
supportedFeatures = [ "kvm" "nixos-test" "big-parallel" "benchmark" ] ++ gcc-system-features "znver3";
|
|
||||||
maxJobs = 2;
|
|
||||||
}
|
|
||||||
];
|
|
||||||
|
|
||||||
boot.binfmt.emulatedSystems = [ "riscv64-linux" "aarch64-linux" "riscv64-linux" ];
|
|
||||||
|
|
||||||
simd.arch = "znver3";
|
simd.arch = "znver3";
|
||||||
system.stateVersion = "23.05";
|
system.stateVersion = "23.05";
|
||||||
|
|
|
@ -0,0 +1,40 @@
|
||||||
|
From 96937c58232ad6eaa11d1370220101c3ce2d00c3 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Jade Lovelace <lix@jade.fyi>
|
||||||
|
Date: Thu, 29 Aug 2024 23:04:39 -0700
|
||||||
|
Subject: [PATCH] wip: complain about failing goals at warn level
|
||||||
|
|
||||||
|
I want to fix the bug that appears here:
|
||||||
|
|
||||||
|
error: build of '/nix/store/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-nixos-test-driver-nix-copy-closure.drv' on 'ssh-ng://nix@epyc.infra.newtype.fr' failed: error: some dependencies of '/nix/store/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-nixos-test-driver-nix-copy-closure.drv' are missing
|
||||||
|
error: builder for '/nix/store/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-nixos-test-driver-nix-copy-closure.drv' failed with exit code 1
|
||||||
|
error: 1 dependencies of derivation '/nix/store/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb-vm-test-run-nix-copy-closure.drv' failed to build
|
||||||
|
|
||||||
|
However, this is conditional on nrFailed, and I cannot for the life of
|
||||||
|
me figure out *who* is failing and *why*.
|
||||||
|
|
||||||
|
Hopefully with these data I can narrow down why this bug is happening
|
||||||
|
|
||||||
|
Change-Id: I7dca71b1c8ac92e7cc40c47ab37c952a7673cf42
|
||||||
|
---
|
||||||
|
src/libstore/build/worker.cc | 5 ++++-
|
||||||
|
1 file changed, 4 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/src/libstore/build/worker.cc b/src/libstore/build/worker.cc
|
||||||
|
index 1b4633e64..a93be28a6 100644
|
||||||
|
--- a/src/libstore/build/worker.cc
|
||||||
|
+++ b/src/libstore/build/worker.cc
|
||||||
|
@@ -160,7 +160,10 @@ void Worker::goalFinished(GoalPtr goal, Goal::Finished & f)
|
||||||
|
|
||||||
|
waiting->trace(fmt("waitee '%s' done; %d left", goal->name, waiting->waitees.size()));
|
||||||
|
|
||||||
|
- if (f.result != Goal::ecSuccess) ++waiting->nrFailed;
|
||||||
|
+ if (f.result != Goal::ecSuccess) {
|
||||||
|
+ ++waiting->nrFailed;
|
||||||
|
+ warn("Waiter %s experienced non-success of waitee %s with result %d", waiting->getName(), goal->getName(), f.result);
|
||||||
|
+ }
|
||||||
|
if (f.result == Goal::ecNoSubstituters) ++waiting->nrNoSubstituters;
|
||||||
|
if (f.result == Goal::ecIncompleteClosure) ++waiting->nrIncompleteClosure;
|
||||||
|
|
||||||
|
--
|
||||||
|
2.44.1
|
||||||
|
|
22
modules/lix-bug-details-pls/default.nix
Normal file
22
modules/lix-bug-details-pls/default.nix
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
{ ... }:
|
||||||
|
{
|
||||||
|
# jade: this exists because of a Lix bug that has me losing my damn mind and we really cannot debug it without either:
|
||||||
|
# * debug logs (infeasible. they are way too spammy)
|
||||||
|
# * patching lix (well look where we are)
|
||||||
|
#
|
||||||
|
# I don't really think it's necessarily appropriate to log at info level when
|
||||||
|
# a derivation fails on `main`, so here we have a yolopatch to get the damn
|
||||||
|
# thing in the log.
|
||||||
|
#
|
||||||
|
# I suspect it is a race condition with the garbage collector.
|
||||||
|
nixpkgs.overlays = [
|
||||||
|
(final: prev: {
|
||||||
|
lix = prev.lix.overrideAttrs (old: {
|
||||||
|
patches = (old.patches or [ ]) ++ [
|
||||||
|
# This patch doesn't apply anymore.
|
||||||
|
# ./0001-wip-complain-about-failing-goals-at-warn-level.patch
|
||||||
|
];
|
||||||
|
});
|
||||||
|
})
|
||||||
|
];
|
||||||
|
}
|
|
@ -1,7 +1,6 @@
|
||||||
{ lib
|
{ lib
|
||||||
, config
|
, config
|
||||||
, pkgs
|
, pkgs
|
||||||
, inputs
|
|
||||||
, ...
|
, ...
|
||||||
}:
|
}:
|
||||||
|
|
||||||
|
@ -36,6 +35,7 @@ in
|
||||||
|
|
||||||
# Avoid weird failures for builders.
|
# Avoid weird failures for builders.
|
||||||
services.openssh.settings.MaxStartups = 100;
|
services.openssh.settings.MaxStartups = 100;
|
||||||
|
services.openssh.settings.MaxSessions = 100;
|
||||||
|
|
||||||
# Memory accounting techniques
|
# Memory accounting techniques
|
||||||
systemd.services.nix-daemon.serviceConfig = {
|
systemd.services.nix-daemon.serviceConfig = {
|
||||||
|
@ -57,9 +57,6 @@ in
|
||||||
# Randomize GC to avoid thundering herd effects.
|
# Randomize GC to avoid thundering herd effects.
|
||||||
gc.randomizedDelaySec = "1800";
|
gc.randomizedDelaySec = "1800";
|
||||||
|
|
||||||
# A much better choice.
|
|
||||||
package = pkgs.lix;
|
|
||||||
|
|
||||||
# should be enough?
|
# should be enough?
|
||||||
nrBuildUsers = 128;
|
nrBuildUsers = 128;
|
||||||
|
|
||||||
|
|
|
@ -1,36 +0,0 @@
|
||||||
{
|
|
||||||
programs.ssh.extraConfig = ''
|
|
||||||
Host telecom-bastion
|
|
||||||
HostName ssh.enst.fr
|
|
||||||
User jmalka
|
|
||||||
IdentityFile /home/luj/.ssh/id_ed25519
|
|
||||||
|
|
||||||
Host lame11
|
|
||||||
Hostname lame11.enst.fr
|
|
||||||
User nix-remote-builder
|
|
||||||
ProxyJump telecom-bastion
|
|
||||||
IdentityFile /home/luj/.ssh/id_ed25519
|
|
||||||
Host lame10
|
|
||||||
Hostname lame10.enst.fr
|
|
||||||
User nix-remote-builder
|
|
||||||
ProxyJump telecom-bastion
|
|
||||||
IdentityFile /home/luj/.ssh/id_ed25519
|
|
||||||
Host lame12
|
|
||||||
Hostname lame12.enst.fr
|
|
||||||
User nix-remote-builder
|
|
||||||
ProxyJump telecom-bastion
|
|
||||||
IdentityFile /home/luj/.ssh/id_ed25519
|
|
||||||
Host lame16
|
|
||||||
Hostname lame16.enst.fr
|
|
||||||
User nix-remote-builder
|
|
||||||
ProxyJump telecom-bastion
|
|
||||||
IdentityFile /home/luj/.ssh/id_ed25519
|
|
||||||
Host lame17
|
|
||||||
Hostname lame17.enst.fr
|
|
||||||
User nix-remote-builder
|
|
||||||
ProxyJump telecom-bastion
|
|
||||||
IdentityFile /home/luj/.ssh/id_ed25519
|
|
||||||
|
|
||||||
'';
|
|
||||||
|
|
||||||
}
|
|
|
@ -18,12 +18,12 @@ in
|
||||||
openssh.authorizedKeys.keyFiles = [ ./keys/raito.keys ];
|
openssh.authorizedKeys.keyFiles = [ ./keys/raito.keys ];
|
||||||
};
|
};
|
||||||
|
|
||||||
# Julien Malka
|
# Luj
|
||||||
luj = {
|
luj = {
|
||||||
isNormalUser = true;
|
isNormalUser = true;
|
||||||
home = "/home/luj";
|
home = "/home/luj";
|
||||||
extraGroups = extraGroups ++ [ "production-hydra-db" ];
|
extraGroups = extraGroups ++ [ "production-hydra-db" ];
|
||||||
shell = "/run/current-system/sw/bin/zsh";
|
shell = "/run/current-system/sw/bin/bash";
|
||||||
uid = 1001;
|
uid = 1001;
|
||||||
openssh.authorizedKeys.keyFiles = [ ./keys/luj.keys ];
|
openssh.authorizedKeys.keyFiles = [ ./keys/luj.keys ];
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,15 +1,3 @@
|
||||||
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIM9Uzb7szWlux7HuxLZej9cBR5MhLz/vaAPPfSoozt2k
|
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGa+7n7kNzb86pTqaMn554KiPrkHRGeTJ0asY1NjSbpr julien@tower
|
||||||
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHoYi9YFzovZfwrY3BUA3QqcyBE8gfNTncbs3qqkLbyY
|
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIADCpuBL/kSZShtXD6p/Nq9ok4w1DnlSoxToYgdOvUqo julien@fischer
|
||||||
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDCKfPoMNrnyNWH6J1OvQ+n1rvSS9Sc2iZf6E1JQC+L4
|
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMAa0wll9ildhgPiV0DhgJXXtw3TQr5VkNxxxPspHSbX julien@gallifrey
|
||||||
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIESMWr29i3rhj32oLV3DKe57YI+jvNaKjZhhpq6dEjsn
|
|
||||||
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJOCKgHRHAJDSgKqYNfWboL04mnEOM0m0K3TGxBhBNDR
|
|
||||||
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOpGHx430EpJmbtJc8+lF1CpQ1gXeHT9OeZ08O8yzohF
|
|
||||||
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEaCGndojnmS5IoqHVMEPRfKuBZotMyqo7wNkAZJWigp
|
|
||||||
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILxfFq8wx5Bet5Q0gI28/lc9ryYYFQelpZdPPdzxGBbA
|
|
||||||
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGa+7n7kNzb86pTqaMn554KiPrkHRGeTJ0asY1NjSbpr
|
|
||||||
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILKIDLmQQ+P+jE4zVRpdVp8fmYEe4nzPDqYZt6A4eyIi
|
|
||||||
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAkj2xsN7Qt/Ew2QO+HiF2yOjXPRucZ3SbIdPDLJoh22
|
|
||||||
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDMBW7rTtfZL9wtrpCVgariKdpN60/VeAzXkh9w3MwbO
|
|
||||||
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCUt5I3IgONzYsMOFnRXtvR/uLXlIs6oWsCmh6YGgnpGD4M9lFdoYAOeC1faQUnP66sNs6AoacrGlPZ1UkVUqYEoIr2hiNCDRzzLCQ2J/sSaw7Hv0PKT7MWMo8R076M3TrdunCchBJI1noez3waM9aL4b/iYVhxym28ET55QrWjyMQfZL9PXzOKZatNVcK8AmdtSbI+pFrm/tTZPa321drm9PHOo9CL+lG4YmVZcXa0bVfVtk1GXlWwNpCj2ExLmbF1rRpAa05khfnbg3sBSklwf5NRXj11KneodKRF81ji7MtBhIIfoEXSYht7yspdkkS9e9mv16VGV+2ziM8zG3MK/iUq7fg5ksN54D3DNrd9iI5WjQZsLUrK0ypxO2NtvupWGYt3rCyKA/QvynbxOWFp6cy3Evej142hsfbiOcPIgCtGdHIBevp+KmPxkHBqsJPBqb3Y7nOMT1/ggDMtvHZEZJjEI2D2RjZNEXGbq63OPAqEkgmecW0cXlrjLEGhF2E=
|
|
||||||
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIADCpuBL/kSZShtXD6p/Nq9ok4w1DnlSoxToYgdOvUqo
|
|
||||||
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC0yxKgDt5IsroNxjqRYpbt7F3m8kewrnFql9PRSQgUMoAmLjIdtaNolfTGwPnb+mkhfh1wac7+SdoFilVAWfxdcBpkt6smou0EG4ek6nRQDV+MceZb/Yaroj6qDZ0XdSnirCIXvVSLAs+z+rwRNVP/vPr+PZc7eRCjeTWZftjIAF0XPL09raDIpdZZKrWKOk7ieWV1NedEf72HvD720mmyEpR2z8iFKcVbZlVmC1KAnfozpX22nk+i9LLuwpFWdb8cDpObuu7OoGVPvX5h0TxI+6vH+9+u657G0AyHyJrBdbMzJDFdRolWYCzUo5G+2deBlY1VMJ36oNx17xkd4vBh
|
|
||||||
|
|
Loading…
Reference in a new issue