2019-02-17 19:43:04 +01:00
|
|
|
{ name, config, lib, kubenix, ... }:
|
2019-02-12 17:40:09 +01:00
|
|
|
|
|
|
|
|
with lib;
|
|
|
|
|
|
2019-02-17 19:43:04 +01:00
|
|
|
let
|
|
|
|
|
cfg = config.submodules.instances.instance;
|
2019-03-20 20:59:17 +01:00
|
|
|
args = cfg.config.submodule.args;
|
2019-02-17 19:43:04 +01:00
|
|
|
in {
|
2019-03-07 23:23:07 +01:00
|
|
|
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";
|
|
|
|
|
assertions = [{
|
|
|
|
|
message = "Submodule name is set";
|
2019-02-17 19:43:04 +01:00
|
|
|
assertion = cfg.name == "instance";
|
2019-02-12 17:40:09 +01:00
|
|
|
} {
|
|
|
|
|
message = "Submodule version is set";
|
2019-02-17 19:43:04 +01:00
|
|
|
assertion = cfg.version == null;
|
2019-02-12 17:40:09 +01:00
|
|
|
} {
|
|
|
|
|
message = "Submodule config has submodule definition";
|
2019-02-17 19:43:04 +01:00
|
|
|
assertion = cfg.config.submodule.name == "submodule";
|
2019-02-12 17:40:09 +01:00
|
|
|
} {
|
|
|
|
|
message = "Should have argument set";
|
2019-03-20 20:59:17 +01:00
|
|
|
assertion = args.value == "test";
|
2019-02-17 19:43:04 +01:00
|
|
|
} {
|
|
|
|
|
message = "Should have submodule name set";
|
2019-03-20 20:59:17 +01:00
|
|
|
assertion = args.name == "instance";
|
2019-03-12 20:33:56 +01:00
|
|
|
} {
|
|
|
|
|
message = "should have tag set";
|
|
|
|
|
assertion = elem "tag" (cfg.config.submodule.tags);
|
2019-02-12 17:40:09 +01:00
|
|
|
}];
|
|
|
|
|
};
|
|
|
|
|
|
2019-03-12 20:33:56 +01:00
|
|
|
submodules.propagate.enable = true;
|
2019-02-12 17:40:09 +01:00
|
|
|
submodules.imports = [{
|
2019-03-20 20:59:17 +01:00
|
|
|
module = { submodule, ... }: {
|
2019-03-12 20:33:56 +01:00
|
|
|
imports = [ kubenix.modules.submodule ];
|
2019-03-20 20:59:17 +01:00
|
|
|
|
|
|
|
|
options.submodule.args = {
|
|
|
|
|
name = mkOption {
|
|
|
|
|
description = "Submodule name";
|
2019-03-12 20:33:56 +01:00
|
|
|
type = types.str;
|
2019-03-20 20:59:17 +01:00
|
|
|
default = submodule.name;
|
2019-03-12 20:33:56 +01:00
|
|
|
};
|
2019-03-20 20:59:17 +01:00
|
|
|
value = mkOption {
|
|
|
|
|
description = "Submodule argument";
|
2019-03-12 20:33:56 +01:00
|
|
|
type = types.str;
|
|
|
|
|
};
|
2019-02-17 19:43:04 +01:00
|
|
|
};
|
2019-03-20 20:59:17 +01:00
|
|
|
|
|
|
|
|
config = {
|
|
|
|
|
submodule.name = "submodule";
|
|
|
|
|
submodule.tags = ["tag"];
|
|
|
|
|
};
|
2019-02-12 17:40:09 +01:00
|
|
|
};
|
|
|
|
|
}];
|
|
|
|
|
|
2019-02-17 19:43:04 +01:00
|
|
|
submodules.instances.instance = {
|
|
|
|
|
submodule = "submodule";
|
2019-03-20 20:59:17 +01:00
|
|
|
args = {
|
|
|
|
|
value = "test";
|
2019-02-17 19:43:04 +01:00
|
|
|
};
|
2019-02-12 17:40:09 +01:00
|
|
|
};
|
|
|
|
|
}
|