From 1fbc64a9cd0df262489fc0fbf53f8c22edc6dbe3 Mon Sep 17 00:00:00 2001 From: Johan Thomsen Date: Mon, 12 Feb 2018 16:44:40 +0100 Subject: [PATCH] Allowed for Kubernetes module to accept a raw cniConfig dir, instead of it building an environment from config attrSets - ref #14 --- .../services/cluster/kubernetes/default.nix | 23 ++++++++++++++----- 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/nixos/modules/services/cluster/kubernetes/default.nix b/nixos/modules/services/cluster/kubernetes/default.nix index 077953e4d4f8b..f8a586fe76295 100644 --- a/nixos/modules/services/cluster/kubernetes/default.nix +++ b/nixos/modules/services/cluster/kubernetes/default.nix @@ -72,12 +72,16 @@ let keyFile = mkDefault cfg.kubeconfig.keyFile; }; - cniConfig = pkgs.buildEnv { - name = "kubernetes-cni-config"; - paths = imap (i: entry: - pkgs.writeTextDir "${toString (10+i)}-${entry.type}.conf" (builtins.toJSON entry) - ) cfg.kubelet.cni.config; - }; + cniConfig = + if cfg.kubelet.cni.configDir == null then + (pkgs.buildEnv { + name = "kubernetes-cni-config"; + paths = imap (i: entry: + pkgs.writeTextDir "${toString (10+i)}-${entry.type}.conf" (builtins.toJSON entry) + ) cfg.kubelet.cni.config; + }) + else + (cfg.kubelet.cni.configDir); manifests = pkgs.buildEnv { name = "kubernetes-manifests"; @@ -629,6 +633,12 @@ in { }] ''; }; + + configDir = mkOption { + description = "Path to Kubernetes CNI configuration directory."; + type = types.nullOr types.path; + default = null; + }; }; manifests = mkOption { @@ -969,6 +979,7 @@ in { ${optionalString (cfg.clusterCidr!=null) "--cluster-cidr=${cfg.clusterCidr}"} \ --allocate-node-cidrs=true \ + --service-cluster-ip-range=10.90.0.0/16 \ ${optionalString (cfg.controllerManager.featureGates != []) "--feature-gates=${concatMapStringsSep "," (feature: "${feature}=true") cfg.controllerManager.featureGates}"} \ ${optionalString cfg.verbose "--v=6"} \