feat(tests/k8s/deployment): use docker module

This commit is contained in:
Jaka Hudoklin 2019-03-11 20:51:43 +01:00
parent a3f62c3127
commit ae8b5f9667
No known key found for this signature in database
GPG key ID: 6A08896BFD32BD95

View file

@ -6,13 +6,13 @@ let
cfg = config.kubernetes.api.deployments.nginx; cfg = config.kubernetes.api.deployments.nginx;
image = images.nginx; image = images.nginx;
in { in {
imports = [ kubenix.modules.test kubenix.modules.k8s ]; imports = [ kubenix.modules.test kubenix.modules.k8s kubenix.modules.docker ];
test = { test = {
name = "k8s-deployment"; name = "k8s-deployment";
description = "Simple k8s testing a simple deployment"; description = "Simple k8s testing a simple deployment";
assertions = [{ assertions = [{
message = "should have correct apiVersion and kind set for 1.8+"; message = "should have correct apiVersion and kind set";
assertion = assertion =
if ((builtins.compareVersions config.kubernetes.version "1.7") <= 0) if ((builtins.compareVersions config.kubernetes.version "1.7") <= 0)
then cfg.apiVersion == "apps/v1beta1" then cfg.apiVersion == "apps/v1beta1"
@ -26,16 +26,21 @@ in {
message = "should have replicas set"; message = "should have replicas set";
assertion = cfg.spec.replicas == 10; assertion = cfg.spec.replicas == 10;
}]; }];
extraConfiguration = {
environment.systemPackages = [ pkgs.curl ];
services.kubernetes.kubelet.seedDockerImages = config.docker.export;
};
testScript = '' testScript = ''
$kube->waitUntilSucceeds("docker load < ${image}");
$kube->waitUntilSucceeds("kubectl apply -f ${toYAML config.kubernetes.generated}"); $kube->waitUntilSucceeds("kubectl apply -f ${toYAML config.kubernetes.generated}");
$kube->succeed("kubectl get deployment | grep -i nginx"); $kube->succeed("kubectl get deployment | grep -i nginx");
$kube->waitUntilSucceeds("kubectl get deployment -o go-template nginx --template={{.status.readyReplicas}} | grep 10"); $kube->waitUntilSucceeds("kubectl get deployment -o go-template nginx --template={{.status.readyReplicas}} | grep 10");
$kube->waitUntilSucceeds("${pkgs.curl}/bin/curl http://nginx.default.svc.cluster.local | grep -i hello"); $kube->waitUntilSucceeds("curl http://nginx.default.svc.cluster.local | grep -i hello");
''; '';
}; };
docker.images.nginx.image = image;
kubernetes.api.deployments.nginx = { kubernetes.api.deployments.nginx = {
spec = { spec = {
replicas = 10; replicas = 10;
@ -43,7 +48,7 @@ in {
template.metadata.labels.app = "nginx"; template.metadata.labels.app = "nginx";
template.spec = { template.spec = {
containers.nginx = { containers.nginx = {
image = "${image.imageName}:${image.imageTag}"; image = config.docker.images.nginx.path;
imagePullPolicy = "Never"; imagePullPolicy = "Never";
}; };
}; };