2021-01-25 19:35:46 +00:00
|
|
|
|
<img src="data/logo/toolbox-logo-landscape.svg" alt="Toolbox logo landscape" width="800"/>
|
|
|
|
|
|
2021-01-25 20:03:27 +00:00
|
|
|
|
## Goals
|
2021-01-25 19:35:46 +00:00
|
|
|
|
|
|
|
|
|
### High Level Goals
|
|
|
|
|
|
2021-01-25 20:03:27 +00:00
|
|
|
|
- Provide a convenient command line interface to run containers using
|
|
|
|
|
[Podman](https://podman.io/)
|
|
|
|
|
- Support for development, debugging and system management use cases
|
2021-01-25 19:35:46 +00:00
|
|
|
|
- Support for multiple distros
|
2021-01-25 20:03:27 +00:00
|
|
|
|
- `toolbox` package in multiple distros
|
|
|
|
|
- `toolbox` containers for multiple distros
|
2021-01-25 19:35:46 +00:00
|
|
|
|
|
2021-01-25 20:03:27 +00:00
|
|
|
|
### Non-goals
|
2021-01-25 19:35:46 +00:00
|
|
|
|
|
2021-01-25 20:03:27 +00:00
|
|
|
|
- Supporting multiple container runtimes. Toolbox will use Podman exclusively
|
|
|
|
|
- Adding significant features on top of Podman
|
|
|
|
|
- Significant feature requests should be driven into Podman upstream
|
2021-01-25 19:35:46 +00:00
|
|
|
|
- To run containers that aren't tightly integrated with the host
|
2021-01-25 20:03:27 +00:00
|
|
|
|
- Extremely sandboxed containers quickly become specific to the user
|
2021-01-25 19:35:46 +00:00
|
|
|
|
|
|
|
|
|
### Developer Use Cases
|
|
|
|
|
|
|
|
|
|
- I’m a developer hacking on source code and building/testing code
|
2021-01-25 20:03:27 +00:00
|
|
|
|
- Most cases: user doesn't need root, rootless containers work fine
|
|
|
|
|
- Some cases: user needs root for testing
|
|
|
|
|
- Desktop Development:
|
|
|
|
|
- Developers need things like D-Bus, display, etc. to be forwarded into the
|
|
|
|
|
toolbox container
|
2021-01-25 19:35:46 +00:00
|
|
|
|
- Headless Development:
|
2021-01-25 20:03:27 +00:00
|
|
|
|
- Toolbox works properly in headless environments (no display, etc)
|
|
|
|
|
- Need development tools like GDB, strace, etc. to work
|
2021-01-25 19:35:46 +00:00
|
|
|
|
|
2021-01-25 20:03:27 +00:00
|
|
|
|
### Debugging and System Management Use Cases
|
2021-01-25 19:35:46 +00:00
|
|
|
|
|
2021-01-25 20:03:27 +00:00
|
|
|
|
- Inspecting host processes and the kernel
|
|
|
|
|
- Typically need root access
|
|
|
|
|
- Need bpftrace, strace on host processes to work
|
|
|
|
|
- Ideally even do things like helping get kernel-debuginfo data for the
|
|
|
|
|
host kernel
|
2021-01-25 19:35:46 +00:00
|
|
|
|
- Managing system services
|
2021-01-25 20:03:27 +00:00
|
|
|
|
- `systemctl restart foo.service`
|
|
|
|
|
- journalctl
|
2021-01-25 19:35:46 +00:00
|
|
|
|
- Managing updates to the host
|
2021-01-25 20:03:27 +00:00
|
|
|
|
- rpm-ostree
|
|
|
|
|
- dnf/yum (classic systems)
|
2021-01-25 19:35:46 +00:00
|
|
|
|
|
|
|
|
|
### Specific environments
|
|
|
|
|
|
|
|
|
|
- Fedora Silverblue
|
2021-01-25 20:03:27 +00:00
|
|
|
|
- Silverblue comes with a subset of packages and discourages host software
|
|
|
|
|
changes
|
|
|
|
|
- Users need a toolbox container as a working environment
|
|
|
|
|
- Future: use toolbox container by default when a user opens a shell
|
2021-01-25 19:35:46 +00:00
|
|
|
|
- Fedora CoreOS
|
2021-01-25 20:03:27 +00:00
|
|
|
|
- Similar to Silverblue, but non-graphical and smaller package set
|
2021-01-25 19:35:46 +00:00
|
|
|
|
- RHEL CoreOS
|
2021-01-25 20:03:27 +00:00
|
|
|
|
- Similar to Fedora CoreOS. Based on RHEL content and the underlying
|
|
|
|
|
operating system for OpenShift
|
|
|
|
|
- Need to [use default authfile on pull](https://github.com/coreos/toolbox/pull/58/commits/413f83f7240d3c31121b557bfd55e489fad24489)
|
|
|
|
|
- Need to ensure compatibility with the rhel7/support-tools container
|
|
|
|
|
- Currently not a toolbox image, opportunity for collaboration
|
|
|
|
|
- Alignment with `oc debug node/` (OpenShift)
|
|
|
|
|
- `oc debug node` opens a shell on a kubernetes node
|
|
|
|
|
- Value in having a consistent environment for both Toolbox's debugging
|
|
|
|
|
mode and `oc debug node`
|