{ 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"; }; outputs = { self, nixpkgs, nixpkgs-unstable, deploy-rs, ... }@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; }) ] ++ modules; specialArgs = { inherit inputs self; }; }; 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 ]; }; deploy = { nodes = { c1 = { hostname = "c1"; profiles.system = { user = "root"; path = deploy-rs.lib.x86_64-linux.activate.nixos self.nixosConfigurations.c1; }; }; c2 = { hostname = "c2"; profiles.system = { user = "root"; path = deploy-rs.lib.x86_64-linux.activate.nixos self.nixosConfigurations.c2; }; }; c3 = { hostname = "c3"; profiles.system = { user = "root"; path = deploy-rs.lib.x86_64-linux.activate.nixos self.nixosConfigurations.c3; }; }; nix-dev = { hostname = "nix-dev"; profiles.system = { user = "root"; path = deploy-rs.lib.x86_64-linux.activate.nixos self.nixosConfigurations.nix-dev; }; }; alo-cloud-1 = { hostname = "49.13.163.72"; profiles.system = { user = "root"; path = deploy-rs.lib.aarch64-linux.activate.nixos self.nixosConfigurations.alo-cloud-1; }; }; zippy = { hostname = "zippy"; profiles.system = { user = "root"; path = deploy-rs.lib.x86_64-linux.activate.nixos self.nixosConfigurations.zippy; }; }; }; }; checks = builtins.mapAttrs (system: deployLib: deployLib.deployChecks self.deploy) deploy-rs.lib; }; }