kubenix/tests/submodules/simple.nix

78 lines
1.7 KiB
Nix
Raw Normal View History

2022-04-02 12:40:35 -07:00
{
name,
config,
lib,
kubenix,
...
}:
with lib; let
cfg = config.submodules.instances.instance;
2022-04-02 13:43:57 -07:00
inherit (cfg.config.submodule) args;
2022-04-02 12:40:35 -07:00
in {
imports = with kubenix.modules; [test submodules];
2019-02-12 17:40:09 +01:00
test = {
2019-02-25 17:16:24 +01:00
name = "submodules-simple";
2019-02-12 17:40:09 +01:00
description = "Simple k8s submodule test";
2022-04-02 12:40:35 -07:00
assertions = [
{
message = "Submodule name is set";
assertion = cfg.name == "instance";
}
2021-05-13 17:27:08 -04:00
{
message = "Submodule version is set";
assertion = cfg.version == null;
}
{
message = "Submodule config has submodule definition";
assertion = cfg.config.submodule.name == "submodule";
}
{
message = "Should have argument set";
assertion = args.value == "test";
}
{
message = "Should have submodule name set";
assertion = args.name == "instance";
}
{
message = "should have tag set";
2022-04-02 13:43:57 -07:00
assertion = elem "tag" cfg.config.submodule.tags;
2022-04-02 12:40:35 -07:00
}
];
2019-02-12 17:40:09 +01:00
};
submodules.propagate.enable = true;
2022-04-02 12:40:35 -07:00
submodules.imports = [
{
module = {submodule, ...}: {
imports = [kubenix.modules.submodule];
2022-04-02 12:40:35 -07:00
options.submodule.args = {
name = mkOption {
description = "Submodule name";
type = types.str;
default = submodule.name;
};
value = mkOption {
description = "Submodule argument";
type = types.str;
};
};
2022-04-02 12:40:35 -07:00
config = {
submodule.name = "submodule";
submodule.tags = ["tag"];
};
};
2022-04-02 12:40:35 -07:00
}
];
2019-02-12 17:40:09 +01:00
submodules.instances.instance = {
submodule = "submodule";
args = {
value = "test";
};
2019-02-12 17:40:09 +01:00
};
}