Peng Tao b7abc27776 release: Kata Containers 1.4.0
- Add s390x architecture
- rootfs: Conditionally add libseccomp support in rootfs image
- rootfs.sh: enable curl use http_proxy
- tests: allow rootfs build to fail for specific distros
- docs: Fix link in README
- tests: get config from distro-specific config.sh
- Add support for suse rootfs
- tests: handle docker set runtime for systemd / sysconfig
- tests: Sort size summary by image size and rootfs size
- tests: parallel images build support

6f50538 build: Add s390x architecture
7f23718 rootfs: Conditionally add libseccomp support in rootfs image
a588140 ci: Improve debugging info on travis CI run
8599143 rootfs.sh: enable curl use http_proxy
97f38c7 tests: allow euleros rootfs build to fail
ee7f2e1 tests: allow build to fail for specific distros
57d0a83 rootfs.sh: trap build errors for specific distros
c8ae9c0 rootfs.sh: improve usage output
06437bb docs: Fix link in README
962b7ee tests: get config from distro-specific config.sh
be3bea4 rootfs.sh: add options to list and get test config
3b3f044 tests: handle docker set runtime for systemd / sysconfig
fc4c23f tests: Sort size summary by image size and rootfs size
83d8838 osbuilder: Add support for openSUSE rootfs image
7c443ed travis: remove AGENT_INIT env combinations
562be90 tests: support parallel building of artifacts

Signed-off-by: Peng Tao <bergwolf@gmail.com>
2018-11-22 11:34:50 +08:00
2018-10-24 13:52:00 -04:00
2017-12-04 23:35:38 +01:00
2017-11-13 12:24:56 +01:00
2018-11-22 11:34:50 +08:00

Build Status

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 a tmpfs 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 ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
x86_64 ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Languages
Rust 58.4%
Go 24.4%
Shell 10%
RPC 5.3%
Makefile 1%
Other 0.8%