144 lines
4.7 KiB
Nix
144 lines
4.7 KiB
Nix
{
|
|
description = "Alo cluster";
|
|
|
|
inputs = {
|
|
deploy-rs.url = "github:serokell/deploy-rs";
|
|
deploy-rs.inputs.nixpkgs.follows = "nixpkgs";
|
|
impermanence.url = "github:nix-community/impermanence";
|
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-24.05";
|
|
nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixos-unstable";
|
|
disko.url = "github:nix-community/disko";
|
|
disko.inputs.nixpkgs.follows = "nixpkgs";
|
|
ppetru-home = {
|
|
url = "git+file:/home/ppetru/ppetru-home";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
};
|
|
|
|
outputs = { self, nixpkgs, nixpkgs-unstable, deploy-rs, disko, ppetru-home, ... }@inputs:
|
|
let
|
|
inherit (self);
|
|
|
|
overlay-unstable = final: prev: {
|
|
unstable = nixpkgs-unstable.legacyPackages.${prev.system};
|
|
};
|
|
|
|
mkNixos = system: modules: nixpkgs.lib.nixosSystem {
|
|
system = system;
|
|
modules = [
|
|
({ config, pkgs, ... }: {
|
|
nixpkgs.overlays = [ overlay-unstable ];
|
|
nixpkgs.config.allowUnfree = true;
|
|
})
|
|
disko.nixosModules.disko
|
|
] ++ modules;
|
|
specialArgs = { inherit inputs self; };
|
|
};
|
|
|
|
pkgsFor = system: import nixpkgs {
|
|
inherit system;
|
|
overlays = [ overlay-unstable ];
|
|
};
|
|
|
|
deployPkgsFor = system: import nixpkgs {
|
|
inherit system;
|
|
overlays = [
|
|
overlay-unstable
|
|
deploy-rs.overlay
|
|
(self: super: {
|
|
deploy-rs = {
|
|
inherit (pkgsFor system) deploy-rs;
|
|
lib = super.deploy-rs.lib;
|
|
};
|
|
})
|
|
];
|
|
};
|
|
in {
|
|
nixosConfigurations = {
|
|
c1 = mkNixos "x86_64-linux" [ ./hosts/c1 ];
|
|
c2 = mkNixos "x86_64-linux" [ ./hosts/c2 ];
|
|
c3 = mkNixos "x86_64-linux" [ ./hosts/c3 ];
|
|
nix-dev = mkNixos "x86_64-linux" [ ./hosts/nix-dev ];
|
|
alo-cloud-1 = mkNixos "aarch64-linux" [./hosts/alo-cloud-1 ];
|
|
zippy = mkNixos "x86_64-linux" [ ./hosts/zippy ];
|
|
chilly = mkNixos "x86_64-linux" [ ./hosts/chilly ];
|
|
};
|
|
|
|
deploy = {
|
|
nodes = {
|
|
c1 = {
|
|
hostname = "c1";
|
|
profiles.system = {
|
|
user = "root";
|
|
path = (deployPkgsFor "x86_64-linux").deploy-rs.lib.activate.nixos self.nixosConfigurations.c1;
|
|
};
|
|
};
|
|
c2 = {
|
|
hostname = "c2";
|
|
profiles.system = {
|
|
user = "root";
|
|
path = (deployPkgsFor "x86_64-linux").deploy-rs.lib.activate.nixos self.nixosConfigurations.c2;
|
|
};
|
|
};
|
|
c3 = {
|
|
hostname = "c3";
|
|
profiles.system = {
|
|
user = "root";
|
|
path = (deployPkgsFor "x86_64-linux").deploy-rs.lib.activate.nixos self.nixosConfigurations.c3;
|
|
};
|
|
};
|
|
nix-dev = {
|
|
hostname = "nix-dev";
|
|
profiles = {
|
|
system = {
|
|
user = "root";
|
|
path = (deployPkgsFor "x86_64-linux").deploy-rs.lib.activate.nixos self.nixosConfigurations.nix-dev;
|
|
};
|
|
ppetru = {
|
|
user = "ppetru";
|
|
path = (deployPkgsFor "x86_64-linux").deploy-rs.lib.activate.home-manager ppetru-home.homeConfigurations.ppetru;
|
|
};
|
|
};
|
|
};
|
|
alo-cloud-1 = {
|
|
hostname = "49.13.163.72";
|
|
profiles = {
|
|
system = {
|
|
user = "root";
|
|
path = (deployPkgsFor "aarch64-linux").deploy-rs.lib.activate.nixos self.nixosConfigurations.alo-cloud-1;
|
|
};
|
|
};
|
|
};
|
|
zippy = {
|
|
hostname = "zippy";
|
|
profiles = {
|
|
system = {
|
|
user = "root";
|
|
path = (deployPkgsFor "x86_64-linux").deploy-rs.lib.activate.nixos self.nixosConfigurations.zippy;
|
|
};
|
|
ppetru = {
|
|
user = "ppetru";
|
|
path = (deployPkgsFor "x86_64-linux").deploy-rs.lib.activate.home-manager ppetru-home.homeConfigurations.ppetru;
|
|
};
|
|
};
|
|
};
|
|
chilly = {
|
|
hostname = "chilly";
|
|
profiles = {
|
|
system = {
|
|
user = "root";
|
|
path = (deployPkgsFor "x86_64-linux").deploy-rs.lib.activate.nixos self.nixosConfigurations.chilly;
|
|
};
|
|
ppetru = {
|
|
user = "ppetru";
|
|
path = (deployPkgsFor "x86_64-linux").deploy-rs.lib.activate.home-manager ppetru-home.homeConfigurations.ppetru;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
checks = builtins.mapAttrs (system: deployLib: deployLib.deployChecks self.deploy) deploy-rs.lib;
|
|
};
|
|
}
|