From 208a80f036395942524f38b45a594d25e260b0e5 Mon Sep 17 00:00:00 2001 From: Jaka Hudoklin Date: Tue, 2 Jan 2018 14:20:26 +0100 Subject: [PATCH] feat(modules): add namespace option to module --- modules.nix | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/modules.nix b/modules.nix index a4fb522..017976c 100644 --- a/modules.nix +++ b/modules.nix @@ -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 {