kubenix/default.nix
2019-03-05 20:57:55 +01:00

30 lines
711 B
Nix

{ pkgs ? import <nixpkgs> {}, lib ? pkgs.lib }:
let
lib' = lib.extend (lib: self: import ./lib.nix { inherit lib pkgs; });
specialArgs' = {
inherit kubenix;
};
evalKubernetesModules = {module ? null, modules ? [module], specialArgs ? specialArgs', ...}@attrs: let
attrs' = lib.filterAttrs (n: _: n != "module") attrs;
in lib'.evalModules (attrs' // {
inherit specialArgs modules;
args = {
inherit pkgs;
name = "default";
};
});
buildResources = args:
(evalKubernetesModules args).config.kubernetes.generated;
modules = import ./modules;
kubenix = {
inherit evalKubernetesModules buildResources kubenix;
lib = lib';
} // modules;
in kubenix