- image-builder: share the mkfs configuration file - rootfs-builder: add rootfs.sh DOCKER_RUNTIME env var - rootfs-builder: SELinux relabel container volumes - image-builder: add fs type - image-builder: re-implement image builder script - builder: Pass the DEBUG flag when using docker - Add chrony to image - Print attempt number after max check88b8523
image-builder: share the mkfs configuration file77fb808
image-builder: check format_loop return code8debe95
image-builder: add fs typec72c954
rootfs-builder: add rootfs.sh DOCKER_RUNTIME env varc1d9510
rootfs-builder: SELinux relabel container volumesd8cdd88
image-builder: re-implement image builder scriptf32ae14
tests: remove DAX env variablef355c02
tests: enable DEBUG6c7f307
image-builder: add xfsprogs to Dockerfilead6e1a9
scripts: implement error function0d2ba47
builder: Pass the DEBUG flag when using dockere16ff37
chrony: Comment out any NTP sources for chrony3df19ff
chrony: Add virtual PTP as source for chronyad5d879
rootfs: Print attempt number after max check8fe6405
rootfs: Include chrony in the Dockerfile images0b33519
rootfs: add PACKAGE var to debian config510ddd2
rootfs: Add chrony service to rootfs Signed-off-by: katacontainers bot <katacontainersbot@katacontainers.io>
osbuilder
Introduction
The Kata Containers runtime creates a virtual machine (VM) to isolate a set of container workloads. The VM requires a guest kernel and a guest operating system ("guest OS") to boot and create containers inside the guest environment.
This repository contains tools to create a guest OS disk image.
Terms
This section describes the terms used for all documentation in this repository.
-
rootfs
The root filesystem or "rootfs" is a slight misnomer as it is not a true filesystem. It is a tree of files contained in a particular directory, which represents the root disk layout. A rootfs can be turned into either an image or an initrd.
See the rootfs creation section.
-
"Guest OS" (or "Guest Image")
A "virtual disk" or "disk image" built from a rootfs. It contains a filesystem that is used by the VM, in conjunction with a guest kernel, to create an environment to host the container. Neither the guest OS nor the guest kernel need to be the same as the host operating system.
See the image creation section.
-
initrd (or "initramfs")
A compressed
cpio(1)
archive, created from a rootfs which is loaded into memory and used as part of the Linux startup process. During startup, the kernel unpacks it into a special instance of atmpfs
that becomes the initial root filesystem.See the initrd creation section.
-
"Base OS"
A particular version of a Linux distribution used to create a rootfs from.
Usage
The top-level Makefile
contains an example of how to use the available components.
By default, components will run on the host system. However, some components
offer the ability to run from within Docker (for ease of setup) by setting the
USE_DOCKER=true
variable.
For more detailed information, consult the documentation for a particular component.
Rootfs creation
This section shows how to build a basic rootfs using the default distribution. For further details, see the rootfs builder documentation.
Rootfs with systemd as init
$ sudo -E PATH=$PATH make USE_DOCKER=true rootfs
Rootfs with the agent as init
$ sudo -E PATH=$PATH make USE_DOCKER=true AGENT_INIT=yes rootfs
Image creation
This section shows how to create an image from the already-created rootfs. For further details, see the image builder documentation.
Image with systemd as init
$ sudo -E PATH=$PATH make USE_DOCKER=true image
Image with the agent as init
$ sudo -E PATH=$PATH make USE_DOCKER=true AGENT_INIT=yes image
Initrd creation
To create an initrd from the already-created rootfs with the agent acting as the init daemon:
$ sudo -E PATH=$PATH make AGENT_INIT=yes initrd
For further details, see the initrd builder documentation.
Tests
$ make test
For further details, see the tests documentation.
Platform-Distro Compatibility Matrix
Alpine | CentOS | ClearLinux | Debian/Ubuntu | EulerOS | Fedora | openSUSE | |
---|---|---|---|---|---|---|---|
ARM64 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ||
PPC64le | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | |
s390x | ✔️ | ✔️ | ✔️ | ||||
x86_64 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |