2019-03-12 20:33:56 +01:00
|
|
|
{ config, lib, kubenix, k8sVersion, ... }:
|
2019-02-27 12:06:18 +01:00
|
|
|
|
|
|
|
|
with lib;
|
|
|
|
|
|
|
|
|
|
let
|
|
|
|
|
pod1 = config.kubernetes.api.pods.pod1;
|
|
|
|
|
pod2 = config.kubernetes.api.pods.pod2;
|
|
|
|
|
in {
|
2019-03-07 23:23:07 +01:00
|
|
|
imports = with kubenix.modules; [ test k8s ];
|
2019-02-27 12:06:18 +01:00
|
|
|
|
|
|
|
|
test = {
|
|
|
|
|
name = "k8s-defaults";
|
|
|
|
|
description = "Simple k8s testing wheter name, apiVersion and kind are preset";
|
|
|
|
|
assertions = [{
|
|
|
|
|
message = "Should have label set with resource";
|
|
|
|
|
assertion = pod1.metadata.labels.resource-label == "value";
|
|
|
|
|
} {
|
|
|
|
|
message = "Should have default label set with group, version, kind";
|
|
|
|
|
assertion = pod1.metadata.labels.gvk-label == "value";
|
|
|
|
|
} {
|
|
|
|
|
message = "Should have conditional annotation set";
|
|
|
|
|
assertion = pod2.metadata.annotations.conditional-annotation == "value";
|
|
|
|
|
}];
|
|
|
|
|
};
|
|
|
|
|
|
2019-03-12 20:33:56 +01:00
|
|
|
kubernetes.version = k8sVersion;
|
|
|
|
|
|
2019-02-27 12:06:18 +01:00
|
|
|
kubernetes.api.pods.pod1 = {};
|
|
|
|
|
|
|
|
|
|
kubernetes.api.pods.pod2 = {
|
|
|
|
|
metadata.labels.custom-label = "value";
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
kubernetes.api.defaults = [{
|
|
|
|
|
resource = "pods";
|
|
|
|
|
default.metadata.labels.resource-label = "value";
|
|
|
|
|
} {
|
|
|
|
|
group = "core";
|
|
|
|
|
kind = "Pod";
|
|
|
|
|
version = "v1";
|
|
|
|
|
default.metadata.labels.gvk-label = "value";
|
|
|
|
|
} {
|
|
|
|
|
resource = "pods";
|
|
|
|
|
default = { config, ... }: {
|
|
|
|
|
config.metadata.annotations = mkIf (config.metadata.labels ? "custom-label") {
|
|
|
|
|
conditional-annotation = "value";
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
}];
|
|
|
|
|
}
|