kubenix/tests/k8s/submodule.nix

59 lines
1.4 KiB
Nix
Raw Normal View History

2023-07-07 22:01:34 -04:00
{ name, config, lib, kubenix, images, ... }:
2022-04-02 13:41:07 -07:00
with lib; {
2023-07-07 22:01:34 -04:00
imports = with kubenix.modules; [ test submodules k8s docker ];
test = {
name = "k8s-submodule";
description = "Simple k8s submodule test";
2022-04-02 12:40:35 -07:00
assertions = [
{
message = "Submodule has correct name set";
assertion = (head config.kubernetes.objects).metadata.name == "passthru";
}
2021-05-13 17:27:08 -04:00
{
message = "Should expose docker image";
assertion = (head config.docker.export).imageName == "xtruder/nginx";
2022-04-02 12:40:35 -07:00
}
];
};
kubernetes.namespace = "test-namespace";
2023-07-07 22:01:34 -04:00
submodules.imports = [{
module = { name, config, ... }: {
imports = with kubenix.modules; [ submodule k8s docker ];
2023-07-07 22:01:34 -04:00
config = {
submodule = {
name = "test-submodule";
passthru = {
kubernetes.objects = config.kubernetes.objects;
docker.images = config.docker.images;
2022-04-02 12:40:35 -07:00
};
2023-07-07 22:01:34 -04:00
};
2023-07-07 22:01:34 -04:00
kubernetes.resources.pods.nginx = {
metadata.name = name;
spec.containers.nginx.image = config.docker.images.nginx.path;
2022-04-02 12:40:35 -07:00
};
2023-07-07 22:01:34 -04:00
docker.images.nginx.image = images.nginx;
};
2023-07-07 22:01:34 -04:00
};
}];
2023-07-07 22:01:34 -04:00
kubernetes.api.defaults = [{
propagate = true;
default.metadata.labels.my-label = "my-value";
}];
submodules.instances.passthru = {
submodule = "test-submodule";
};
submodules.instances.no-passthru = {
submodule = "test-submodule";
passthru.enable = false;
};
}