2023-07-07 22:01:34 -04:00
|
|
|
{ name, config, lib, kubenix, ... }:
|
2022-04-02 12:40:35 -07:00
|
|
|
with lib; let
|
2023-07-07 22:01:34 -04:00
|
|
|
submodule = { name, ... }: {
|
|
|
|
|
imports = [ kubenix.modules.submodule ];
|
2019-10-10 13:01:19 +02:00
|
|
|
|
|
|
|
|
config.submodule = {
|
|
|
|
|
name = "subm";
|
|
|
|
|
passthru.global.${name} = "true";
|
|
|
|
|
};
|
|
|
|
|
};
|
2023-07-07 22:01:34 -04:00
|
|
|
in
|
|
|
|
|
{
|
|
|
|
|
imports = with kubenix.modules; [ test submodules ];
|
2019-10-10 13:01:19 +02:00
|
|
|
|
|
|
|
|
options = {
|
|
|
|
|
global = mkOption {
|
|
|
|
|
description = "Global value";
|
|
|
|
|
type = types.attrs;
|
2023-07-07 22:01:34 -04:00
|
|
|
default = { };
|
2019-10-10 13:01:19 +02:00
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
config = {
|
|
|
|
|
test = {
|
|
|
|
|
name = "submodules-passthru";
|
|
|
|
|
description = "Submodules passthru test";
|
2022-04-02 12:40:35 -07:00
|
|
|
assertions = [
|
|
|
|
|
{
|
|
|
|
|
message = "should passthru values if passthru enabled";
|
|
|
|
|
assertion = hasAttr "inst1" config.global && config.global.inst1 == "true";
|
|
|
|
|
}
|
2021-05-13 17:27:08 -04:00
|
|
|
{
|
|
|
|
|
message = "should not passthru values if passthru not enabled";
|
|
|
|
|
assertion = !(hasAttr "inst2" config.global);
|
|
|
|
|
}
|
|
|
|
|
{
|
|
|
|
|
message = "should passthru by default";
|
|
|
|
|
assertion = hasAttr "inst3" config.global && config.global.inst3 == "true";
|
2022-04-02 12:40:35 -07:00
|
|
|
}
|
|
|
|
|
];
|
2019-10-10 13:01:19 +02:00
|
|
|
};
|
|
|
|
|
|
2023-07-07 22:01:34 -04:00
|
|
|
submodules.imports = [{
|
|
|
|
|
modules = [ submodule ];
|
|
|
|
|
}];
|
2019-10-10 13:01:19 +02:00
|
|
|
|
|
|
|
|
submodules.instances.inst1 = {
|
|
|
|
|
submodule = "subm";
|
|
|
|
|
passthru.enable = true;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
submodules.instances.inst2 = {
|
|
|
|
|
submodule = "subm";
|
|
|
|
|
passthru.enable = false;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
submodules.instances.inst3 = {
|
|
|
|
|
submodule = "subm";
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
}
|