mirror of
https://github.com/TECHNOFAB11/kubenix.git
synced 2025-12-12 16:10:05 +01:00
fix(modules): throw better error if module with some name does not exist
This commit is contained in:
parent
f2e717b117
commit
2d51db5ccb
1 changed files with 9 additions and 7 deletions
16
modules.nix
16
modules.nix
|
|
@ -97,6 +97,11 @@ let
|
||||||
type = types.coercedTo types.unspecified (value: [value]) (types.listOf types.unspecified);
|
type = types.coercedTo types.unspecified (value: [value]) (types.listOf types.unspecified);
|
||||||
default = [];
|
default = [];
|
||||||
}) config.kubernetes.moduleDefinitions;
|
}) config.kubernetes.moduleDefinitions;
|
||||||
|
|
||||||
|
getModuleDefinition = name:
|
||||||
|
if hasAttr name config.kubernetes.moduleDefinitions
|
||||||
|
then config.kubernetes.moduleDefinitions.${name}
|
||||||
|
else throw ''requested kubernetes moduleDefinition with name "${name}" does not exist'';
|
||||||
in {
|
in {
|
||||||
options.kubernetes.moduleDefinitions = mkOption {
|
options.kubernetes.moduleDefinitions = mkOption {
|
||||||
description = "Attribute set of module definitions";
|
description = "Attribute set of module definitions";
|
||||||
|
|
@ -171,10 +176,7 @@ in {
|
||||||
configuration = mkOption {
|
configuration = mkOption {
|
||||||
description = "Module configuration";
|
description = "Module configuration";
|
||||||
type = submodule {
|
type = submodule {
|
||||||
imports =
|
imports = mkModuleOptions (getModuleDefinition config.module) config;
|
||||||
if hasAttr config.module globalConfig.kubernetes.moduleDefinitions
|
|
||||||
then mkModuleOptions globalConfig.kubernetes.moduleDefinitions.${config.module} config
|
|
||||||
else throw ''Kubernetes moduleDefinition "${config.module}" does not exist'';
|
|
||||||
};
|
};
|
||||||
default = {};
|
default = {};
|
||||||
};
|
};
|
||||||
|
|
@ -191,7 +193,7 @@ in {
|
||||||
config = {
|
config = {
|
||||||
kubernetes.resources = mkMerge (
|
kubernetes.resources = mkMerge (
|
||||||
mapAttrsToList (name: module: let
|
mapAttrsToList (name: module: let
|
||||||
moduleDefinition = config.kubernetes.moduleDefinitions."${module.module}";
|
moduleDefinition = getModuleDefinition module.module;
|
||||||
moduleConfig =
|
moduleConfig =
|
||||||
if moduleDefinition.prefixResources
|
if moduleDefinition.prefixResources
|
||||||
then prefixResources (moduleToAttrs module.configuration.kubernetes.resources) name
|
then prefixResources (moduleToAttrs module.configuration.kubernetes.resources) name
|
||||||
|
|
@ -205,9 +207,9 @@ in {
|
||||||
|
|
||||||
kubernetes.customResources = mkMerge (
|
kubernetes.customResources = mkMerge (
|
||||||
mapAttrsToList (name: module: let
|
mapAttrsToList (name: module: let
|
||||||
moduleDefinition = config.kubernetes.moduleDefinitions."${module.module}";
|
moduleDefinition = getModuleDefinition module.module;
|
||||||
moduleConfig =
|
moduleConfig =
|
||||||
if config.kubernetes.moduleDefinitions."${module.module}".prefixResources
|
if moduleDefinition.prefixResources
|
||||||
then prefixGroupResources (moduleToAttrs module.configuration.kubernetes.customResources) name
|
then prefixGroupResources (moduleToAttrs module.configuration.kubernetes.customResources) name
|
||||||
else moduleToAttrs module.configuration.kubernetes.customResources;
|
else moduleToAttrs module.configuration.kubernetes.customResources;
|
||||||
in
|
in
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue