aboutsummaryrefslogtreecommitdiff
path: root/nixos/modules/services/cluster/kubernetes/kubelet.nix
diff options
context:
space:
mode:
authorChristian Albrecht <christian.albrecht@mayflower.de>2019-03-01 10:23:34 +0100
committerChristian Albrecht <christian.albrecht@mayflower.de>2019-03-03 19:43:14 +0100
commitfd28c0a82a56da127ad8e77d34941b57e9e46065 (patch)
treec0f7f4f0dcdd7f5b49c7038e68d1f9f18eaee368 /nixos/modules/services/cluster/kubernetes/kubelet.nix
parentcf8389c9048b9e46dadc47142f85a6086098e064 (diff)
nixos/kubernetes: Seed docker images before kubelet service start
to speed up startup time because it can be parallelized.
Diffstat (limited to 'nixos/modules/services/cluster/kubernetes/kubelet.nix')
-rw-r--r--nixos/modules/services/cluster/kubernetes/kubelet.nix23
1 files changed, 17 insertions, 6 deletions
diff --git a/nixos/modules/services/cluster/kubernetes/kubelet.nix b/nixos/modules/services/cluster/kubernetes/kubelet.nix
index b3f3c0365642..0b1d2a67565c 100644
--- a/nixos/modules/services/cluster/kubernetes/kubelet.nix
+++ b/nixos/modules/services/cluster/kubernetes/kubelet.nix
@@ -257,12 +257,7 @@ in
before = [ "kubelet.target" ];
path = with pkgs; [ gitMinimal openssh docker utillinux iproute ethtool thin-provisioning-tools iptables socat ] ++ top.path;
preStart = ''
- ${concatMapStrings (img: ''
- echo "Seeding docker image: ${img}"
- docker load <${img}
- '') cfg.seedDockerImages}
-
- rm /opt/cni/bin/* || true
+ rm -f /opt/cni/bin/* || true
${concatMapStrings (package: ''
echo "Linking cni package: ${package}"
ln -fs ${package}/bin/* /opt/cni/bin
@@ -328,6 +323,22 @@ in
systemd.services.docker.before = [ "kubelet.service" ];
+ systemd.services.docker-seed-images = {
+ wantedBy = [ "docker.service" ];
+ after = [ "docker.service" ];
+ before = [ "kubelet.service" ];
+ path = with pkgs; [ docker ];
+ preStart = ''
+ ${concatMapStrings (img: ''
+ echo "Seeding docker image: ${img}"
+ docker load <${img}
+ '') cfg.seedDockerImages}
+ '';
+ script = "echo Ok";
+ serviceConfig.Type = "oneshot";
+ serviceConfig.Slice = "kubernetes.slice";
+ };
+
systemd.services.node-online = {
wantedBy = [ "node-online.target" ];
after = [ "flannel.target" "kubelet.target" ];