feat(modules): add namespace option to module

This commit is contained in:
Jaka Hudoklin 2018-01-02 14:20:26 +01:00
parent 642a31b0d0
commit 208a80f036

View file

@ -11,14 +11,22 @@ let
nameToModule = moduleConfig:
if isFunction moduleConfig then
{name, ...}@args:
(moduleConfig (args // {name = module.name;})) // {_file = "module-${module.name}";}
(moduleConfig (args // {
name = module.name;
moduleDefinition = moduleDefinition;
module = module;
})) // {_file = "module-${module.name}";}
else {name, ...}: moduleConfig // {_file = "module-${module.name}";};
in [
(import ./kubernetes.nix {
customResourceDefinitions =
config.kubernetes.resources.customResourceDefinitions;
})
./modules.nix (nameToModule moduleDefinition.module)
./modules.nix
(nameToModule moduleDefinition.module)
{
config.kubernetes.defaults.all.metadata.namespace = mkDefault module.namespace;
}
] ++ config.kubernetes.defaultModuleConfiguration.all
++ (optionals (hasAttr moduleDefinition.name config.kubernetes.defaultModuleConfiguration)
config.kubernetes.defaultModuleConfiguration.${moduleDefinition.name});
@ -77,6 +85,12 @@ in {
default = name;
};
namespace = mkOption {
description = "Namespace where to deploy module";
type = types.str;
default = "default";
};
configuration = mkOption {
description = "Module configuration";
type = types.submodule {