mirror of
https://github.com/TECHNOFAB11/kubenix.git
synced 2025-12-12 16:10:05 +01:00
feat(submodules): pass instance name directly
This commit is contained in:
parent
b4c4f17cc9
commit
4d08da78e0
2 changed files with 24 additions and 14 deletions
|
|
@ -19,7 +19,6 @@ let
|
||||||
modules = opts' ++ map (def: { _file = def.file; imports = [(coerce def.value)]; }) defs;
|
modules = opts' ++ map (def: { _file = def.file; imports = [(coerce def.value)]; }) defs;
|
||||||
in (evalModules {
|
in (evalModules {
|
||||||
inherit modules specialArgs;
|
inherit modules specialArgs;
|
||||||
args.name = last loc;
|
|
||||||
prefix = loc;
|
prefix = loc;
|
||||||
}).config;
|
}).config;
|
||||||
getSubOptions = prefix: (evalModules
|
getSubOptions = prefix: (evalModules
|
||||||
|
|
@ -203,9 +202,7 @@ in {
|
||||||
description = "Submodule instance ${config.name} for ${submoduleDefinition.name}:${submoduleDefinition.version} config";
|
description = "Submodule instance ${config.name} for ${submoduleDefinition.name}:${submoduleDefinition.version} config";
|
||||||
type = submoduleWithSpecialArgs ({...}: {
|
type = submoduleWithSpecialArgs ({...}: {
|
||||||
imports = submodule.modules ++ cfg.defaults ++ [submoduleOptions ./submodules.nix];
|
imports = submodule.modules ++ cfg.defaults ++ [submoduleOptions ./submodules.nix];
|
||||||
_module.args.submodule = {
|
_module.args.name = config.name;
|
||||||
name = config.name;
|
|
||||||
};
|
|
||||||
}) specialArgs;
|
}) specialArgs;
|
||||||
default = {};
|
default = {};
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,10 @@
|
||||||
{ config, lib, kubenix, ... }:
|
{ name, config, lib, kubenix, ... }:
|
||||||
|
|
||||||
with lib;
|
with lib;
|
||||||
|
|
||||||
{
|
let
|
||||||
|
cfg = config.submodules.instances.instance;
|
||||||
|
in {
|
||||||
imports = [
|
imports = [
|
||||||
kubenix.submodules
|
kubenix.submodules
|
||||||
];
|
];
|
||||||
|
|
@ -12,30 +14,41 @@ with lib;
|
||||||
description = "Simple k8s submodule test";
|
description = "Simple k8s submodule test";
|
||||||
assertions = [{
|
assertions = [{
|
||||||
message = "Submodule name is set";
|
message = "Submodule name is set";
|
||||||
assertion = config.submodules.instances.empty.name == "empty";
|
assertion = cfg.name == "instance";
|
||||||
} {
|
} {
|
||||||
message = "Submodule version is set";
|
message = "Submodule version is set";
|
||||||
assertion = config.submodules.instances.empty.version == null;
|
assertion = cfg.version == null;
|
||||||
} {
|
} {
|
||||||
message = "Submodule config has submodule definition";
|
message = "Submodule config has submodule definition";
|
||||||
assertion = config.submodules.instances.empty.config.submodule.name == "empty";
|
assertion = cfg.config.submodule.name == "submodule";
|
||||||
} {
|
} {
|
||||||
message = "Should have argument set";
|
message = "Should have argument set";
|
||||||
assertion = config.submodules.instances.empty.config.args.value == "test";
|
assertion = cfg.config.args.value == "test";
|
||||||
|
} {
|
||||||
|
message = "Should have submodule name set";
|
||||||
|
assertion = cfg.config.args.name == "instance";
|
||||||
}];
|
}];
|
||||||
};
|
};
|
||||||
|
|
||||||
submodules.imports = [{
|
submodules.imports = [{
|
||||||
module = {
|
module = {name, ...}: {
|
||||||
config.submodule.name = "empty";
|
config.submodule.name = "submodule";
|
||||||
options.args.value = mkOption {
|
options.args.value = mkOption {
|
||||||
description = "Submodule argument";
|
description = "Submodule argument";
|
||||||
type = types.str;
|
type = types.str;
|
||||||
};
|
};
|
||||||
|
options.args.name = mkOption {
|
||||||
|
description = "Submodule name";
|
||||||
|
type = types.str;
|
||||||
|
default = name;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}];
|
}];
|
||||||
|
|
||||||
submodules.instances.empty = {
|
submodules.instances.instance = {
|
||||||
|
submodule = "submodule";
|
||||||
|
config = {name, ...}: {
|
||||||
config.args.value = "test";
|
config.args.value = "test";
|
||||||
};
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue