-
Notifications
You must be signed in to change notification settings - Fork 228
[WIP] Embeded containerd, shim and runc #400
Conversation
d020e72
to
effa905
Compare
Signed-off-by: Chanwit Kaewkasi <chanwit@gmail.com>
effa905
to
c572d97
Compare
This maybe is doable, but I'd invest in better deb/rpm packaging depending on the official containerd packages instead of running containerd in-process. The whole idea is re-using an existing tool you have installed (containerd) |
I was thinking the same. But I found that I'll leave options for users to choose:
All should be switchable via a flag. |
Also the current |
Yes, this is a significant problem that makes defaulting to containerd problematic. If we want users to play with ignite, we might provide privileged container environments with controlled versions of containerd or docker.
|
Could we achieve this with |
We could provide examples for I don't think we need to concerned we building 1 generic install solution. |
I get devicemapper errors when trying to run ignite vms on containerd inside of a privileged docker container: docker run -it --rm \
-v ~/Repos/ignite:/root/ignite -v /var/lib/containerd \
--privileged --cap-add ALL \
test-containerd
root@f851c24da535:~# containerd |& cat >/dev/null &
[1] 11
root@f851c24da535:~# ignite/bin/ignite run weaveworks/ignite-ubuntu
INFO[0000] Docker image "weaveworks/ignite-ubuntu:latest" not found locally, pulling...
INFO[0054] Starting image import...
INFO[0056] Imported OCI image "weaveworks/ignite-ubuntu:latest" (226.5 MB) to base image with UID "36e1a62e6a29f519"
INFO[0056] Docker image "weaveworks/ignite-kernel:4.19.47" not found locally, pulling...
INFO[0062] Imported OCI image "weaveworks/ignite-kernel:4.19.47" (49.6 MB) to kernel image with UID "9f23830375005e64"
INFO[0062] Removed VM with name "long-sun" and ID "030304567fa435dc"
FATA[0062] command ["dmsetup" "create" "ignite-030304567fa435dc"] exited with "device-mapper: reload ioctl on ignite-030304567fa435dc failed: No such device\nCommand failed\n": exit status 1
root@f851c24da535:~# dmsetup ls
ignite-030304567fa435dc-base (253:1)
ignite-e64cdaedef0a2846 (253:6)
ignite-7dc6ee39e00e7826 (253:24)
ignite-e64cdaedef0a2846-base (253:5)
ignite-7dc6ee39e00e7826-base (253:23)
cryptswap (253:0) It looks like the base device is created and then it fails from there. Dockerfile / build.sh (click to expand)# test-containerd/Dockerfile
FROM ubuntu:latest
WORKDIR /root
RUN apt-get update
RUN apt-get install -y \
wget
# ignite deps minus containerd
RUN apt-get install -y --no-install-recommends \
binutils \
dmsetup \
git \
openssh-client
ENV ctd_version="1.3.0-rc.0"
ENV ctd_platform="linux-amd64"
ENV ctd_release="https://github.com/containerd/containerd/releases/download/v${ctd_version}/containerd-${ctd_version}.${ctd_platform}.tar.gz"
RUN wget "${ctd_release}" -O release.tgz -q \
&& tar -xzf release.tgz \
&& rm release.tgz \
&& mv bin/* /usr/bin/ \
&& rmdir bin # test-containerd/build.sh
#!/bin/sh
docker build \
-t "test-containerd" \
. |
Hi,
This is resize2fs command run after e2fsck. Again, running the command manually worked. Added some sleep before the command execution made it work.
Hope this helps. |
This PR introduces an embedded containerd mode for
ignited
by preparing static containerd and runc binaries to ship together withignited
.[] always check if
go.sum
breaks CI. If so, deletego.sum
then dogo mod tidy
again.[] TODO
ignited
would start and shutdown the embeddedcontainerd
automatically.[] upgrade containerd to 1.3.0-rc.0 in hope of to not break the client