2019-05-05 11:55:19 +02:00
|
|
|
{ pkgs ? import <nixpkgs> {}, nixosPath ? toString <nixpkgs/nixos>, lib ? pkgs.lib
|
2019-05-03 23:25:49 +02:00
|
|
|
, e2e ? true, throwError ? true }:
|
2019-03-08 00:39:09 +01:00
|
|
|
|
|
|
|
|
with lib;
|
2019-02-10 21:03:47 +01:00
|
|
|
|
|
|
|
|
let
|
2019-02-12 16:22:18 +01:00
|
|
|
kubenix = import ./. { inherit pkgs; };
|
|
|
|
|
|
|
|
|
|
lib = kubenix.lib;
|
|
|
|
|
|
2019-09-25 00:58:39 +02:00
|
|
|
generateK8S = name: spec: import ./generators/k8s {
|
|
|
|
|
inherit name;
|
2019-02-10 21:03:47 +01:00
|
|
|
inherit pkgs;
|
|
|
|
|
inherit (pkgs) lib;
|
2019-02-13 17:04:13 +01:00
|
|
|
inherit spec;
|
2019-02-10 21:03:47 +01:00
|
|
|
};
|
|
|
|
|
|
2019-03-05 20:57:55 +01:00
|
|
|
generateIstio = import ./generators/istio {
|
2019-02-12 11:04:35 +01:00
|
|
|
inherit pkgs;
|
|
|
|
|
inherit (pkgs) lib;
|
|
|
|
|
};
|
2019-03-08 00:39:09 +01:00
|
|
|
|
2019-05-05 12:13:09 +02:00
|
|
|
runK8STests = k8sVersion: import ./tests {
|
|
|
|
|
inherit pkgs lib kubenix k8sVersion e2e throwError nixosPath;
|
|
|
|
|
};
|
2019-03-08 00:39:09 +01:00
|
|
|
in rec {
|
2019-09-25 00:58:39 +02:00
|
|
|
generate.k8s = pkgs.linkFarm "k8s-generated.nix" [
|
|
|
|
|
{
|
|
|
|
|
name = "v1.8.nix";
|
2020-04-04 18:25:04 +07:00
|
|
|
path = generateK8S "v1.8" (builtins.fetchurl {
|
|
|
|
|
url = "https://github.com/kubernetes/kubernetes/raw/v1.8.15/api/openapi-spec/swagger.json";
|
|
|
|
|
sha256 = "112c64gq6ksskzqscgwj8l30mq80w2ha9skpz5ixgvjjz6amylh8";
|
|
|
|
|
});
|
2019-09-25 00:58:39 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
{
|
|
|
|
|
name = "v1.9.nix";
|
2020-04-04 18:25:04 +07:00
|
|
|
path = generateK8S "v1.9" (builtins.fetchurl {
|
|
|
|
|
url = "https://github.com/kubernetes/kubernetes/raw/v1.9.11/api/openapi-spec/swagger.json";
|
|
|
|
|
sha256 = "0x3ka044ii39ln0f8q2m3w9vwd4vf3bsmbwkc793bkw46w879vvq";
|
|
|
|
|
});
|
2019-09-25 00:58:39 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
{
|
|
|
|
|
name = "v1.10.nix";
|
2020-04-04 18:25:04 +07:00
|
|
|
path = generateK8S "v1.10" (builtins.fetchurl {
|
|
|
|
|
url = "https://github.com/kubernetes/kubernetes/raw/v1.10.13/api/openapi-spec/swagger.json";
|
|
|
|
|
sha256 = "133ldlrlh9yfgp39ij1qm9mwlb92igbnxf5flfm1ffifdsd5j3hy";
|
|
|
|
|
});
|
2019-09-25 00:58:39 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
{
|
|
|
|
|
name = "v1.11.nix";
|
2020-04-04 18:25:04 +07:00
|
|
|
path = generateK8S "v1.11" (builtins.fetchurl {
|
|
|
|
|
url = "https://github.com/kubernetes/kubernetes/raw/v1.11.8/api/openapi-spec/swagger.json";
|
|
|
|
|
sha256 = "1c7wjvi5rh69lpm373jp3z1dqzyzgkk5csr8qxw0pqr26bhr7w6s";
|
|
|
|
|
});
|
2019-09-25 00:58:39 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
{
|
|
|
|
|
name = "v1.12.nix";
|
2020-04-04 18:25:04 +07:00
|
|
|
path = generateK8S "v1.12" (builtins.fetchurl {
|
|
|
|
|
url = "https://github.com/kubernetes/kubernetes/raw/v1.12.6/api/openapi-spec/swagger.json";
|
|
|
|
|
sha256 = "1bmvmwd8jakh5q2rcf17y4fdn1pb4srvcm816m9q5kavz60wdbkx";
|
|
|
|
|
});
|
2019-09-25 00:58:39 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
{
|
|
|
|
|
name = "v1.13.nix";
|
2020-04-04 18:25:04 +07:00
|
|
|
path = generateK8S "v1.13" (builtins.fetchurl {
|
|
|
|
|
url = "https://github.com/kubernetes/kubernetes/raw/v1.13.4/api/openapi-spec/swagger.json";
|
|
|
|
|
sha256 = "158izzjlq3qayhfg2ns5w6nwwn11gzxn1pyyxjz6rvvk526drs92";
|
|
|
|
|
});
|
2019-09-25 00:58:39 +02:00
|
|
|
}
|
2020-01-14 19:11:55 +00:00
|
|
|
|
|
|
|
|
{
|
|
|
|
|
name = "v1.14.nix";
|
2020-04-04 18:25:04 +07:00
|
|
|
path = generateK8S "v1.14" (builtins.fetchurl {
|
|
|
|
|
url = "https://github.com/kubernetes/kubernetes/raw/v1.14.10/api/openapi-spec/swagger.json";
|
|
|
|
|
sha256 = "017jf5pr559d3a6cacbz79c892fh50iz7f0zcg8iwsr5af10h8xr";
|
|
|
|
|
});
|
2020-01-14 19:11:55 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
{
|
|
|
|
|
name = "v1.15.nix";
|
2020-04-04 18:25:04 +07:00
|
|
|
path = generateK8S "v1.15" (builtins.fetchurl {
|
|
|
|
|
url = "https://github.com/kubernetes/kubernetes/raw/v1.15.7/api/openapi-spec/swagger.json";
|
|
|
|
|
sha256 = "0lrya0i632xjdyr92q8hriifk6xr8cbv2qymfcrshrmx1a45h0kp";
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
{
|
|
|
|
|
name = "v1.16.nix";
|
|
|
|
|
path = generateK8S "v1.16" (builtins.fetchurl {
|
|
|
|
|
url = "https://github.com/kubernetes/kubernetes/raw/v1.16.8/api/openapi-spec/swagger.json";
|
|
|
|
|
sha256 = "06rh8phsdfvw0mg5nxnnpqfxfmgcka4rq64ardyzns0s2kv6x8l3";
|
|
|
|
|
});
|
2020-01-14 19:11:55 +00:00
|
|
|
}
|
|
|
|
|
|
2020-04-04 18:25:04 +07:00
|
|
|
{
|
|
|
|
|
name = "v1.17.nix";
|
|
|
|
|
path = generateK8S "v1.17" (builtins.fetchurl {
|
|
|
|
|
url = "https://github.com/kubernetes/kubernetes/raw/v1.17.4/api/openapi-spec/swagger.json";
|
|
|
|
|
sha256 = "1yljdpi172dzj0djc9s665r9kz423wd30d7gxvnf3rswg73ial8k";
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
{
|
|
|
|
|
name = "v1.18.nix";
|
|
|
|
|
path = generateK8S "v1.18" (builtins.fetchurl {
|
|
|
|
|
url = "https://github.com/kubernetes/kubernetes/raw/v1.18.0/api/openapi-spec/swagger.json";
|
|
|
|
|
sha256 = "0f3qdn8bfc25a0h8cbdh75mpz1dykbmgymn6qr0rjnisc124fsy1";
|
|
|
|
|
});
|
|
|
|
|
}
|
2019-09-25 00:58:39 +02:00
|
|
|
];
|
2019-02-12 11:04:35 +01:00
|
|
|
|
|
|
|
|
generate.istio = pkgs.linkFarm "istio-generated.nix" [{
|
|
|
|
|
name = "latest.nix";
|
2019-03-05 20:57:55 +01:00
|
|
|
path = generateIstio;
|
2019-02-10 21:03:47 +01:00
|
|
|
}];
|
|
|
|
|
|
2019-05-05 12:13:09 +02:00
|
|
|
tests = {
|
2019-03-08 00:39:09 +01:00
|
|
|
k8s-1_11 = runK8STests "1.11";
|
|
|
|
|
k8s-1_12 = runK8STests "1.12";
|
|
|
|
|
k8s-1_13 = runK8STests "1.13";
|
2020-01-14 19:11:55 +00:00
|
|
|
k8s-1_14 = runK8STests "1.14";
|
|
|
|
|
k8s-1_15 = runK8STests "1.15";
|
2020-04-04 18:25:04 +07:00
|
|
|
k8s-1_16 = runK8STests "1.16";
|
|
|
|
|
k8s-1_17 = runK8STests "1.17";
|
|
|
|
|
k8s-1_18 = runK8STests "1.18";
|
2019-02-12 16:22:18 +01:00
|
|
|
};
|
2019-03-07 18:03:51 +01:00
|
|
|
|
2019-05-05 12:13:09 +02:00
|
|
|
test-results = pkgs.recurseIntoAttrs (mapAttrs (_: t: pkgs.recurseIntoAttrs {
|
|
|
|
|
results = pkgs.recurseIntoAttrs t.results;
|
|
|
|
|
result = t.result;
|
|
|
|
|
}) tests);
|
|
|
|
|
|
2019-03-12 20:33:56 +01:00
|
|
|
test-check =
|
2019-05-05 12:13:09 +02:00
|
|
|
if !(all (test: test.success) (attrValues tests))
|
2019-03-08 00:39:09 +01:00
|
|
|
then throw "tests failed"
|
|
|
|
|
else true;
|
|
|
|
|
|
2019-03-07 18:03:51 +01:00
|
|
|
examples = import ./examples {};
|
2019-02-10 21:03:47 +01:00
|
|
|
}
|