From cc2790ff1ed42d625bfe9073c390c215b8b52e72 Mon Sep 17 00:00:00 2001 From: Robert Rose Date: Mon, 15 Jul 2024 22:46:52 +0200 Subject: [PATCH] nixos/k3s: accept a list of extraFlags Accept a list of strings for the extraFlags option in addition to the previous single string. --- .../modules/services/cluster/k3s/default.nix | 11 +++++---- nixos/tests/k3s/auto-deploy.nix | 2 +- nixos/tests/k3s/etcd.nix | 20 ++++++---------- nixos/tests/k3s/multi-node.nix | 23 +++++++------------ nixos/tests/k3s/single-node.nix | 20 ++++++---------- 5 files changed, 30 insertions(+), 46 deletions(-) diff --git a/nixos/modules/services/cluster/k3s/default.nix b/nixos/modules/services/cluster/k3s/default.nix index 9274779088a6..cd42b18fe503 100644 --- a/nixos/modules/services/cluster/k3s/default.nix +++ b/nixos/modules/services/cluster/k3s/default.nix @@ -206,9 +206,12 @@ in extraFlags = mkOption { description = "Extra flags to pass to the k3s command."; - type = types.str; - default = ""; - example = "--no-deploy traefik --cluster-cidr 10.24.0.0/16"; + type = with types; either str (listOf str); + default = [ ]; + example = [ + "--no-deploy traefik" + "--cluster-cidr 10.24.0.0/16" + ]; }; disableAgent = mkOption { @@ -427,7 +430,7 @@ in ++ (optional (cfg.token != "") "--token ${cfg.token}") ++ (optional (cfg.tokenFile != null) "--token-file ${cfg.tokenFile}") ++ (optional (cfg.configPath != null) "--config ${cfg.configPath}") - ++ [ cfg.extraFlags ] + ++ (lib.flatten cfg.extraFlags) ); }; }; diff --git a/nixos/tests/k3s/auto-deploy.nix b/nixos/tests/k3s/auto-deploy.nix index 11eed4aef95f..c25503ac1087 100644 --- a/nixos/tests/k3s/auto-deploy.nix +++ b/nixos/tests/k3s/auto-deploy.nix @@ -49,7 +49,7 @@ import ../make-test-python.nix ( services.k3s.role = "server"; services.k3s.package = k3s; # Slightly reduce resource usage - services.k3s.extraFlags = builtins.toString [ + services.k3s.extraFlags = [ "--disable coredns" "--disable local-storage" "--disable metrics-server" diff --git a/nixos/tests/k3s/etcd.nix b/nixos/tests/k3s/etcd.nix index 149185d551d7..2616ab02a609 100644 --- a/nixos/tests/k3s/etcd.nix +++ b/nixos/tests/k3s/etcd.nix @@ -50,20 +50,14 @@ import ../make-test-python.nix ( services.k3s = { enable = true; role = "server"; - extraFlags = builtins.toString [ + extraFlags = [ "--datastore-endpoint=\"http://192.168.1.1:2379\"" - "--disable" - "coredns" - "--disable" - "local-storage" - "--disable" - "metrics-server" - "--disable" - "servicelb" - "--disable" - "traefik" - "--node-ip" - "192.168.1.2" + "--disable coredns" + "--disable local-storage" + "--disable metrics-server" + "--disable servicelb" + "--disable traefik" + "--node-ip 192.168.1.2" ]; }; diff --git a/nixos/tests/k3s/multi-node.nix b/nixos/tests/k3s/multi-node.nix index 361f4946660d..5fe106453f30 100644 --- a/nixos/tests/k3s/multi-node.nix +++ b/nixos/tests/k3s/multi-node.nix @@ -76,21 +76,14 @@ import ../make-test-python.nix ( role = "server"; package = k3s; clusterInit = true; - extraFlags = builtins.toString [ - "--disable" - "coredns" - "--disable" - "local-storage" - "--disable" - "metrics-server" - "--disable" - "servicelb" - "--disable" - "traefik" - "--node-ip" - "192.168.1.1" - "--pause-image" - "test.local/pause:local" + extraFlags = [ + "--disable coredns" + "--disable local-storage" + "--disable metrics-server" + "--disable servicelb" + "--disable traefik" + "--node-ip 192.168.1.1" + "--pause-image test.local/pause:local" ]; }; networking.firewall.allowedTCPPorts = [ diff --git a/nixos/tests/k3s/single-node.nix b/nixos/tests/k3s/single-node.nix index e0bc80e8614f..145bce324299 100644 --- a/nixos/tests/k3s/single-node.nix +++ b/nixos/tests/k3s/single-node.nix @@ -58,19 +58,13 @@ import ../make-test-python.nix ( services.k3s.role = "server"; services.k3s.package = k3s; # Slightly reduce resource usage - services.k3s.extraFlags = builtins.toString [ - "--disable" - "coredns" - "--disable" - "local-storage" - "--disable" - "metrics-server" - "--disable" - "servicelb" - "--disable" - "traefik" - "--pause-image" - "test.local/pause:local" + services.k3s.extraFlags = [ + "--disable coredns" + "--disable local-storage" + "--disable metrics-server" + "--disable servicelb" + "--disable traefik" + "--pause-image test.local/pause:local" ]; users.users = {