snap: improve README and Makefile

Address code review of pr #82

fixes #88

Signed-off-by: Julio Montes <julio.montes@intel.com>
This commit is contained in:
Julio Montes
2018-07-06 14:42:46 -05:00
parent 540d3a26be
commit 81a41050b8
3 changed files with 34 additions and 47 deletions

View File

@@ -1,9 +1,9 @@
# Kata Containers snap image
* [Kata Containers snap image](#kata-containers-snap-image)
* [Initial setup](#initial-setup)
* [Build snap image](#build-snap-image)
* [Install snap (developer)](#install-snap-developer)
* [Install snap](#install-snap)
* [Build and install snap image](#build-and-install-snap-image)
* [Configure Kata Containers](#configure-kata-containers)
* [Integration with docker](#integration-with-docker)
* [Limitations](#limitations)
@@ -18,7 +18,15 @@ This directory contains the resources needed to build the Kata Containers
$ sudo apt-get install -y snapd snapcraft
```
## Build snap image
## Install snap
You can install Kata Containers from the [snapcraft store][8] or by running the following command:
```sh
$ sudo snap install kata-containers
```
## Build and install snap image
Run next command at the root directory of the packaging repository.
@@ -26,8 +34,6 @@ Run next command at the root directory of the packaging repository.
$ make snap
```
## Install snap (developer)
To install the resulting snap image, snap must be put in [classic mode][3] 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*).
@@ -39,7 +45,7 @@ $ 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.
## Configuring Kata Containers ##
## Configure Kata Containers
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.
@@ -52,48 +58,28 @@ $ sudo cp /snap/kata-containers/current/usr/share/defaults/kata-containers/confi
$ $EDITOR /etc/kata-containers/configuration.toml
```
## Integration with docker ##
## Integration with docker and kubernetes
the path to the runtime provided by the Kata Containers snap image is
`/snap/kata-containers/current/usr/bin/kata-runtime`, this runtime must be added to
[dockerd][5] via `systemd` or `dockerd` configuration file.
`/etc/systemd/system/docker.service.d/runtime.conf`
```ini
[Service]
ExecStart=/usr/bin/dockerd -D --add-runtime kata-runtime=/snap/kata-containers/current/usr/bin/kata-runtime --default-runtime=kata-runtime
```
or
`/etc/docker/daemon.json`
```json
{
"default-runtime": "kata-runtime",
"runtimes": {
"kata-runtime": {
"path": "/snap/kata-containers/current/usr/bin/kata-runtime"
}
}
}
```
after having added the new runtime, the service must be reloaded and restarted
```
$ sudo systemctl daemon-reload
$ sudo systemctl restart docker
```
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][9] and [kubernetes][10].
## Limitations
The [miniOS image][2] 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.
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](#configuring-kata-containers)
and [configured][7].
[1]: https://docs.snapcraft.io/snaps/intro
[2]: https://github.com/kata-containers/documentation/blob/master/architecture.md#root-filesystem-image
[3]: https://docs.snapcraft.io/reference/confinement#classic
[4]: https://github.com/kata-containers/runtime
[5]: https://docs.docker.com/engine/reference/commandline/dockerd
[6]: https://github.com/kata-containers/documentation/blob/master/install/docker/ubuntu-docker-install.md
[7]: https://github.com/kata-containers/documentation/blob/master/Developer-Guide.md#configure-to-use-initrd-or-rootfs-image
[8]: https://snapcraft.io/kata-containers
[9]: https://github.com/kata-containers/documentation/blob/master/Developer-Guide.md#run-kata-containers-with-docker
[10]: https://github.com/kata-containers/documentation/blob/master/Developer-Guide.md#run-kata-containers-with-kubernetes