k3s: test all versions

Since https://github.com/NixOS/nixpkgs/issues/213943 got fixed, only the main k3s derivation is tested.

Here I changed the tests a bit to make them test all provided k3s derivations

@moduon MT-1718

Changed files
+20 -8
nixos
+14 -2
nixos/tests/k3s/default.nix
···
{ system ? builtins.currentSystem
, pkgs ? import ../../.. { inherit system; }
}:
{
# Run a single node k3s cluster and verify a pod can run
-
single-node = import ./single-node.nix { inherit system pkgs; };
# Run a multi-node k3s cluster and verify pod networking works across nodes
-
multi-node = import ./multi-node.nix { inherit system pkgs; };
}
···
{ system ? builtins.currentSystem
, pkgs ? import ../../.. { inherit system; }
+
, lib ? pkgs.lib
}:
+
let
+
allK3s = {
+
inherit (pkgs)
+
k3s
+
k3s_1_23
+
k3s_1_24
+
k3s_1_25
+
k3s_1_26
+
;
+
};
+
in
{
# Run a single node k3s cluster and verify a pod can run
+
single-node = lib.mapAttrs (_: k3s: import ./single-node.nix { inherit system pkgs k3s; }) allK3s;
# Run a multi-node k3s cluster and verify pod networking works across nodes
+
multi-node = lib.mapAttrs (_: k3s: import ./multi-node.nix { inherit system pkgs k3s; }) allK3s;
}
+3 -3
nixos/tests/k3s/multi-node.nix
···
-
import ../make-test-python.nix ({ pkgs, lib, ... }:
let
imageEnv = pkgs.buildEnv {
name = "k3s-pause-image-env";
···
tokenFile = pkgs.writeText "token" "p@s$w0rd";
in
{
-
name = "k3s-multi-node";
nodes = {
server = { pkgs, ... }: {
···
inherit tokenFile;
enable = true;
role = "server";
-
package = pkgs.k3s;
clusterInit = true;
extraFlags = builtins.toString [
"--disable" "coredns"
···
+
import ../make-test-python.nix ({ pkgs, lib, k3s, ... }:
let
imageEnv = pkgs.buildEnv {
name = "k3s-pause-image-env";
···
tokenFile = pkgs.writeText "token" "p@s$w0rd";
in
{
+
name = "${k3s.name}-multi-node";
nodes = {
server = { pkgs, ... }: {
···
inherit tokenFile;
enable = true;
role = "server";
+
package = k3s;
clusterInit = true;
extraFlags = builtins.toString [
"--disable" "coredns"
+3 -3
nixos/tests/k3s/single-node.nix
···
-
import ../make-test-python.nix ({ pkgs, lib, ... }:
let
imageEnv = pkgs.buildEnv {
name = "k3s-pause-image-env";
···
'';
in
{
-
name = "k3s";
meta = with pkgs.lib.maintainers; {
maintainers = [ euank ];
};
···
services.k3s.enable = true;
services.k3s.role = "server";
-
services.k3s.package = pkgs.k3s;
# Slightly reduce resource usage
services.k3s.extraFlags = builtins.toString [
"--disable" "coredns"
···
+
import ../make-test-python.nix ({ pkgs, lib, k3s, ... }:
let
imageEnv = pkgs.buildEnv {
name = "k3s-pause-image-env";
···
'';
in
{
+
name = "${k3s.name}-single-node";
meta = with pkgs.lib.maintainers; {
maintainers = [ euank ];
};
···
services.k3s.enable = true;
services.k3s.role = "server";
+
services.k3s.package = k3s;
# Slightly reduce resource usage
services.k3s.extraFlags = builtins.toString [
"--disable" "coredns"