1
0
Fork 0
mirror of https://git.sr.ht/~goorzhel/turboprop synced 2024-12-14 11:37:37 +00:00
turboprop/flake.nix

69 lines
1.8 KiB
Nix
Raw Normal View History

{
2023-11-28 06:16:02 +00:00
description = "Templates Helm deployments using Nix";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs";
flake-utils.url = "github:numtide/flake-utils";
2023-12-04 01:07:21 +00:00
haumea = {
url = "github:nix-community/haumea/v0.2.2";
inputs.nixpkgs.follows = "nixpkgs";
};
nixhelm = {
url = "github:farcaller/nixhelm";
inputs.nixpkgs.follows = "nixpkgs";
};
nix-kube-generators.url = "github:farcaller/nix-kube-generators";
};
outputs = inputs @ {
self,
flake-utils,
haumea,
nix-kube-generators,
nixhelm,
nixpkgs,
2023-12-04 01:07:21 +00:00
}:
flake-utils.lib.eachDefaultSystem (system: let
pkgs = import nixpkgs {inherit system;};
2023-11-15 06:55:56 +00:00
kubelib = nix-kube-generators.lib {inherit pkgs;};
lib = import ./lib {inherit kubelib pkgs;};
nixhelmCharts = nixhelm.chartsDerivations.${system};
mkCharts = src:
haumea.lib.load {
inherit src;
loader = {...}: p: lib.fetchers.helmChart (import p);
transformer = haumea.lib.transformers.liftDefault;
# TODO: split charts to own `.nix` files
# and remove this transformer
};
in {
inherit mkCharts;
# This may be used to generate the `charts` input to
# `turboprop.lib`, so filing this in `lib` would cause
# a catch-22.
mkChartsWithNixhelm = src:
pkgs.lib.attrsets.recursiveUpdate
nixhelmCharts
(mkCharts src);
# Can't file in lib for the same reason.
# I use this in my `userData`.
app-template = import src/app-template.nix {
charts = nixhelmCharts;
inherit lib pkgs;
};
lib = {
charts ? nixhelmCharts,
user ? {},
}:
import self {
inherit charts haumea lib pkgs user;
};
2023-12-04 01:07:21 +00:00
# TODO: make a template
formatter = pkgs.alejandra;
});
}