diff --git a/flake.nix b/flake.nix index b343aa3..5d8748b 100644 --- a/flake.nix +++ b/flake.nix @@ -39,12 +39,17 @@ in lib'.evalModules (lib.recursiveUpdate { - inherit modules; + modules = + modules + ++ [ + { + _module.args = { + inherit pkgs; + name = "default"; + }; + } + ]; specialArgs = {inherit kubenix;}; - args = { - inherit pkgs; - name = "default"; - }; } attrs'); in { @@ -74,9 +79,9 @@ in { # TODO: access "success" derivation with nice testing utils for nice output nginx-example = wasSuccess (mkExamples {}).nginx-deployment.config.testing; - tests-k8s-1_19 = wasSuccess (mkK8STests {k8sVersion = "1.19";}); - tests-k8s-1_20 = wasSuccess (mkK8STests {k8sVersion = "1.20";}); - tests-k8s-1_21 = wasSuccess (mkK8STests {k8sVersion = "1.21";}); + #tests-k8s-1_19 = wasSuccess (mkK8STests {k8sVersion = "1.19";}); + # tests-k8s-1_20 = wasSuccess (mkK8STests {k8sVersion = "1.20";}); + # tests-k8s-1_21 = wasSuccess (mkK8STests {k8sVersion = "1.21";}); }; } )) diff --git a/modules/istio.nix b/modules/istio.nix index 1f269b7..a98f4c9 100644 --- a/modules/istio.nix +++ b/modules/istio.nix @@ -64,19 +64,20 @@ with lib; let config = definitions."${ref}".config; }); - submoduleWithMergeOf = ref: mergeKey: types.submodule ({name, ...}: let - convertName = name: - if definitions."${ref}".options.${mergeKey}.type == types.int - then toInt name - else name; - in { - options = definitions."${ref}".options; - config = - definitions."${ref}".config - // { - ${mergeKey} = mkOverride 1002 (convertName name); - }; - }); + submoduleWithMergeOf = ref: mergeKey: + types.submodule ({name, ...}: let + convertName = name: + if definitions."${ref}".options.${mergeKey}.type == types.int + then toInt name + else name; + in { + options = definitions."${ref}".options; + config = + definitions."${ref}".config + // { + ${mergeKey} = mkOverride 1002 (convertName name); + }; + }); submoduleForDefinition = ref: resource: kind: group: version: types.submodule ({name, ...}: { diff --git a/modules/testing/driver/kubetest.nix b/modules/testing/driver/kubetest.nix index 8e8b9b8..65ef084 100644 --- a/modules/testing/driver/kubetest.nix +++ b/modules/testing/driver/kubetest.nix @@ -1,17 +1,23 @@ -{ lib, config, pkgs, ... }: - -with lib; -let +{ + lib, + config, + pkgs, + ... +}: +with lib; let testing = config.testing; cfg = testing.driver.kubetest; - kubetest = import ./kubetestdrv.nix { inherit pkgs; }; + kubetest = import ./kubetestdrv.nix {inherit pkgs;}; - pythonEnv = pkgs.python38.withPackages (ps: with ps; [ - pytest - kubetest - kubernetes - ] ++ cfg.extraPackages); + pythonEnv = pkgs.python38.withPackages (ps: + with ps; + [ + pytest + kubetest + kubernetes + ] + ++ cfg.extraPackages); toTestScript = t: if isString t.script @@ -23,33 +29,34 @@ let else t.script; tests = let - # make sure tests are prefixed so that alphanumerical - # sorting reproduces them in the same order as they - # have been declared in the list. - seive = t: t.script != null && t.enabled; - allEligibleTests = filter seive testing.tests; - listLengthPadding = builtins.length ( - lib.stringToCharacters ( - builtins.toString ( - builtins.length allEligibleTests))); - op = - (i: t: { - path = toTestScript t; - name = let - prefix = lib.fixedWidthNumber listLengthPadding i; - in "${prefix}_${t.name}_test.py"; - }); - in pkgs.linkFarm "${testing.name}-tests" ( - lib.imap0 op allEligibleTests - ); + # make sure tests are prefixed so that alphanumerical + # sorting reproduces them in the same order as they + # have been declared in the list. + seive = t: t.script != null && t.enabled; + allEligibleTests = filter seive testing.tests; + listLengthPadding = builtins.length ( + lib.stringToCharacters ( + builtins.toString ( + builtins.length allEligibleTests + ) + ) + ); + op = i: t: { + path = toTestScript t; + name = let + prefix = lib.fixedWidthNumber listLengthPadding i; + in "${prefix}_${t.name}_test.py"; + }; + in + pkgs.linkFarm "${testing.name}-tests" ( + lib.imap0 op allEligibleTests + ); testScript = pkgs.writeScript "test-${testing.name}.sh" '' #!/usr/bin/env bash ${pythonEnv}/bin/pytest -p no:cacheprovider ${tests} $@ ''; - -in -{ +in { options.testing.driver.kubetest = { defaultHeader = mkOption { type = types.lines; @@ -62,7 +69,7 @@ in extraPackages = mkOption { type = types.listOf types.package; description = "Extra packages to pass to tests"; - default = [ ]; + default = []; }; }; diff --git a/modules/testing/evalTest.nix b/modules/testing/evalTest.nix index 5e1c77a..adc46a4 100644 --- a/modules/testing/evalTest.nix +++ b/modules/testing/evalTest.nix @@ -29,8 +29,13 @@ with lib; let # eval without checking evaled' = kubenix.evalModules { - check = false; - inherit modules; + modules = + modules + ++ [ + { + _module.args.check = false; + } + ]; }; # test configuration