2019-03-12 20:33:56 +01:00
|
|
|
{ name, config, lib, kubenix, images, ... }:
|
|
|
|
|
|
|
|
|
|
with lib;
|
|
|
|
|
|
|
|
|
|
let
|
|
|
|
|
cfg = config.submodules.instances.passthru;
|
|
|
|
|
in {
|
|
|
|
|
imports = with kubenix.modules; [ test submodules k8s docker ];
|
|
|
|
|
|
|
|
|
|
test = {
|
|
|
|
|
name = "k8s-submodule";
|
|
|
|
|
description = "Simple k8s submodule test";
|
|
|
|
|
assertions = [{
|
|
|
|
|
message = "Submodule has correct name set";
|
|
|
|
|
assertion = (head config.kubernetes.objects).metadata.name == "passthru";
|
|
|
|
|
} {
|
|
|
|
|
message = "Should expose docker image";
|
|
|
|
|
assertion = (head config.docker.export).imageName == "xtruder/nginx";
|
|
|
|
|
}];
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
kubernetes.namespace = "test-namespace";
|
|
|
|
|
|
|
|
|
|
submodules.imports = [{
|
|
|
|
|
module = {name, config, ...}: {
|
|
|
|
|
imports = with kubenix.modules; [ submodule k8s docker ];
|
|
|
|
|
|
|
|
|
|
config = {
|
2019-10-06 21:36:13 +02:00
|
|
|
submodule = {
|
|
|
|
|
name = "test-submodule";
|
|
|
|
|
passthru = {
|
|
|
|
|
kubernetes.objects = config.kubernetes.objects;
|
|
|
|
|
docker.images = config.docker.images;
|
|
|
|
|
};
|
|
|
|
|
};
|
2019-03-12 20:33:56 +01:00
|
|
|
|
2019-09-27 18:29:00 +02:00
|
|
|
kubernetes.resources.pods.nginx = {
|
2019-03-12 20:33:56 +01:00
|
|
|
metadata.name = name;
|
|
|
|
|
spec.containers.nginx.image = config.docker.images.nginx.path;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
docker.images.nginx.image = images.nginx;
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
}];
|
|
|
|
|
|
|
|
|
|
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;
|
|
|
|
|
};
|
|
|
|
|
}
|