feat(defaults): add support for functions

This commit is contained in:
Jaka Hudoklin 2018-03-21 00:05:42 +01:00
parent 536f447530
commit bd36e010d0
3 changed files with 9 additions and 9 deletions

View file

@ -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 = [];
};
};

View file

@ -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 = [];
};
};

View file

@ -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;
};
};
}