mirror of
https://github.com/TECHNOFAB11/kubenix.git
synced 2025-12-12 08:00:06 +01:00
feat(helm): implement simple e2e test
This commit is contained in:
parent
142fca3546
commit
1b32ca7bbd
1 changed files with 51 additions and 4 deletions
|
|
@ -1,10 +1,33 @@
|
|||
{ config, test, kubenix, k8s, helm, ... }:
|
||||
{ config, lib, test, pkgs, kubenix, k8s, helm, ... }:
|
||||
|
||||
with lib;
|
||||
with k8s;
|
||||
with pkgs.dockerTools;
|
||||
|
||||
let
|
||||
corev1 = config.kubernetes.api.core.v1;
|
||||
appsv1beta2 = config.kubernetes.api.apps.v1beta2;
|
||||
|
||||
postgresql = pullImage {
|
||||
imageName = "docker.io/bitnami/postgresql";
|
||||
imageDigest = "sha256:16485a9b19696958ab7259e0d2c3efa0ef7f300b6fd1beb13a6643e120970a05";
|
||||
sha256 = "0hqdkpk7s3wcy5qsy6dzgzqc0rbpavpghly350p97j1janxbyhc7";
|
||||
finalImageTag = "10.7.0";
|
||||
};
|
||||
|
||||
postgresqlExporter = pullImage {
|
||||
imageName = "docker.io/wrouesnel/postgres_exporter";
|
||||
imageDigest = "sha256:dd8051322ceb8995d3d7f116041a2116815e01e88232a90f635ebde8dcc4d3f4";
|
||||
sha256 = "09mva5jx1g4v47s4lr1pkpfzzmxc7z9dnajfizffm3rxwl0qzjji";
|
||||
finalImageTag = "v0.4.7";
|
||||
};
|
||||
|
||||
minideb = pullImage {
|
||||
imageName = "docker.io/bitnami/minideb";
|
||||
imageDigest = "sha256:363011b4ad5308e7f2aee505b80730cbaadf9d41ff87879403f567dd98cfb5cf";
|
||||
sha256 = "1vfyfdhmgidi7hc8kjflpq91vkzdqi9sj78g51ci8nyarclr808q";
|
||||
finalImageTag = "latest";
|
||||
};
|
||||
in {
|
||||
imports = [
|
||||
kubenix.helm
|
||||
|
|
@ -27,14 +50,21 @@ in {
|
|||
} {
|
||||
message = "should have namespace defined";
|
||||
assertion =
|
||||
appsv1beta2.StatefulSet.app-psql-postgresql-master.metadata.namespace == "test-namespace";
|
||||
appsv1beta2.StatefulSet.app-psql-postgresql-master.metadata.namespace == "test";
|
||||
}];
|
||||
testScript = ''
|
||||
$kube->waitUntilSucceeds("docker load < ${postgresql}");
|
||||
$kube->waitUntilSucceeds("docker load < ${postgresqlExporter}");
|
||||
$kube->waitUntilSucceeds("docker load < ${minideb}");
|
||||
$kube->waitUntilSucceeds("kubectl apply -f ${toYAML config.kubernetes.generated}");
|
||||
$kube->waitUntilSucceeds("PGPASSWORD=postgres ${pkgs.postgresql}/bin/psql -h app-psql-postgresql.test.svc.cluster.local -U postgres -l");
|
||||
'';
|
||||
};
|
||||
|
||||
kubernetes.api.namespaces.test-namespace = {};
|
||||
kubernetes.api.namespaces.test = {};
|
||||
|
||||
kubernetes.helm.instances.app-psql = {
|
||||
namespace = "test-namespace";
|
||||
namespace = "test";
|
||||
chart = helm.fetch {
|
||||
chart = "stable/postgresql";
|
||||
version = "3.0.0";
|
||||
|
|
@ -42,8 +72,25 @@ in {
|
|||
};
|
||||
|
||||
values = {
|
||||
image = {
|
||||
repository = "bitnami/postgresql";
|
||||
tag = "10.7.0";
|
||||
pullPolicy = "IfNotPresent";
|
||||
};
|
||||
volumePermissions.image = {
|
||||
repository = "bitnami/minideb";
|
||||
tag = "latest";
|
||||
pullPolicy = "IfNotPresent";
|
||||
};
|
||||
metrics.image = {
|
||||
repository = "wrouesnel/postgres_exporter";
|
||||
tag = "v0.4.7";
|
||||
pullPolicy = "IfNotPresent";
|
||||
};
|
||||
replication.enabled = true;
|
||||
replication.slaveReplicas = 2;
|
||||
postgresqlPassword = "postgres";
|
||||
persistence.enabled = false;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue