infra/flake.nix

94 lines
2.5 KiB
Nix
Raw Normal View History

# SPDX-FileCopyrightText: 2024 Auxolotl Infrastructure Contributors
#
# SPDX-License-Identifier: GPL-3.0-only
2024-05-04 21:20:45 +00:00
{
description = "Auxolotl infrastructure.";
inputs = {
2024-08-20 22:09:43 +00:00
nixpkgs.url = "github:nixos/nixpkgs/nixos-24.05";
2024-05-07 03:36:54 +00:00
unstable.url = "github:nixos/nixpkgs/nixos-unstable";
2024-05-04 21:20:45 +00:00
snowfall-lib = {
url = "github:snowfallorg/lib";
2024-05-04 21:20:45 +00:00
inputs.nixpkgs.follows = "nixpkgs";
};
agenix.url = "github:ryantm/agenix";
agenix-rekey = {
url = "github:oddlama/agenix-rekey";
inputs.nixpkgs.follows = "nixpkgs";
};
2024-05-04 21:20:45 +00:00
auxolotl-website = {
url = "git+https://git.auxolotl.org/auxolotl/website";
2024-05-04 21:20:45 +00:00
inputs.nixpkgs.follows = "nixpkgs";
};
2024-05-07 03:36:54 +00:00
buildbot-nix.url = "git+https://git.auxolotl.org/auxolotl/buildbot-nix.git";
# Do not override nixpkgs in buildbot-nix (see https://github.com/nix-community/buildbot-nix)
clicks = {
url = "git+https://git.clicks.codes/Infra/NixFiles.git";
inputs = {
deploy-rs.follows = "deploy-rs";
nixpkgs.follows = "nixpkgs";
snowfall-lib.follows = "snowfall-lib";
unstable.follows = "unstable";
};
};
2024-05-07 03:36:54 +00:00
deploy-rs = {
url = "github:serokell/deploy-rs";
inputs.nixpkgs.follows = "nixpkgs";
};
2024-05-04 21:20:45 +00:00
};
2024-05-07 03:36:54 +00:00
outputs = inputs: let
lib = inputs.snowfall-lib.mkLib {
2024-05-04 21:20:45 +00:00
inherit inputs;
src = ./.;
2024-05-07 03:36:54 +00:00
snowfall = {
namespace = "auxolotl";
};
};
in
lib.mkFlake {
overlays = [
inputs.auxolotl-website.overlays.default
inputs.agenix-rekey.overlays.default
];
systems.modules.nixos = [
inputs.agenix.nixosModules.default
inputs.agenix-rekey.nixosModules.default
inputs.buildbot-nix.nixosModules.buildbot-master
inputs.buildbot-nix.nixosModules.buildbot-worker
] ++ (lib.attrsets.attrValues inputs.clicks.nixosModules);
2024-05-07 03:36:54 +00:00
deploy = lib.mkDeploy {
inherit (inputs) self;
2024-05-21 20:38:54 +00:00
overrides = {
axol.hostname = "137.184.177.239";
baxter.hostname = "209.38.149.197";
2024-08-20 22:09:43 +00:00
codex.hostname = "64.23.153.98";
2024-05-21 20:38:54 +00:00
};
2024-05-07 03:36:54 +00:00
};
agenix-rekey = inputs.agenix-rekey.configure {
userFlake = inputs.self // { outPath = lib.pipe "" [
lib.snowfall.fs.get-snowfall-file
(lib.strings.removeSuffix "/")
]; };
nodes = inputs.self.nixosConfigurations;
};
2024-05-07 03:36:54 +00:00
checks =
builtins.mapAttrs
(system: deploy-lib: deploy-lib.deployChecks inputs.self.deploy)
inputs.deploy-rs.lib;
2024-05-04 21:20:45 +00:00
};
}