|
Petr Šabata |
1100037 |
# Atomic Host
|
|
Petr Šabata |
1100037 |
|
|
Petr Šabata |
1100037 |
Atomic Host is a lightweight, immutable platform, designed with
|
|
Petr Šabata |
1100037 |
the sole purpose of running containerized applications.
|
|
Petr Šabata |
1100037 |
|
|
Petr Šabata |
1100037 |
## The `atomic` module
|
|
Petr Šabata |
1100037 |
|
|
Petr Šabata |
1100037 |
The atomic module defines the package set required for
|
|
Petr Šabata |
1100037 |
running a fully featured, module-based Atomic Host. Unlike
|
|
Petr Šabata |
1100037 |
Host & Platform, the module is not split into userspace and
|
|
Petr Šabata |
1100037 |
hardware-enabling parts. Instead, it's a well integrated, faster
|
|
Petr Šabata |
1100037 |
moving module capable of booting on various configurations,
|
|
Petr Šabata |
1100037 |
running as an OSTree image and managing containerized
|
|
Petr Šabata |
1100037 |
applications.
|
|
Petr Šabata |
1100037 |
|
|
Petr Šabata |
1100037 |
`atomic` builds against `bootstrap` & `shim` and requires `shim`
|
|
Petr Šabata |
1100037 |
at runtime.
|
|
Petr Šabata |
1100037 |
|
|
Petr Šabata |
1100037 |
Only one stream with rolling updates will be supported. Since no
|
|
Petr Šabata |
1100037 |
other modules build against `atomic`, the module technically
|
|
Petr Šabata |
1100037 |
doesn't need a stable API. The `platform` module will provide
|
|
Petr Šabata |
1100037 |
the base container image for applications (modules) running on
|
|
Petr Šabata |
1100037 |
top of Atomic Host.
|
|
Petr Šabata |
1100037 |
|
|
Petr Šabata |
1100037 |
### Initial development
|
|
Petr Šabata |
1100037 |
|
|
Petr Šabata |
1100037 |
The initial proof-of-concept module was put together using the *Host &
|
|
Petr Šabata |
1100037 |
Platform* tools:
|
|
Petr Šabata |
1100037 |
|
|
Petr Šabata |
1100037 |
* [Host & Platform content definition](https://github.com/fedora-modularity/hp)
|
|
Petr Šabata |
1100037 |
* [Package lists & module generators](https://github.com/fedora-modularity/baseruntime-package-lists)
|
|
Petr Šabata |
1100037 |
|
|
Petr Šabata |
1100037 |
The content definition lists packages that define Atomic
|
|
Petr Šabata |
1100037 |
Host, along with SRPM and architecture availability hints.
|
|
Petr Šabata |
1100037 |
This user-curated input is then passed to the package lists &
|
|
Petr Šabata |
1100037 |
module generators that resolve dependencies using a Host &
|
|
Petr Šabata |
1100037 |
Platform development Rawhide snapshot repodata. The resolved
|
|
Petr Šabata |
1100037 |
per-architecture package lists are then merged, the matching
|
|
Petr Šabata |
1100037 |
dist-git commits found and the modulemd file included in this
|
|
Petr Šabata |
1100037 |
repo is generated.
|
|
Petr Šabata |
1100037 |
|
|
Petr Šabata |
1100037 |
To fetch the latest modulemd file, simply invoke `make update`
|
|
Petr Šabata |
1100037 |
in this repository.
|
|
Petr Šabata |
1100037 |
|
|
Petr Šabata |
1100037 |
### Long-term plans
|
|
Petr Šabata |
1100037 |
|
|
Petr Šabata |
1100037 |
*To be done.*
|