kubenix/examples/nginx-deployment/test.nix
David Arnold 0c99276b50
fix: test kubernetes manifest
nix-repl> test-nginx = g.config.testing.testsByName.nginx-deployment.evaled.config.kubernetes.resources.deployments.nginx
nix-repl> test-nginx.spec.template.spec.containers.nginx.image
"nginx:dy4y4j45arjj9sgyjb90sv035sxglpv8"

vs

nix-repl> nginx = g.config.kubernetes.resources.deployments.nginx
nix-repl> nginx.spec.template.spec.containers.nginx.image
"docker.io/gatehub/nginx:dy4y4j45arjj9sgyjb90sv035sxglpv8"
2021-05-31 21:46:13 -05:00

30 lines
929 B
Nix

{ config, lib, pkgs, kubenix, test, ... }:
with lib;
{
imports = [ kubenix.modules.test ./module.nix ];
test = {
name = "nginx-deployment";
description = "Test testing nginx deployment";
script = ''
@pytest.mark.applymanifest('${test.kubernetes.resultYAML}')
def test_nginx_deployment(kube):
"""Tests whether nginx deployment gets successfully created"""
kube.wait_for_registered(timeout=30)
deployments = kube.get_deployments()
nginx_deploy = deployments.get('nginx')
assert nginx_deploy is not None
status = nginx_deploy.status()
assert status.readyReplicas == 10
# TODO: implement those kind of checks from the host machine into the cluster
# via port forwarding, prepare all runtimes accordingly
# ${pkgs.curl}/bin/curl http://nginx.default.svc.cluster.local | grep -i hello
'';
};
}