From bd36e010d096e2aff1199898e4d400eab6c7558b Mon Sep 17 00:00:00 2001 From: Jaka Hudoklin Date: Wed, 21 Mar 2018 00:05:42 +0100 Subject: [PATCH 1/2] feat(defaults): add support for functions --- kubernetes.nix | 4 ++-- modules.nix | 4 ++-- test/modules.nix | 10 +++++----- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/kubernetes.nix b/kubernetes.nix index 1f0b34f..43a8c5e 100644 --- a/kubernetes.nix +++ b/kubernetes.nix @@ -308,7 +308,7 @@ let defaultOptions = mapAttrs (name: value: mkOption { description = "Kubernetes defaults for ${name} resources"; - type = types.coercedTo types.attrs (value: [value]) (types.listOf types.attrs); + type = types.coercedTo types.unspecified (value: [value]) (types.listOf types.unspecified); default = []; }) ( (versionOptions.${config.kubernetes.version}.kubernetesResourceOptions) // @@ -334,7 +334,7 @@ in { options = defaultOptions // { all = mkOption { description = "Kubernetes defaults for all resources"; - type = types.coercedTo types.attrs (value: [value]) (types.listOf types.attrs); + type = types.coercedTo types.unspecified (value: [value]) (types.listOf types.unspecified); default = []; }; }; diff --git a/modules.nix b/modules.nix index 7e80746..158b06e 100644 --- a/modules.nix +++ b/modules.nix @@ -76,7 +76,7 @@ let defaultModuleConfigurationOptions = mapAttrs (name: moduleDefinition: mkOption { description = "Module default configuration for ${name} module"; - type = types.coercedTo types.attrs (value: [value]) (types.listOf types.attrs); + type = types.coercedTo types.unspecified (value: [value]) (types.listOf types.unspecified); default = []; }) config.kubernetes.moduleDefinitions; in { @@ -104,7 +104,7 @@ in { options = defaultModuleConfigurationOptions // { all = mkOption { description = "Module default configuration for all modules"; - type = types.coercedTo types.attrs (value: [value]) (types.listOf types.attrs); + type = types.coercedTo types.unspecified (value: [value]) (types.listOf types.unspecified); default = []; }; }; diff --git a/test/modules.nix b/test/modules.nix index 0320590..762f9c5 100644 --- a/test/modules.nix +++ b/test/modules.nix @@ -99,12 +99,12 @@ 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 = mkDefault 3; + }]; - kubernetes.defaultModuleConfiguration.nginx = { - kubernetes.defaults.deployments.spec.replicas = mkDefault 4; + kubernetes.defaultModuleConfiguration.nginx = {config, name, ...}: { + kubernetes.defaults.deployments.spec.replicas = 4; }; }; } From a45f6b8b15e72020e2282aef77de595822310d5b Mon Sep 17 00:00:00 2001 From: Jaka Hudoklin Date: Thu, 22 Mar 2018 11:50:16 +0100 Subject: [PATCH 2/2] feat(modules): add labels to modules --- modules.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/modules.nix b/modules.nix index 158b06e..2e4cff5 100644 --- a/modules.nix +++ b/modules.nix @@ -129,6 +129,12 @@ in { default = "default"; }; + labels = mkOption { + description = "Attribute set of module lables"; + type = types.attrsOf types.str; + default = {}; + }; + configuration = mkOption { description = "Module configuration"; type = submodule {