kubernetes: add basic cni plugins dynamically

This avoids a slightly tricky sequence of nested bind mounts by just unpacking
a tarball on boot (with a stamp so it only happens once).

Signed-off-by: Ian Campbell <ijc@docker.com>
This commit is contained in:
Ian Campbell 2017-09-14 15:55:25 +01:00
parent 1074b4a8d4
commit 07e4f515a4
2 changed files with 6 additions and 4 deletions

View File

@ -30,9 +30,7 @@ RUN rm -rf /out/etc/apk /out/lib/apk /out/var/cache
RUN rmdir /out/var/run && ln -nfs /run /out/var/run
RUN curl -fSL -o /tmp/cni.tgz https://github.com/containernetworking/cni/releases/download/v0.5.2/cni-amd64-${cni_version}.tgz && \
mkdir -p /out/opt/cni/bin /out/etc/cni/net.d && \
tar -xzf /tmp/cni.tgz -C /out/opt/cni/bin
RUN curl -fSL -o /out/root/cni.tgz https://github.com/containernetworking/cni/releases/download/v0.5.2/cni-amd64-${cni_version}.tgz
RUN curl -fSL -o /out/etc/weave.yaml https://cloud.weave.works/k8s/v1.7/net?v=${weave_version}
RUN curl -fSL -o /out/usr/bin/kubelet https://dl.k8s.io/${kubernetes_version}/bin/linux/amd64/kubelet && chmod 0755 /out/usr/bin/kubelet
RUN curl -fSL -o /out/usr/bin/kubeadm https://dl.k8s.io/${kubernetes_version}/bin/linux/amd64/kubeadm && chmod 0755 /out/usr/bin/kubeadm

View File

@ -1,5 +1,9 @@
#!/bin/sh
mount --bind /opt/cni /var/lib/cni/opt
if [ ! -e /var/lib/cni/.opt.defaults-extracted ] ; then
mkdir -p /var/lib/cni/opt/bin
tar -xzf /root/cni.tgz -C /var/lib/cni/opt/bin
touch /var/lib/cni/.opt.defaults-extracted
fi
until kubelet --kubeconfig=/var/lib/kubeadm/kubelet.conf \
--require-kubeconfig=true \
--pod-manifest-path=/var/lib/kubeadm/manifests \