{ inputs = { "cachix" = { flake = true; type = "github"; owner = "cachix"; repo = "cachix"; }; "devenv" = { flake = true; type = "github"; owner = "cachix"; repo = "devenv"; }; "flake-parts" = { flake = true; type = "github"; owner = "hercules-ci"; repo = "flake-parts"; }; "github-actions-nix" = { flake = true; type = "github"; owner = "synapdeck"; repo = "github-actions-nix"; }; "git-hooks-nix" = { flake = true; type = "github"; owner = "cachix"; repo = "git-hooks.nix"; }; "nixpkgs" = { flake = true; type = "github"; owner = "nixos"; repo = "nixpkgs"; ref = "nixos-unstable"; }; "treefmt-nix" = { flake = true; type = "github"; owner = "numtide"; repo = "treefmt-nix"; }; }; outputs = inputs @ { self, flake-parts, ... }: flake-parts.lib.mkFlake { inherit inputs self ; } { systems = [ "x86_64-linux" "aarch64-linux" "aarch64-darwin" ]; imports = [ inputs.treefmt-nix.flakeModule inputs.git-hooks-nix.flakeModule inputs.devenv.flakeModule inputs.github-actions-nix.flakeModule ./lib/flakeModules.nix ]; flake = { flakeModules = { default = ./lib/flakeModules.nix; }; }; perSystem = { config, pkgs, ... }: { devenv = { shells = { "default" = { enterShell = config.pre-commit.shellHook; devenv = { root = toString /home/hand7s/Projects/flake; }; packages = [ config.treefmt.build.wrapper ] ++ config.pre-commit.settings.enabledPackages ++ config.kubeClusters."test".toolchainPkgs; }; }; }; pre-commit = { check = { enable = true; }; settings = { enable = true; package = pkgs.prek; gitPackage = pkgs.git; hooks = { "alejandra" = { enable = true; settings = { verbosity = "quiet"; check = true; }; }; "deadnix" = { enable = true; settings = { edit = false; }; }; "statix" = { enable = true; }; }; }; }; kubeClusters = { "test" = { objects = [ { type = "talosObject"; content = { "controlplane.yaml" = { version = "v1alpha1"; debug = false; persist = true; machine = { type = "controlplane"; token = "abc123def456"; ca = { crt = "qUoOLPqZw4XVehCSe11VQV62SIbTSVmP8dy+hpVQkBQ="; key = "PF8jB7W4JQr7AIItDdILgKE19LseiCUkF7zyDBE9rl8="; }; }; }; }; } { type = "helmObject"; content = { name = "kube-prometheus-stack"; namespace = "monitoring"; chart = "prometheus-community/kube-prometheus-stack"; version = "45.0.0"; values = { grafana = { enabled = true; adminPassword = "prom-operator"; }; prometheus = { prometheusSpec = { scrapeInterval = "15s"; }; }; }; }; } { type = "helmfileObject"; content = { repositories = [ { name = "bitnami"; # lord forgive me url = "https://charts.bitnami.com"; } ]; releases = [ { name = "redis"; chart = "bitnami/redis"; values = [{sentinel = {enabled = true;};}]; } ]; }; } { type = "kubeObject"; content = { "pod.yaml" = { apiVersion = "v1"; kind = "Pod"; metadata.name = "nginx"; spec.containers = [ { name = "nginx"; image = "nginx:1.14.2"; } ]; }; }; } ]; }; }; }; }; }