This commit is contained in:
David Arnold 2021-05-06 16:07:24 -04:00
parent bbc5e3d477
commit 1bd3fe4d4e
No known key found for this signature in database
GPG key ID: 6D6A936E69C59D08
22 changed files with 49 additions and 609 deletions

View file

@ -1,4 +1,4 @@
{ config, lib, kubenix, pkgs, k8sVersion, ... }:
{ config, lib, kubenix, pkgs, ... }:
with lib;
@ -23,8 +23,6 @@ in {
'';
};
kubernetes.version = k8sVersion;
kubernetes.customTypes = [
{
group = "stable.example.com";

View file

@ -1,4 +1,4 @@
{ config, lib, kubenix, k8sVersion, ... }:
{ config, lib, kubenix, ... }:
with lib;
@ -23,8 +23,6 @@ in {
}];
};
kubernetes.version = k8sVersion;
kubernetes.resources.pods.pod1 = {};
kubernetes.resources.pods.pod2 = {

View file

@ -1,70 +0,0 @@
{ config, lib, pkgs, kubenix, images, k8sVersion, ... }:
with lib;
let
cfg = config.kubernetes.api.resources.deployments.nginx;
image = images.nginx;
in {
imports = [ kubenix.modules.test kubenix.modules.k8s kubenix.modules.docker ];
test = {
distro = "k3s";
name = "k8s-deployment-k3s";
description = "Simple k8s testing a simple deployment";
assertions = [{
message = "should have correct apiVersion and kind set";
assertion =
if ((builtins.compareVersions config.kubernetes.version "1.7") <= 0)
then cfg.apiVersion == "apps/v1beta1"
else if ((builtins.compareVersions config.kubernetes.version "1.8") <= 0)
then cfg.apiVersion == "apps/v1beta2"
else cfg.apiVersion == "apps/v1";
} {
message = "should have corrent kind set";
assertion = cfg.kind == "Deployment";
} {
message = "should have replicas set";
assertion = cfg.spec.replicas == 10;
}];
extraConfiguration = {
environment.systemPackages = [ pkgs.curl ];
services.kubernetes.kubelet.seedDockerImages = config.docker.export;
};
testScript = ''
kube.wait_until_succeeds("kubectl apply -f ${config.kubernetes.result}")
kube.succeed("kubectl get deployment | grep -i nginx")
kube.wait_until_succeeds("kubectl get deployment -o go-template nginx --template={{.status.readyReplicas}} | grep 10")
kube.wait_until_succeeds("curl http://nginx.default.svc.cluster.local | grep -i hello")
'';
};
docker.images.nginx.image = image;
kubernetes.version = k8sVersion;
kubernetes.resources.deployments.nginx = {
spec = {
replicas = 10;
selector.matchLabels.app = "nginx";
template.metadata.labels.app = "nginx";
template.spec = {
containers.nginx = {
image = config.docker.images.nginx.path;
imagePullPolicy = "Never";
};
};
};
};
kubernetes.resources.services.nginx = {
spec = {
ports = [{
name = "http";
port = 80;
}];
selector.app = "nginx";
};
};
}

View file

@ -42,7 +42,6 @@ in {
message = "should have replicas set";
assertion = cfg.spec.replicas == 3;
}];
driver = "kubetest";
script = ''
import time

View file

@ -1,4 +1,4 @@
{ config, lib, kubenix, k8sVersion, ... }:
{ config, lib, kubenix, ... }:
with lib;
@ -21,8 +21,6 @@ in {
}];
};
kubernetes.version = k8sVersion;
kubernetes.imports = [
./pod.json
./deployment.yaml

View file

@ -1,4 +1,4 @@
{ config, lib, kubenix, pkgs, k8sVersion, ... }:
{ config, lib, kubenix, pkgs, ... }:
with lib;
@ -19,8 +19,6 @@ in {
}];
};
kubernetes.version = k8sVersion;
kubernetes.resources.customResourceDefinitions.crontabs = {
apiVersion = "apiextensions.k8s.io/v1";
metadata.name = "crontabs.stable.example.com";

View file

@ -1,4 +1,4 @@
{ config, kubenix, k8sVersion, ... }:
{ config, kubenix, ... }:
let
cfg = config.kubernetes.api.resources.pods.nginx;
@ -17,7 +17,5 @@ in {
}];
};
kubernetes.version = k8sVersion;
kubernetes.resources.pods.nginx = {};
}