Skip to content

Commit d3c6d90

Browse files
committed
Update Sysbox-EE README file, and point to Sysbox docs.
Signed-off-by: Cesar Talledo <ctalledo@nestybox.com>
1 parent 383d28e commit d3c6d90

24 files changed

+117
-5887
lines changed

README.md

+93-244
Large diffs are not rendered by default.

docs/README.md

+7-10
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,26 @@
1-
# Sysbox Documentation
1+
# Sysbox-EE Documentation
22

3-
This directory contains the Sysbox documentation for both
3+
Sysbox-EE is a drop-in replacement for Sysbox, meaning that it's installed and
4+
used in the same way.
45

5-
- **Sysbox Community Edition (Sysbox-CE)**
6-
- **Sysbox Enterprise Edition (Sysbox-EE)**
7-
8-
In general, the features and limitations described in these docs apply equally
9-
to Sysbox-CE and Sysbox-EE.
6+
For this reason, the documents in the Sysbox repo apply equally to Sysbox-EE.
107

118
Features that are specific to Sysbox-EE are tagged with **"Sysbox-EE Feature
129
Highlight"**.
1310

1411
Features that appear in a particular Sysbox release are flagged in the docs with
15-
the release tag (e.g., "**\[ +v0.1.2 ]**" indicates the feature appeared in
12+
the release tag (e.g., "**\[ v0.1.2+ ]**" indicates the feature appeared in
1613
Sysbox release v0.1.2 and beyond).
1714

1815
## Documents
1916

2017
- [Sysbox Distro Compatibility doc](distro-compat.md)
2118

22-
- Shows Linux distros supported by Sysbox.
19+
- Shows Linux distros supported by Sysbox and Sysbox-EE.
2320

2421
- [Sysbox Quick Start Guide](quickstart/README.md)
2522

26-
- Start here if new to Sysbox; has lots of examples on how to use it.
23+
- Start here if new to Sysbox / Sysbox-EE; has lots of examples on how to use it.
2724

2825
- [Sysbox User Guide](user-guide/README.md)
2926

docs/distro-compat.md

+17-129
Original file line numberDiff line numberDiff line change
@@ -1,111 +1,30 @@
1-
# Sysbox Distro Compatibility
1+
# Sysbox-EE Distro Compatibility
22

33
## Contents
44

5-
- [Supported Linux Distros](#supported-linux-distros)
6-
- [Supported Package](#sysbox-package)
7-
- [Sysbox Operational Modes](#Sysbox-Operational-Modes)
8-
- [Kernel Upgrade Procedures](#Kernel-Upgrade-Procedures)
5+
- [Supported Linux Distros](#supported-linux-distros)
6+
- [Kernel Upgrade Procedures](#kernel-upgrade-procedures)
97

108
## Supported Linux Distros
119

12-
Sysbox relies on functionality that is only present in recent Linux kernels.
10+
The following table summarizes the supported Linux distros, the installation
11+
methods supported, and any other requirements:
1312

14-
In Ubuntu's case, these requirements are met starting with Kernel 5.0. For
15-
the rest of the Sysbox's supported distributions, Kernel 5.5+ is required.
13+
| Distro / Release | Package Install | K8s Install | Kernel Upgrade | Other |
14+
| --------------------- | :-------------: | :---------: | :----: | :----: |
15+
| Ubuntu Bionic (18.04) ||| [Maybe](#ubuntu-kernel-upgrade) | |
16+
| Ubuntu Focal (20.04) ||| No | |
17+
| Debian Buster (10) || | [Yes](#debian-kernel-upgrade) | |
18+
| Debian Bullseye (11) || | No | |
19+
| Flatcar | N/A | | No | More details [here](https://github.com/nestybox/sysbox-flatcar-preview) |
1620

17-
The following table summarizes the Linux distributions being supported, as well
18-
as the operational modes utilized to manage the [user-namespace ID mappings](user-guide/security.md#user-namespace-id-mapping)
19-
(i.e. `automatic` vs `directed`).
21+
**NOTES:**
2022

21-
For scenarios where a kernel upgrade is required, refer to the corresponding
22-
upgrade procedure further below.
23+
- "Package install" means a Sysbox-EE package is available for that distro. See [here](../README.md#installation) for more.
2324

24-
<p align="center">
25-
<img alt="sysbox" src="figures/distro-support-matrix.png" width="1000x" />
26-
</p>
25+
- "K8s-install" means you can deploy Sysbox-EE on a Kubernetes worker node based on that distro. See [here](../README.md#installation) for more.
2726

28-
- Note 1: Ubuntu Bionic requires no kernel upgrade in scenarios where relatively
29-
recent releases have been installed (i.e. 18.04.4+). If that's not the
30-
case, user will need to upgrade the kernel. Refer to [Ubuntu's kernel-upgrade](#Ubuntu-Kernel-Upgrade)
31-
procedure for details.
32-
33-
- Note 2: Debian Bullseye (11) requires that the Linux kernel be booted with cgroups
34-
v1, as Sysbox does not yet support cgroups v2 (the latter is the default in latest
35-
Debian kernels). We will be adding support for cgroups v2 in Sysbox very soon.
36-
To boot the Debian kernel with cgroups v1, set kernel parameter
37-
`systemd.unified_cgroup_hierarchy=0` as follows and reboot the kernel.
38-
39-
```console
40-
$ sudo sh -c 'echo GRUB_CMDLINE_LINUX="systemd.unified_cgroup_hierarchy=0" >> /etc/default/grub'
41-
$ sudo update-grub
42-
```
43-
44-
- Note 3: Fedora 31 requires no kernel upgrade assuming that user is running a recent
45-
installation (i.e. kernel 5.5+ is deployed). Otherwise, a kernel-upgrade will be
46-
expected. Refer to [Fedora's kernel-upgrade](#Fedora-kernel-upgrade) procedure for
47-
details.
48-
49-
- Note 4: Same as Debian Bullseye's case, Fedora >= 31 also requires that the Linux
50-
kernel be booted with cgroups v1. To boot the Fedora kernel with cgroups v1, set
51-
kernel parameter `systemd.unified_cgroup_hierarchy=0` as follows and reboot the
52-
kernel.
53-
54-
```console
55-
sudo dnf install grubby
56-
sudo grubby --update-kernel=ALL --args="systemd.unified_cgroup_hierarchy=0"
57-
```
58-
59-
## Sysbox Package
60-
61-
We are currently offering the [Sysbox packages](https://github.com/nestybox/sysbox/releases)
62-
for Ubuntu and Debian distributions. This means that for other distros you must [build and install Sysbox from source](https://github.com/nestybox/sysbox/blob/master/docs/developers-guide/build.md).
63-
It's pretty easy though, since the Sysbox Makefile has targets that automate this process.
64-
The build occurs entirely inside a container, so it won't mess up your host.
65-
66-
We are working on creating packaged versions for the other supported distros, and
67-
expect to have them soon (ETA summer 2021).
68-
69-
## Sysbox Operational Modes
70-
71-
The Sysbox runtime relies on the kernel's user-namespace feature to secure
72-
system containers. There are two approaches utilized by Sysbox to manage the
73-
creation of these user-namespaces: `automatic` and `directed`.
74-
75-
It is important to highlight that this operational mode is per individual
76-
container. That is, a container-manager (e.g. Docker, K8s/Cri-o, Podman, etc)
77-
could instruct Sysbox to operate in `directed` mode for any given container.
78-
79-
What follows is a high-level description of what each of these modes accomplish;
80-
refer to the [user-guide](./user-guide/security.md#user-namespace-id-mapping) for
81-
more details.
82-
83-
### Automatic userns ID mapping
84-
85-
In this mode Sysbox automatically allocates the ID mappings to be used by the
86-
container. By doing this, Sysbox enforces strong container isolation without
87-
requiring the higher level container-manager to do this explicitly (e.g. without
88-
enabling `userns-remap` mode in Docker).
89-
90-
Sysbox will only attempt to operate in this mode if the received container
91-
specification omits ID mappings configuration.
92-
93-
Note that this mode requires the presence of the `shiftfs` kernel module, which
94-
currently is only available on the Ubuntu Linux distribution -- with the exception
95-
of Ubuntu-cloud images deployed in some Cloud Providers.
96-
97-
### Directed userns ID mapping
98-
99-
In this mode Sysbox relies on the container-manager selecting the desired ID
100-
mappings.
101-
102-
In Docker's case this is accomplished by enabling the `userns-remap` feature
103-
which, even though imposes certain [restrictions](https://docs.docker.com/engine/security/userns-remap/#user-namespace-known-limitations),
104-
does not require `shiftfs` and therefore allows Sysbox support in a larger
105-
number of distributions.
106-
107-
Refer to the Sysbox [installation guide](./user-guide/install.md#docker-userns-remap)
108-
for more details.
27+
- "Kernel upgrade" means a kernel upgrade may be required (Sysbox-EE requires a fairly new kernel). See [below](#kernel-upgrade-procedures) for more.
10928

11029
## Kernel Upgrade Procedures
11130

@@ -125,7 +44,7 @@ $ sudo shutdown -r now
12544

12645
This one is only required when running Debian Buster.
12746

128-
```
47+
```console
12948
$ # Allow debian-backports utilization ...
13049

13150
$ echo deb http://deb.debian.org/debian buster-backports main contrib non-free | sudo tee /etc/apt/sources.list.d/buster-backports.list
@@ -138,34 +57,3 @@ $ sudo shutdown -r now
13857
```
13958

14059
Refer to this [link](https://wiki.debian.org/HowToUpgradeKernel) for more details.
141-
142-
### Fedora Kernel Upgrade
143-
144-
This is only applicable to Fedora 31 release; more recent releases already
145-
include 5.5+ kernels.
146-
147-
```
148-
$ sudo dnf config-manager --set-enabled kernel-vanilla-mainline
149-
150-
$ sudo dnf update
151-
152-
$ sudo shutdown -r now
153-
```
154-
155-
Refer to this [link](https://www.cloudinsidr.com/content/how-to-upgrade-the-linux-kernel-in-fedora-29/) for more details.
156-
157-
### CentOS Kernel Upgrade
158-
159-
Applicable to CentOS 8 release.
160-
161-
```
162-
$ sudo rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
163-
164-
$ sudo dnf install https://www.elrepo.org/elrepo-release-8.0-2.el8.elrepo.noarch.rpm
165-
166-
$ sudo dnf --enablerepo=elrepo-kernel install kernel-ml
167-
168-
$ sudo shutdown -r now
169-
```
170-
171-
Refer to this [link](https://vitux.com/how-to-upgrade-the-kernel-on-centos-8-0/) for more details.

docs/quickstart/README.md

-45
This file was deleted.

0 commit comments

Comments
 (0)