diff options
author | Jörg Thalheim <Mic92@users.noreply.github.com> | 2021-07-19 15:22:50 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-07-19 15:22:50 +0100 |
commit | 58128d690dce9e88936be24c314b0f66875550a7 (patch) | |
tree | 8c8e3e0f328ddfb4972196190d4459ebacdb61d4 /nixos | |
parent | d53846e29ef3d614b73ff749c0dab659d8991062 (diff) | |
parent | efbd199ffbb5a09a7400e3adcef7552d263c9668 (diff) | |
download | nixpkgs-58128d690dce9e88936be24c314b0f66875550a7.tar nixpkgs-58128d690dce9e88936be24c314b0f66875550a7.tar.gz nixpkgs-58128d690dce9e88936be24c314b0f66875550a7.tar.bz2 nixpkgs-58128d690dce9e88936be24c314b0f66875550a7.tar.lz nixpkgs-58128d690dce9e88936be24c314b0f66875550a7.tar.xz nixpkgs-58128d690dce9e88936be24c314b0f66875550a7.tar.zst nixpkgs-58128d690dce9e88936be24c314b0f66875550a7.zip |
Merge pull request #130633 from zimbatm/k3s-configPath
nixos/k3s: add configPath option
Diffstat (limited to 'nixos')
-rw-r--r-- | nixos/modules/services/cluster/k3s/default.nix | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/nixos/modules/services/cluster/k3s/default.nix b/nixos/modules/services/cluster/k3s/default.nix index d0fb8cc5098..e5c51441690 100644 --- a/nixos/modules/services/cluster/k3s/default.nix +++ b/nixos/modules/services/cluster/k3s/default.nix @@ -67,6 +67,12 @@ in default = false; description = "Only run the server. This option only makes sense for a server."; }; + + configPath = mkOption { + type = types.nullOr types.path; + default = null; + description = "File path containing the k3s YAML config. This is useful when the config is generated (for example on boot)."; + }; }; # implementation @@ -74,12 +80,12 @@ in config = mkIf cfg.enable { assertions = [ { - assertion = cfg.role == "agent" -> cfg.serverAddr != ""; - message = "serverAddr should be set if role is 'agent'"; + assertion = cfg.role == "agent" -> (cfg.configPath != null || cfg.serverAddr != ""); + message = "serverAddr or configPath (with 'server' key) should be set if role is 'agent'"; } { - assertion = cfg.role == "agent" -> cfg.token != "" || cfg.tokenFile != null; - message = "token or tokenFile should be set if role is 'agent'"; + assertion = cfg.role == "agent" -> cfg.configPath != null || cfg.tokenFile != null || cfg.token != ""; + message = "token or tokenFile or configPath (with 'token' or 'token-file' keys) should be set if role is 'agent'"; } ]; @@ -115,12 +121,10 @@ in "${cfg.package}/bin/k3s ${cfg.role}" ] ++ (optional cfg.docker "--docker") ++ (optional cfg.disableAgent "--disable-agent") - ++ (optional (cfg.role == "agent") "--server ${cfg.serverAddr} ${ - if cfg.tokenFile != null then - "--token-file ${cfg.tokenFile}" - else - "--token ${cfg.token}" - }") + ++ (optional (cfg.serverAddr != "") "--server ${cfg.serverAddr}") + ++ (optional (cfg.token != "") "--token ${cfg.token}") + ++ (optional (cfg.tokenFile != null) "--token-file ${cfg.tokenFile}") + ++ (optional (cfg.configPath != null) "--config ${cfg.configPath}") ++ [ cfg.extraFlags ] ); }; |