feat(modules/docker): improvements

This commit is contained in:
Jaka Hudoklin 2019-03-05 22:08:26 +01:00
parent fbaed4ec00
commit a6cea15f34
No known key found for this signature in database
GPG key ID: 6A08896BFD32BD95
3 changed files with 25 additions and 9 deletions

View file

@ -64,8 +64,8 @@ in {
submodule.config.kubernetes.objects
) config.submodules.instances);
docker.push = mkMerge (mapAttrsToList (_: submodule:
submodule.config.docker.push
docker.export = mkMerge (mapAttrsToList (_: submodule:
submodule.config.docker.export
) config.submodules.instances);
};
}

View file

@ -2,10 +2,13 @@
with lib;
{
let
globalConfig = config;
in {
options.docker.registry.url = mkOption {
description = "Default registry url where images are published";
type = types.str;
default = "";
};
options.docker.images = mkOption {
@ -33,19 +36,28 @@ with lib;
registry = mkOption {
description = "Docker registry url where image is published";
type = types.str;
default = config.docker.registry.url;
default = globalConfig.docker.registry.url;
};
path = mkOption {
description = "Full docker image path";
type = types.str;
default =
if config.registry != ""
then "${config.registry}/${config.name}:${config.tag}"
else "${config.name}:${config.tag}";
};
};
}));
default = {};
};
options.docker.push = mkOption {
description = "List of images to push";
options.docker.export = mkOption {
description = "List of images to export";
type = types.listOf (types.package);
default = [];
};
config.docker.push = mapAttrsToList (_: i: i.image)
config.docker.export = mapAttrsToList (_: i: i.image)
(filterAttrs (_: i: i.registry != null)config.docker.images);
}

View file

@ -5,7 +5,6 @@ with lib;
let
cfg = config.submodules.instances.test.config;
deployment = cfg.kubernetes.api.deployments.nginx;
image = images.nginx;
in {
imports = [
kubenix.all
@ -20,6 +19,9 @@ in {
} {
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;
}];
testScript = ''
$kube->waitUntilSucceeds("docker load < ${image}");
@ -44,12 +46,14 @@ in {
template.metadata.labels.app = "nginx";
template.spec = {
containers.nginx = {
image = "${image.imageName}:${image.imageTag}";
image = config.docker.images.nginx.path;
imagePullPolicy = "Never";
};
};
};
};
docker.images.nginx.image = images.nginx;
};
}];