2019-02-25 17:14:48 +01:00
|
|
|
{ name, config, lib, kubenix, images, ... }:
|
|
|
|
|
|
|
|
|
|
with lib;
|
|
|
|
|
let
|
|
|
|
|
cfg = config.submodules.instances.test.config;
|
|
|
|
|
deployment = cfg.kubernetes.api.deployments.nginx;
|
2021-05-13 17:27:08 -04:00
|
|
|
in
|
|
|
|
|
{
|
2019-03-07 23:23:07 +01:00
|
|
|
imports = [ kubenix.modules.test kubenix.module ];
|
2019-02-25 17:14:48 +01:00
|
|
|
|
|
|
|
|
test = {
|
2019-03-07 11:41:43 +01:00
|
|
|
name = "module";
|
|
|
|
|
description = "Test testing kubenix module";
|
2019-02-25 17:14:48 +01:00
|
|
|
assertions = [{
|
|
|
|
|
message = "Namespace not propagated";
|
|
|
|
|
assertion = deployment.metadata.namespace == "test";
|
2021-05-13 17:27:08 -04:00
|
|
|
}
|
|
|
|
|
{
|
|
|
|
|
message = "Version not propagated";
|
|
|
|
|
assertion = cfg.kubernetes.version == config.kubernetes.version;
|
|
|
|
|
}
|
|
|
|
|
{
|
|
|
|
|
message = "docker image should be added to exported images";
|
|
|
|
|
assertion = (head config.docker.export) == images.nginx;
|
|
|
|
|
}];
|
2019-02-25 17:14:48 +01:00
|
|
|
testScript = ''
|
2021-04-28 13:43:24 -05:00
|
|
|
kube.wait_until_succeeds("docker load < ${images.nginx}")
|
|
|
|
|
kube.wait_until_succeeds("kubectl apply -f ${config.kubernetes.result}")
|
2019-02-25 17:14:48 +01:00
|
|
|
|
2021-04-28 13:43:24 -05:00
|
|
|
kube.succeed("kubectl get deployment -n test | grep -i test-nginx")
|
|
|
|
|
kube.wait_until_succeeds("kubectl get deployment -n test -o go-template test-nginx --template={{.status.readyReplicas}} | grep 1")
|
2019-02-25 17:14:48 +01:00
|
|
|
'';
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
submodules.imports = [{
|
2021-05-13 17:27:08 -04:00
|
|
|
module = { name, config, ... }: {
|
2019-02-25 17:14:48 +01:00
|
|
|
submodule.name = "nginx";
|
|
|
|
|
kubernetes.api.deployments.nginx = {
|
|
|
|
|
metadata = {
|
|
|
|
|
name = "${name}-nginx";
|
|
|
|
|
labels.app = name;
|
|
|
|
|
};
|
|
|
|
|
spec = {
|
|
|
|
|
replicas = 1;
|
|
|
|
|
selector.matchLabels.app = "nginx";
|
|
|
|
|
template.metadata.labels.app = "nginx";
|
|
|
|
|
template.spec = {
|
|
|
|
|
containers.nginx = {
|
2019-03-05 22:08:26 +01:00
|
|
|
image = config.docker.images.nginx.path;
|
2019-02-25 17:14:48 +01:00
|
|
|
imagePullPolicy = "Never";
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
};
|
2019-03-05 22:08:26 +01:00
|
|
|
|
|
|
|
|
docker.images.nginx.image = images.nginx;
|
2019-02-25 17:14:48 +01:00
|
|
|
};
|
|
|
|
|
}];
|
|
|
|
|
|
2021-05-13 17:27:08 -04:00
|
|
|
kubernetes.api.namespaces.test = { };
|
2019-02-25 17:14:48 +01:00
|
|
|
|
|
|
|
|
submodules.instances.test = {
|
|
|
|
|
submodule = "nginx";
|
|
|
|
|
namespace = "test";
|
|
|
|
|
};
|
|
|
|
|
}
|