···
mkKubeConfigOptions = prefix: {
description = "${prefix} kube-apiserver server address.";
76
-
default = "http://${cfg.apiserver.address}:${toString cfg.apiserver.port}";
76
+
default = "http://${if cfg.apiserver.advertiseAddress != null
77
+
then cfg.apiserver.advertiseAddress
78
+
else "127.0.0.1"}:${toString cfg.apiserver.port}";
···
keyFile = mkDefault cfg.kubeconfig.keyFile;
106
-
cniConfig = pkgs.buildEnv {
107
-
name = "kubernetes-cni-config";
108
-
paths = imap (i: entry:
109
-
pkgs.writeTextDir "${toString (10+i)}-${entry.type}.conf" (builtins.toJSON entry)
110
-
) cfg.kubelet.cni.config;
109
+
if cfg.kubelet.cni.config != [] && !(isNull cfg.kubelet.cni.configDir) then
110
+
throw "Verbatim CNI-config and CNI configDir cannot both be set."
111
+
else if !(isNull cfg.kubelet.cni.configDir) then
112
+
cfg.kubelet.cni.configDir
115
+
name = "kubernetes-cni-config";
116
+
paths = imap (i: entry:
117
+
pkgs.writeTextDir "${toString (10+i)}-${entry.type}.conf" (builtins.toJSON entry)
118
+
) cfg.kubelet.cni.config;
manifests = pkgs.buildEnv {
name = "kubernetes-manifests";
···
type = types.listOf types.str;
247
-
address = mkOption {
248
-
description = "Kubernetes apiserver listening address.";
249
-
default = "127.0.0.1";
253
-
publicAddress = mkOption {
255
+
bindAddress = mkOption {
255
-
Kubernetes apiserver public listening address used for read only and
257
+
The IP address on which to listen for the --secure-port port.
258
+
The associated interface(s) must be reachable by the rest
259
+
of the cluster, and by CLI/web clients.
258
-
default = cfg.apiserver.address;
261
+
default = "0.0.0.0";
···
677
+
configDir = mkOption {
678
+
description = "Path to Kubernetes CNI configuration directory.";
679
+
type = types.nullOr types.path;
···
(mkIf cfg.apiserver.enable {
systemd.services.kube-apiserver = {
895
-
description = "Kubernetes Kubelet Service";
904
+
description = "Kubernetes APIServer Service";
wantedBy = [ "kubernetes.target" ];
after = [ "network.target" "docker.service" ];
···
${optionalString (cfg.etcd.keyFile != null)
"--etcd-keyfile=${cfg.etcd.keyFile}"} \
--insecure-port=${toString cfg.apiserver.port} \
909
-
--bind-address=${toString cfg.apiserver.address} \
918
+
--bind-address=${cfg.apiserver.bindAddress} \
${optionalString (cfg.apiserver.advertiseAddress != null)
"--advertise-address=${cfg.apiserver.advertiseAddress}"} \
--allow-privileged=${boolToString cfg.apiserver.allowPrivileged}\