nixos/kubernetes: use system.path to handle dependency on flannel subnet.env

The current postStart step on flannel causes flannel.service to
sometimes hang, even when it's commanded to stop.
This commit is contained in:
Johan Thomsen
2019-02-20 21:08:56 +01:00
committed by Franz Pletz
parent 466beb0214
commit 7028fac35b
2 changed files with 19 additions and 12 deletions
@@ -161,7 +161,10 @@ in {
FLANNELD_KUBECONFIG_FILE = cfg.kubeconfig;
NODE_NAME = cfg.nodeName;
};
preStart = mkIf (cfg.storageBackend == "etcd") ''
preStart = ''
mkdir -p /run/flannel
touch /run/flannel/docker
'' + optionalString (cfg.storageBackend == "etcd") ''
echo "setting network configuration"
until ${pkgs.etcdctl.bin}/bin/etcdctl set /coreos.com/network/config '${builtins.toJSON networkConfig}'
do
@@ -169,13 +172,11 @@ in {
sleep 1
done
'';
postStart = ''
while [ ! -f /run/flannel/subnet.env ]
do
sleep 1
done
'';
serviceConfig.ExecStart = "${cfg.package}/bin/flannel";
serviceConfig = {
ExecStart = "${cfg.package}/bin/flannel";
Restart = "always";
RestartSec = "10s";
};
};
services.etcd.enable = mkDefault (cfg.storageBackend == "etcd" && cfg.etcd.endpoints == ["http://127.0.0.1:2379"]);