From 26d93d613c4d957fb5992820c8cb78e465fb7922 Mon Sep 17 00:00:00 2001 From: Ian Campbell Date: Mon, 9 Oct 2017 09:57:07 +0100 Subject: [PATCH 1/3] kubernetes: use copy --from=image-ref I hadn't realised this was possible, it means we don't need the dummy `FROM ... AS docker`. Signed-off-by: Ian Campbell --- projects/kubernetes/image-cache/Dockerfile | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/projects/kubernetes/image-cache/Dockerfile b/projects/kubernetes/image-cache/Dockerfile index 5ae2a8226..2f693d6ba 100644 --- a/projects/kubernetes/image-cache/Dockerfile +++ b/projects/kubernetes/image-cache/Dockerfile @@ -1,7 +1,3 @@ -FROM docker:17.06.0-ce AS docker - -# Nothing to do in here, just for COPY --from=docker below - FROM linuxkit/alpine:ad35b6ddbc70faa07e59a9d7dee7707c08122e8d AS build RUN mkdir -p /out/etc/apk && cp -r /etc/apk/* /out/etc/apk/ @@ -17,7 +13,7 @@ RUN rmdir /out/var/run && ln -nfs /run /out/var/run FROM scratch WORKDIR / COPY --from=build /out / -COPY --from=docker /usr/local/bin/docker /usr/local/bin/docker +COPY --from=docker:17.06.0-ce /usr/local/bin/docker /usr/local/bin/docker COPY *.tar /images/ ENTRYPOINT [ "/bin/sh", "-c" ] CMD [ "for image in /images/*.tar ; do docker image load -i $image && rm -f $image ; done" ] From 466e5db2033bdf4fc4d93fc686d77a22ed112dd1 Mon Sep 17 00:00:00 2001 From: Ian Campbell Date: Thu, 12 Oct 2017 10:15:22 +0100 Subject: [PATCH 2/3] kubernetes: Add /etc/os-release to host and bind to kubelet image. Adding a `PRETTY_NAME` to this causes it to appear in the node information: $ kubectl --namespace=kube-system get -o wide nodes NAME STATUS ROLES AGE VERSION EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME linuxkit-b6e09efea36e Ready master 29m v1.8.0 LinuxKit Kubernetes Project 4.9.53-linuxkit containerd://1.0.0-beta.1 Previously it would be `Unknown`. A later yaml passed to `moby build` can override this by simply duplicating the path. Signed-off-by: Ian Campbell --- projects/kubernetes/kube.yml | 3 +++ projects/kubernetes/kubernetes/Dockerfile | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/projects/kubernetes/kube.yml b/projects/kubernetes/kube.yml index 8aa5a61d3..3eec672a8 100644 --- a/projects/kubernetes/kube.yml +++ b/projects/kubernetes/kube.yml @@ -42,6 +42,9 @@ files: metadata: yaml - path: /etc/kubernetes symlink: "/var/lib/kubeadm" + - path: /etc/os-release + contents: | + PRETTY_NAME="LinuxKit Kubernetes Project" - path: /usr/libexec/kubernetes/kubelet-plugins symlink: "/var/lib/kubelet-plugins" - path: /etc/kubeadm/kube-system.init/50-network.yaml diff --git a/projects/kubernetes/kubernetes/Dockerfile b/projects/kubernetes/kubernetes/Dockerfile index b2739cec0..622a0278a 100644 --- a/projects/kubernetes/kubernetes/Dockerfile +++ b/projects/kubernetes/kubernetes/Dockerfile @@ -75,4 +75,4 @@ WORKDIR / ENTRYPOINT ["/usr/bin/kubelet.sh"] COPY --from=build /out / ENV KUBECONFIG "/etc/kubernetes/admin.conf" -LABEL org.mobyproject.config='{"binds": ["/dev:/dev", "/etc/resolv.conf:/etc/resolv.conf", "/run:/run:rshared,rbind", "/var:/var:rshared,rbind", "/var/lib/kubeadm:/etc/kubernetes", "/etc/kubelet.sh.conf:/etc/kubelet.sh.conf", "/etc/kubeadm:/etc/kubeadm", "/var/lib/kubelet-plugins:/usr/libexec/kubernetes/kubelet-plugins:rshared,rbind"], "mounts": [{"type": "cgroup", "options": ["rw","nosuid","noexec","nodev","relatime"]}], "capabilities": ["all"], "rootfsPropagation": "shared", "pid": "host", "runtime": {"mkdir": ["/var/lib/kubeadm", "/var/lib/cni/etc", "/var/lib/cni/opt", "/var/lib/kubelet-plugins"], "mounts": [{"type": "bind", "source": "/var/lib/cni/opt", "destination": "/opt/cni", "options": ["rw", "bind"]}, {"type": "bind", "source": "/var/lib/cni/etc", "destination": "/etc/cni", "options": ["rw", "bind"]}]}}' +LABEL org.mobyproject.config='{"binds": ["/dev:/dev", "/etc/resolv.conf:/etc/resolv.conf", "/etc/os-release:/etc/os-release", "/run:/run:rshared,rbind", "/var:/var:rshared,rbind", "/var/lib/kubeadm:/etc/kubernetes", "/etc/kubelet.sh.conf:/etc/kubelet.sh.conf", "/etc/kubeadm:/etc/kubeadm", "/var/lib/kubelet-plugins:/usr/libexec/kubernetes/kubelet-plugins:rshared,rbind"], "mounts": [{"type": "cgroup", "options": ["rw","nosuid","noexec","nodev","relatime"]}], "capabilities": ["all"], "rootfsPropagation": "shared", "pid": "host", "runtime": {"mkdir": ["/var/lib/kubeadm", "/var/lib/cni/etc", "/var/lib/cni/opt", "/var/lib/kubelet-plugins"], "mounts": [{"type": "bind", "source": "/var/lib/cni/opt", "destination": "/opt/cni", "options": ["rw", "bind"]}, {"type": "bind", "source": "/var/lib/cni/etc", "destination": "/etc/cni", "options": ["rw", "bind"]}]}}' From 27f8cb7283e2e2d79fc238a38584f470f439c74b Mon Sep 17 00:00:00 2001 From: Ian Campbell Date: Thu, 12 Oct 2017 11:11:20 +0100 Subject: [PATCH 3/3] Update yml Signed-off-by: Ian Campbell --- projects/kubernetes/docker-master.yml | 2 +- projects/kubernetes/docker.yml | 2 +- projects/kubernetes/kube.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/projects/kubernetes/docker-master.yml b/projects/kubernetes/docker-master.yml index 9c1854ace..f57a93e91 100644 --- a/projects/kubernetes/docker-master.yml +++ b/projects/kubernetes/docker-master.yml @@ -1,3 +1,3 @@ services: - name: kubernetes-image-cache-control-plane - image: linuxkitprojects/kubernetes-image-cache-control-plane:2c8a47f1dfc9f4b00771b27b5f8b74065c132a3a + image: linuxkitprojects/kubernetes-image-cache-control-plane:05c261ef24054839a94bdf25d48bff7cc7161bae diff --git a/projects/kubernetes/docker.yml b/projects/kubernetes/docker.yml index 28f682d44..147d44a77 100644 --- a/projects/kubernetes/docker.yml +++ b/projects/kubernetes/docker.yml @@ -22,7 +22,7 @@ services: runtime: mkdir: ["/var/lib/kubeadm", "/var/lib/cni/etc", "/var/lib/cni/opt", "/var/lib/kubelet-plugins"] - name: kubernetes-image-cache-common - image: linuxkitprojects/kubernetes-image-cache-common:2c8a47f1dfc9f4b00771b27b5f8b74065c132a3a + image: linuxkitprojects/kubernetes-image-cache-common:05c261ef24054839a94bdf25d48bff7cc7161bae files: - path: /etc/kubelet.sh.conf contents: "" diff --git a/projects/kubernetes/kube.yml b/projects/kubernetes/kube.yml index 3eec672a8..cac8ae4ee 100644 --- a/projects/kubernetes/kube.yml +++ b/projects/kubernetes/kube.yml @@ -36,7 +36,7 @@ services: - name: sshd image: linuxkit/sshd:4a2fc7be31fa57dcade391de6173e0af55296e7f - name: kubelet - image: linuxkitprojects/kubernetes:6ec18b4e75dcf17c47887ece1848b63ddbe10230 + image: linuxkitprojects/kubernetes:f35e9c9879bb7d178f2148a91e4c5d5e812ecade files: - path: etc/linuxkit.yml metadata: yaml