infra/flake.nix

69 lines
1.5 KiB
Nix

{
description = "computer systems infrastructure";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-24.05";
flake-parts.url = "github:hercules-ci/flake-parts";
sops-nix.url = "github:Mic92/sops-nix";
sops-nix.inputs.nixpkgs.follows = "nixpkgs";
disko.url = "github:nix-community/disko";
disko.inputs.nixpkgs.follows = "nixpkgs";
deploy-rs.url = "github:serokell/deploy-rs";
deploy-rs.inputs.nixpkgs.follows = "nixpkgs";
impermanence.url = "github:nix-community/impermanence";
min-rip.url = "git+ssh://git@git.min.rip/min/min.rip.git";
min-rip.flake = false;
breeze.url = "git+https://git.min.rip/min/breeze.git";
breeze.inputs.nixpkgs.follows = "nixpkgs";
};
outputs = inputs @ {self, ...}:
inputs.flake-parts.lib.mkFlake {inherit inputs;} {
flake = let
hosts = import ./nixos/hosts {inherit inputs;};
in {
inherit (hosts) nixosConfigurations deploy;
};
systems = ["x86_64-linux"];
perSystem = {
pkgs,
system,
...
}: {
devShells.default = pkgs.mkShell {
packages = with pkgs; [
sops
ssh-to-age
# not included: age, gpg, pcscd, etc.
deploy-rs
nixos-anywhere
argocd
kubectl
kubernetes-helm
minikube
cilium-cli
hubble
yamllint
nil
alejandra
statix
deadnix
];
};
};
};
}