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: nameToModule = moduleConfig:
if isFunction moduleConfig then if isFunction moduleConfig then
{name, ...}@args: {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}";}; else {name, ...}: moduleConfig // {_file = "module-${module.name}";};
in [ in [
(import ./kubernetes.nix { (import ./kubernetes.nix {
customResourceDefinitions = customResourceDefinitions =
config.kubernetes.resources.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 ] ++ config.kubernetes.defaultModuleConfiguration.all
++ (optionals (hasAttr moduleDefinition.name config.kubernetes.defaultModuleConfiguration) ++ (optionals (hasAttr moduleDefinition.name config.kubernetes.defaultModuleConfiguration)
config.kubernetes.defaultModuleConfiguration.${moduleDefinition.name}); config.kubernetes.defaultModuleConfiguration.${moduleDefinition.name});
@ -77,6 +85,12 @@ in {
default = name; default = name;
}; };
namespace = mkOption {
description = "Namespace where to deploy module";
type = types.str;
default = "default";
};
configuration = mkOption { configuration = mkOption {
description = "Module configuration"; description = "Module configuration";
type = types.submodule { type = types.submodule {