{ description = "Templates Helm deployments using Nix"; inputs = { nixpkgs.url = "github:NixOS/nixpkgs"; flake-utils.url = "github:numtide/flake-utils"; haumea = { url = "github:nix-community/haumea/v0.2.2"; inputs.nixpkgs.follows = "nixpkgs"; }; nix-kube-generators.url = "github:farcaller/nix-kube-generators"; nixhelm = { url = "github:farcaller/nixhelm"; inputs.nixpkgs.follows = "nixpkgs"; }; }; outputs = inputs @ { self, flake-utils, haumea, nix-kube-generators, nixpkgs, nixhelm, }: { templates.default = { path = ./templates/default; description = "Example Turboprop flake"; }; } // flake-utils.lib.eachDefaultSystem (system: let pkgs = import nixpkgs {inherit system;}; kubelib = nix-kube-generators.lib {inherit pkgs;}; nixhelmCharts = nixhelm.chartsDerivations.${system}; lib = import ./lib {inherit kubelib pkgs;}; mkCharts = src: haumea.lib.load { inherit src; loader = {...}: p: lib.fetchers.helmChart (import p); transformer = haumea.lib.transformers.liftDefault; }; in { lib = lib // { mkDerivation = { charts, userData ? {}, }: (import self { inherit charts haumea lib pkgs userData; }) .mkDerivation; inherit mkCharts; mkChartsWithNixhelm = src: pkgs.lib.attrsets.recursiveUpdate nixhelmCharts (mkCharts src); }; }); }