This directory contains the resources needed to build the Kata Containers snap image.
Kata Containers can be installed in any Linux distribution that supports snapd. For this example, we assume Ubuntu as your base distro.
$ sudo apt-get --no-install-recommends install -y apt-utils ca-certificates snapd snapcraft
You can install the Kata Containers snap from the snapcraft store or by running the following command:
$ sudo snap install kata-containers --classic
Run the command below which will use the packaging Makefile to build the snap image:
$ make -C tools/packaging snap
Warning:
By default,
snapcraft
will create a clean virtual machine environment to build the snap in using themultipass
tool.However,
multipass
is silently disabled when--destructive-mode
is used.Since building the Kata Containers package currently requires
--destructive-mode
, the snap will be built using the host environment. To avoid parts of the build auto-detecting additional features to enable (for example for QEMU), we recommend that you only run the snap build in a minimal host environment.
To install the resulting snap image, snap must be put in classic mode and the
security confinement must be disabled (--classic
). Also since the resulting snap
has not been signed the verification of signature must be omitted (--dangerous
).
$ sudo snap install --classic --dangerous "kata-containers_${version}_${arch}.snap"
Replace ${version}
with the current version of Kata Containers and ${arch}
with
the system architecture.
By default Kata Containers snap image is mounted at /snap/kata-containers
as a
read-only file system, therefore default configuration file can not be edited.
Fortunately kata-runtime
supports loading a configuration file from another
path than the default.
$ sudo mkdir -p /etc/kata-containers
$ sudo cp /snap/kata-containers/current/usr/share/defaults/kata-containers/configuration.toml /etc/kata-containers/
$ $EDITOR /etc/kata-containers/configuration.toml
The path to the runtime provided by the Kata Containers snap image is
/snap/kata-containers/current/usr/bin/kata-runtime
. You should use it to
run Kata Containers with docker and Kubernetes.
You can remove the Kata Containers snap by running the following command:
$ sudo snap remove kata-containers
The miniOS image is not included in the snap image as it is not possible for QEMU to open a guest RAM backing store on a read-only filesystem. Fortunately, you can start Kata Containers with a Linux initial RAM disk (initrd) that is included in the snap image. If you want to use the miniOS image instead of initrd, then a new configuration file can be created and configured.