171 lines
5.0 KiB
Nix
171 lines
5.0 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";
|
|
home-manager = {
|
|
url = "github:nix-community/home-manager/release-24.05";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
nixvim = {
|
|
url = "github:nix-community/nixvim";
|
|
inputs.nixpkgs.follows = "nixpkgs-unstable";
|
|
inputs.home-manager.follows = "home-manager";
|
|
};
|
|
};
|
|
|
|
outputs =
|
|
{
|
|
self,
|
|
nixpkgs,
|
|
nixpkgs-unstable,
|
|
deploy-rs,
|
|
disko,
|
|
...
|
|
}@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
|
|
inputs.home-manager.nixosModules.home-manager
|
|
{
|
|
home-manager = {
|
|
useGlobalPkgs = true;
|
|
useUserPackages = true;
|
|
users.ppetru = {
|
|
imports = [
|
|
(inputs.impermanence + "/home-manager.nix")
|
|
inputs.nixvim.homeManagerModules.nixvim
|
|
./home
|
|
];
|
|
};
|
|
};
|
|
}
|
|
] ++ 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;
|
|
};
|
|
};
|
|
};
|
|
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;
|
|
};
|
|
};
|
|
};
|
|
chilly = {
|
|
hostname = "chilly";
|
|
profiles = {
|
|
system = {
|
|
user = "root";
|
|
path = (deployPkgsFor "x86_64-linux").deploy-rs.lib.activate.nixos self.nixosConfigurations.chilly;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
checks = builtins.mapAttrs (system: deployLib: deployLib.deployChecks self.deploy) deploy-rs.lib;
|
|
|
|
formatter.x86_64-linux = nixpkgs.legacyPackages.x86_64-linux.nixfmt-rfc-style;
|
|
};
|
|
}
|