From 699511bf543f980071942dd76445cf06e334bf33 Mon Sep 17 00:00:00 2001 From: Jaka Hudoklin Date: Sat, 23 Dec 2017 20:13:55 +0100 Subject: [PATCH] allow to pass defaults as attribute sets --- kubernetes.nix | 6 ++++-- modules.nix | 9 +++++---- test/modules.nix | 14 +++++++------- 3 files changed, 16 insertions(+), 13 deletions(-) diff --git a/kubernetes.nix b/kubernetes.nix index 74933fc..8aed6a0 100644 --- a/kubernetes.nix +++ b/kubernetes.nix @@ -307,7 +307,8 @@ let }; defaultOptions = mapAttrs (name: value: mkOption { - type = types.listOf types.attrs; + description = "Kubernetes defaults for ${name} resources"; + type = types.coercedTo types.attrs (value: [value]) (types.listOf types.attrs); default = []; }) versionOptions.${config.kubernetes.version}; in { @@ -329,7 +330,8 @@ in { type = types.submodule { options = defaultOptions // { all = mkOption { - type = types.listOf types.attrs; + description = "Kubernetes defaults for all resources"; + type = types.coercedTo types.attrs (value: [value]) (types.listOf types.attrs); default = []; }; }; diff --git a/modules.nix b/modules.nix index b19e22a..a4fb522 100644 --- a/modules.nix +++ b/modules.nix @@ -29,7 +29,8 @@ let ) resources; defaultModuleConfigurationOptions = mapAttrs (name: moduleDefinition: mkOption { - type = types.listOf types.attrs; + description = "Module default configuration for ${name} module"; + type = types.coercedTo types.attrs (value: [value]) (types.listOf types.attrs); default = []; }) config.kubernetes.moduleDefinitions; in { @@ -57,7 +58,7 @@ in { options = defaultModuleConfigurationOptions // { all = mkOption { description = "Module default configuration for all modules"; - type = types.listOf types.attrs; + type = types.coercedTo types.attrs (value: [value]) (types.listOf types.attrs); default = []; }; }; @@ -105,8 +106,8 @@ in { ) config.kubernetes.modules ); - kubernetes.defaultModuleConfiguration.all = [{ + kubernetes.defaultModuleConfiguration.all = { config.kubernetes.version = mkDefault config.kubernetes.version; - }]; + }; }; } diff --git a/test/modules.nix b/test/modules.nix index e2bc8cc..282f0c3 100644 --- a/test/modules.nix +++ b/test/modules.nix @@ -62,14 +62,14 @@ with lib; kubernetes.resources.services.nginx = loadJSON ./service.json; - kubernetes.defaultModuleConfiguration.all = [{ - config.kubernetes.defaults.deployments = [{spec.replicas = 3;}]; - }]; + kubernetes.defaultModuleConfiguration.all = { + config.kubernetes.defaults.deployments.spec.replicas = 3; + }; - kubernetes.defaultModuleConfiguration.nginx = [{ - kubernetes.defaults.deployments = [{spec.replicas = mkDefault 4;}]; - }]; + kubernetes.defaultModuleConfiguration.nginx = { + kubernetes.defaults.deployments.spec.replicas = mkDefault 4; + }; - kubernetes.defaults.all = [{metadata.namespace = "test";}]; + kubernetes.defaults.all.metadata.namespace = "test"; }; }