feat(module): allow to optionally specify if set resources as default

This commit is contained in:
Jaka Hudoklin 2018-04-06 11:01:19 +02:00
parent bd7ce4b4db
commit 1e8d129bf4

View file

@ -92,11 +92,17 @@ in {
};
prefixResources = mkOption {
description = "Whether resources should be automatically prefix";
description = "Whether resources should be automatically prefixed with module name";
type = types.bool;
default = true;
};
assignAsDefaults = mkOption {
description = "Whether to assign resources as defaults, this is usefull for module that add some functionality";
type = types.bool;
default = false;
};
module = mkOption {
description = "Module definition";
};
@ -163,22 +169,30 @@ in {
config = {
kubernetes.resources = mkMerge (
mapAttrsToList (name: module:
mkAllDefault (
if config.kubernetes.moduleDefinitions."${module.module}".prefixResources
mapAttrsToList (name: module: let
moduleDefinition = config.kubernetes.moduleDefinitions."${module.module}";
moduleConfig =
if moduleDefinition.prefixResources
then prefixResources (moduleToAttrs module.configuration.kubernetes.resources) module.name
else moduleToAttrs module.configuration.kubernetes.resources
) 1000
else moduleToAttrs module.configuration.kubernetes.resources;
in
if moduleDefinition.assignAsDefaults
then mkAllDefault moduleConfig 1000
else moduleConfig
) config.kubernetes.modules
);
kubernetes.customResources = mkMerge (
mapAttrsToList (name: module:
mkAllDefault (
mapAttrsToList (name: module: let
moduleDefinition = config.kubernetes.moduleDefinitions."${module.module}";
moduleConfig =
if config.kubernetes.moduleDefinitions."${module.module}".prefixResources
then prefixGroupResources (moduleToAttrs module.configuration.kubernetes.customResources) module.name
else moduleToAttrs module.configuration.kubernetes.customResources
) 1000
else moduleToAttrs module.configuration.kubernetes.customResources;
in
if moduleDefinition.assignAsDefaults
then mkAllDefault moduleConfig 1000
else moduleConfig
) config.kubernetes.modules
);