update
This commit is contained in:
parent
33ee2f5760
commit
f7afa33a13
14 changed files with 319 additions and 178 deletions
170
flake.nix
170
flake.nix
|
|
@ -12,6 +12,8 @@
|
|||
sops-nix.url = "github:Mic92/sops-nix";
|
||||
sops-nix.inputs.nixpkgs.follows = "nixpkgs";
|
||||
impermanence.url = "github:nix-community/impermanence";
|
||||
colmena.url = "github:zhaofengli/colmena/release-0.4.x";
|
||||
colmena.inputs.nixpkgs.follows = "nixpkgs";
|
||||
|
||||
# software
|
||||
lanzaboote = {
|
||||
|
|
@ -37,7 +39,7 @@
|
|||
mtxclient.flake = false;
|
||||
nix-ci.url = "git+https://git.xyno.systems/xyno/nix-ci";
|
||||
nix-ci.inputs.nixpkgs.follows = "nixpkgs";
|
||||
|
||||
|
||||
nix-index-database.url = "github:nix-community/nix-index-database";
|
||||
nix-index-database.inputs.nixpkgs.follows = "nixpkgs";
|
||||
|
||||
|
|
@ -62,6 +64,7 @@
|
|||
self,
|
||||
nixpkgs,
|
||||
nixpkgs-master,
|
||||
colmena,
|
||||
...
|
||||
}:
|
||||
let
|
||||
|
|
@ -102,71 +105,110 @@
|
|||
inputs.nix-index-database.nixosModules.nix-index
|
||||
]
|
||||
++ (import ./modules/module-list.nix);
|
||||
in
|
||||
{
|
||||
overlays.default =
|
||||
final: prev:
|
||||
(
|
||||
{
|
||||
unstable = import nixpkgs-master {
|
||||
system = prev.system;
|
||||
config.allowUnfree = true;
|
||||
};
|
||||
}
|
||||
// (import ./overlays inputs final prev)
|
||||
);
|
||||
|
||||
nixosConfigurations = lib.xyno.loadInstances ./instances (modules);
|
||||
devShells."x86_64-linux".default =
|
||||
let
|
||||
pkgs = genPkgs "x86_64-linux";
|
||||
in
|
||||
pkgs.mkShell {
|
||||
packages = [
|
||||
pkgs.nixfmt-rfc-style
|
||||
pkgs.nil
|
||||
pkgs.sops
|
||||
(pkgs.runCommand "nix-config-bin" { } ''
|
||||
mkdir -p $out/bin
|
||||
cp ${./bin}/* $out/bin
|
||||
'')
|
||||
];
|
||||
SOPS_CONFIG = (pkgs.callPackage ./sops.nix { instanceConfigs = lib.xyno.getDirs ./instances; });
|
||||
|
||||
};
|
||||
hydraJobs.systems = lib.foldl' lib.recursiveUpdate { } [
|
||||
(builtins.mapAttrs (
|
||||
host: config:
|
||||
lib.foldl' lib.recursiveUpdate { } ([
|
||||
{
|
||||
inherit (config.config.system.build) toplevel;
|
||||
kernel = config.config.boot.kernelPackages.kernel;
|
||||
}
|
||||
])
|
||||
) self.nixosConfigurations)
|
||||
systems = [
|
||||
"x86_64-linux"
|
||||
"aarch64-linux"
|
||||
];
|
||||
hydraJobs.fods = {
|
||||
caddy = self.nixosConfigurations.ds9.config.services.caddy.package;
|
||||
};
|
||||
|
||||
packages."x86_64-linux" =
|
||||
forEachSystem = f: (map (x: f x) systems);
|
||||
importConfigs =
|
||||
n:
|
||||
map (x: {
|
||||
${x} = {nodes, ...}: {
|
||||
networking.hostName = x;
|
||||
imports = modules ++ [ (./instances/${x}) ];
|
||||
_module.args.otherNodes = lib.filterAttrs (n: v: n != x) nodes;
|
||||
};
|
||||
}) n;
|
||||
in
|
||||
lib.foldl' lib.recursiveUpdate { } (
|
||||
[
|
||||
{
|
||||
colmenaHive = colmena.lib.makeHive (
|
||||
lib.foldl' lib.recursiveUpdate
|
||||
{
|
||||
meta = {
|
||||
specialArgs = { inherit inputs; };
|
||||
nixpkgs = genPkgs "x86_64-linux";
|
||||
};
|
||||
deployment.privilegeEscalationCommand = [
|
||||
"run0"
|
||||
"--unit=colmena-apply"
|
||||
];
|
||||
}
|
||||
(importConfigs [
|
||||
"ds9"
|
||||
"picard"
|
||||
"theseus"
|
||||
])
|
||||
);
|
||||
overlays.default =
|
||||
final: prev:
|
||||
(
|
||||
{
|
||||
unstable = import nixpkgs-master {
|
||||
system = prev.system;
|
||||
config.allowUnfree = true;
|
||||
};
|
||||
}
|
||||
// (import ./overlays inputs final prev)
|
||||
);
|
||||
hydraJobs.systems = lib.foldl' lib.recursiveUpdate { } [
|
||||
(builtins.mapAttrs (
|
||||
host: config:
|
||||
lib.foldl' lib.recursiveUpdate { } ([
|
||||
{
|
||||
inherit (config.config.system.build) toplevel;
|
||||
kernel = config.config.boot.kernelPackages.kernel;
|
||||
}
|
||||
])
|
||||
) self.colmenaHive.nodes)
|
||||
];
|
||||
hydraJobs.fods = {
|
||||
caddy = self.nixosConfigurations.ds9.config.services.caddy.package;
|
||||
};
|
||||
}
|
||||
]
|
||||
++ (forEachSystem (
|
||||
system:
|
||||
let
|
||||
pkgs = genPkgs "x86_64-linux";
|
||||
pkgs = genPkgs system;
|
||||
in
|
||||
{
|
||||
nix = pkgs.unstable.lixPackageSets.latest.lix;
|
||||
inherit (pkgs) nix-fast-build attic-client jq nix-ci;
|
||||
};
|
||||
checks."x86_64-linux"."nixos" =
|
||||
let
|
||||
pkgs = genPkgs "x86_64-linux";
|
||||
in
|
||||
pkgs.testers.runNixOSTest {
|
||||
imports = (import ./modules/test-list.nix);
|
||||
node.specialArgs = { inherit inputs; };
|
||||
extraBaseModules.imports = modules;
|
||||
extraBaseModules.services.openssh.enable = true;
|
||||
node.pkgsReadOnly = false;
|
||||
};
|
||||
};
|
||||
|
||||
devShells.${system}.default = pkgs.mkShell {
|
||||
packages = [
|
||||
pkgs.nixfmt-rfc-style
|
||||
pkgs.nil
|
||||
pkgs.sops
|
||||
(pkgs.runCommand "nix-config-bin" { } ''
|
||||
mkdir -p $out/bin
|
||||
cp ${./bin}/* $out/bin
|
||||
'')
|
||||
pkgs.colmena
|
||||
]
|
||||
++ (lib.attrValues self.packages.${system});
|
||||
SOPS_CONFIG = (pkgs.callPackage ./sops.nix { instanceConfigs = lib.xyno.getDirs ./instances; });
|
||||
|
||||
};
|
||||
|
||||
packages.${system} = {
|
||||
nix = pkgs.unstable.lixPackageSets.latest.lix;
|
||||
inherit (pkgs)
|
||||
nix-fast-build
|
||||
attic-client
|
||||
jq
|
||||
nix-ci
|
||||
;
|
||||
};
|
||||
checks.${system}."nixos" = pkgs.testers.runNixOSTest {
|
||||
imports = (import ./modules/test-list.nix);
|
||||
node.specialArgs = { inherit inputs; };
|
||||
extraBaseModules.imports = modules;
|
||||
extraBaseModules.services.openssh.enable = true;
|
||||
node.pkgsReadOnly = false;
|
||||
};
|
||||
}
|
||||
))
|
||||
);
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue