Generate hosts for hydra
This commit is contained in:
parent
10de1e428a
commit
c1a2aa1d63
|
@ -38,16 +38,16 @@
|
|||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1689679375,
|
||||
"narHash": "sha256-LHUC52WvyVDi9PwyL1QCpaxYWBqp4ir4iL6zgOkmcb8=",
|
||||
"lastModified": 1690538549,
|
||||
"narHash": "sha256-FfScFHxidupVGPw9BrQOHz/SoFLRjoNmVC5ymS+g8xU=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "684c17c429c42515bafb3ad775d2a710947f3d67",
|
||||
"rev": "de5ca86149b0c4ff8bf69782cd25896fff0254e1",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-unstable",
|
||||
"ref": "nixos-unstable-small",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
|
|
44
flake.nix
44
flake.nix
|
@ -1,13 +1,15 @@
|
|||
{
|
||||
inputs = {
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable-small";
|
||||
nixos-generators = {
|
||||
url = "github:nix-community/nixos-generators";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
};
|
||||
|
||||
outputs = { self, nixpkgs, nixos-generators, ... }: {
|
||||
outputs = { self, nixpkgs, nixos-generators, ... }@inputs: let
|
||||
helper = (import ./helper.nix) inputs;
|
||||
in {
|
||||
hosts = {
|
||||
hydra = {
|
||||
site = "vs";
|
||||
|
@ -32,7 +34,7 @@
|
|||
};
|
||||
};
|
||||
|
||||
generateColmenaHost = name: host : {
|
||||
generateColmenaHost = name: host: {
|
||||
deployment = {
|
||||
targetHost = "${name}.${host.site}.grzb.de";
|
||||
targetUser = "colmena-deploy";
|
||||
|
@ -43,7 +45,7 @@
|
|||
./configuration/proxmox-vm
|
||||
./configuration/proxmox-vm/hardware-configuration.nix
|
||||
./hosts/${name}
|
||||
];
|
||||
] ++ nixpkgs.lib.optional (builtins.pathExists ./hosts/${name}/secrets.nix) ./hosts/${name}/secrets.nix;
|
||||
};
|
||||
|
||||
colmena = {
|
||||
|
@ -54,18 +56,35 @@
|
|||
};
|
||||
} // builtins.mapAttrs (self.generateColmenaHost) self.hosts;
|
||||
|
||||
hydraJobs = {
|
||||
nixConfigurations.nitter = let system = "x86_64-linux";
|
||||
in nixpkgs.lib.nixosSystem {
|
||||
inherit system;
|
||||
nixosConfigurations = nixpkgs.lib.mapAttrs (name: config: let
|
||||
nodeNixpkgs = self.outputs.colmena.meta.nodeNixpkgs.${name} or self.outputs.colmena.meta.nixpkgs;
|
||||
nodeNixos = import (nodeNixpkgs.path + "/nixos/lib/eval-config.nix");
|
||||
in nodeNixos {
|
||||
modules = [
|
||||
./configuration/common
|
||||
./configuration/proxmox-vm
|
||||
./hosts/nitter
|
||||
#self.outputs.colmena.defaults
|
||||
config
|
||||
#inputs.colmena.nixosModules.deploymentOptions
|
||||
{
|
||||
_module.args.name = nixpkgs.lib.mkForce name;
|
||||
_module.args.nodes = self.outputs.nixosConfigurations;
|
||||
#nixpkgs.overlays = nixpkgs.lib.attrValues self.overlays;
|
||||
}
|
||||
];
|
||||
};
|
||||
inherit (nodeNixpkgs) system;
|
||||
}
|
||||
) (builtins.removeAttrs self.outputs.colmena ["meta" "defaults"]);
|
||||
|
||||
hydraJobs = {
|
||||
nixosConfigurations = nixpkgs.lib.mapAttrs (_: config: config.config.system.build.toplevel) self.outputs.nixosConfigurations;
|
||||
};
|
||||
|
||||
/*
|
||||
nixosConfigurations = (builtins.mapAttrs (helper.mapToNixosConfigurations) self.hosts);
|
||||
hydraJobs = {
|
||||
nixConfigurations = helper.buildHosts self.nixosConfigurations;
|
||||
};
|
||||
*/
|
||||
|
||||
# Generate a base VM image for Proxmox with `nix build .#base-proxmox`
|
||||
packages.x86_64-linux = {
|
||||
base-proxmox = nixos-generators.nixosGenerate {
|
||||
|
@ -78,5 +97,6 @@
|
|||
format = "proxmox";
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
}
|
||||
|
|
25
helper.nix
Normal file
25
helper.nix
Normal file
|
@ -0,0 +1,25 @@
|
|||
{ nixpkgs, ... }@inputs:
|
||||
rec {
|
||||
generateNixosSystem = name: {
|
||||
system ? "x86_64-linux",
|
||||
group ? null,
|
||||
modules ? [],
|
||||
site
|
||||
}: let
|
||||
localNixpkgs = nixpkgs.lib.attrByPath [ "nixpkgs-${name}" ] nixpkgs inputs;
|
||||
in localNixpkgs.lib.nixosSystem {
|
||||
system = system;
|
||||
modules = modules ++ [
|
||||
./configuration/common
|
||||
./configuration/proxmox-vm
|
||||
./configuration/proxmox-vm/hardware-configuration.nix
|
||||
./hosts/${name}
|
||||
];
|
||||
};
|
||||
|
||||
mapToNixosConfigurations = name: host: generateNixosSystem name host;
|
||||
|
||||
filterUnderscore = hosts: (nixpkgs.lib.filterAttrs (name: host: (builtins.substring 0 1 name) != "_") hosts);
|
||||
|
||||
buildHosts = hosts: builtins.mapAttrs (name: host: host.config.system.build.toplevel) (filterUnderscore hosts);
|
||||
}
|
|
@ -2,7 +2,6 @@
|
|||
{
|
||||
imports = [
|
||||
./configuration.nix
|
||||
./secrets.nix
|
||||
./hydra.nix
|
||||
./nix-serve.nix
|
||||
./nginx.nix
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
{
|
||||
imports = [
|
||||
./configuration.nix
|
||||
./secrets.nix
|
||||
./coturn.nix
|
||||
];
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue