mirror of
https://github.com/TECHNOFAB11/kubenix.git
synced 2025-12-12 16:10:05 +01:00
allow to pass defaults as attribute sets
This commit is contained in:
parent
70d33e20b8
commit
699511bf54
3 changed files with 16 additions and 13 deletions
|
|
@ -307,7 +307,8 @@ let
|
||||||
};
|
};
|
||||||
|
|
||||||
defaultOptions = mapAttrs (name: value: mkOption {
|
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 = [];
|
default = [];
|
||||||
}) versionOptions.${config.kubernetes.version};
|
}) versionOptions.${config.kubernetes.version};
|
||||||
in {
|
in {
|
||||||
|
|
@ -329,7 +330,8 @@ in {
|
||||||
type = types.submodule {
|
type = types.submodule {
|
||||||
options = defaultOptions // {
|
options = defaultOptions // {
|
||||||
all = mkOption {
|
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 = [];
|
default = [];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -29,7 +29,8 @@ let
|
||||||
) resources;
|
) resources;
|
||||||
|
|
||||||
defaultModuleConfigurationOptions = mapAttrs (name: moduleDefinition: mkOption {
|
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 = [];
|
default = [];
|
||||||
}) config.kubernetes.moduleDefinitions;
|
}) config.kubernetes.moduleDefinitions;
|
||||||
in {
|
in {
|
||||||
|
|
@ -57,7 +58,7 @@ in {
|
||||||
options = defaultModuleConfigurationOptions // {
|
options = defaultModuleConfigurationOptions // {
|
||||||
all = mkOption {
|
all = mkOption {
|
||||||
description = "Module default configuration for all modules";
|
description = "Module default configuration for all modules";
|
||||||
type = types.listOf types.attrs;
|
type = types.coercedTo types.attrs (value: [value]) (types.listOf types.attrs);
|
||||||
default = [];
|
default = [];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
@ -105,8 +106,8 @@ in {
|
||||||
) config.kubernetes.modules
|
) config.kubernetes.modules
|
||||||
);
|
);
|
||||||
|
|
||||||
kubernetes.defaultModuleConfiguration.all = [{
|
kubernetes.defaultModuleConfiguration.all = {
|
||||||
config.kubernetes.version = mkDefault config.kubernetes.version;
|
config.kubernetes.version = mkDefault config.kubernetes.version;
|
||||||
}];
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -62,14 +62,14 @@ with lib;
|
||||||
|
|
||||||
kubernetes.resources.services.nginx = loadJSON ./service.json;
|
kubernetes.resources.services.nginx = loadJSON ./service.json;
|
||||||
|
|
||||||
kubernetes.defaultModuleConfiguration.all = [{
|
kubernetes.defaultModuleConfiguration.all = {
|
||||||
config.kubernetes.defaults.deployments = [{spec.replicas = 3;}];
|
config.kubernetes.defaults.deployments.spec.replicas = 3;
|
||||||
}];
|
};
|
||||||
|
|
||||||
kubernetes.defaultModuleConfiguration.nginx = [{
|
kubernetes.defaultModuleConfiguration.nginx = {
|
||||||
kubernetes.defaults.deployments = [{spec.replicas = mkDefault 4;}];
|
kubernetes.defaults.deployments.spec.replicas = mkDefault 4;
|
||||||
}];
|
};
|
||||||
|
|
||||||
kubernetes.defaults.all = [{metadata.namespace = "test";}];
|
kubernetes.defaults.all.metadata.namespace = "test";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue