βš›πŸ“¦ Hybrid image/package system with atomic upgrades and package layering
cgwalters and rh-atomic-bot commit2rojig: Take a (YAML) manifest, not a spec file
This completes the removal of externally-provided rojig spec files.

In the current flow then `compose tree --ex-rojig-output-*` will
end up parsing the manifest twice.  But this is prep for defaulting
rojig to "pure" mode without a separate ostree repo.  Then
anyone who wants to do both can run `commit2rojig` after.

Closes: #1561
Approved by: jlebon
Latest commit 16f48af Sep 13, 2018
Permalink
Failed to load latest commit information.
.github Fix GitHub issue template formatting Mar 14, 2018
api-doc lib: Expose new API around basearch Jul 21, 2017
buildutil buildutils: Add libglnx.m4 to .gitignore Apr 5, 2018
ci ci: Stop installing python-{sphinx,devel} Sep 11, 2018
design Initial renaming pass of "jigdo" to "rojig" Feb 26, 2018
docs compose: Remove support for `ex-rojig-spec` in treefile Sep 13, 2018
experiments-and-demos/skopeo2ostree experiments-and-demos: New subdir with skopeo2ostree Dockerfile Jan 11, 2018
libdnf @ 7ecb2f5 Update libdnf Aug 29, 2018
libglnx @ 470af87 Update libglnx Jul 17, 2018
man daemon: Make inactive requests a hard error Sep 10, 2018
packaging packaging: Don't vendor bundled libcurl Sep 11, 2018
rust treefile: Redo rojig_spec to be Box<CStr> Sep 17, 2018
scripts core/scripts: Support /var/lib/rpm-state Mar 28, 2018
src commit2rojig: Take a (YAML) manifest, not a spec file Sep 17, 2018
tests commit2rojig: Take a (YAML) manifest, not a spec file Sep 17, 2018
vagrant Vagrantfile: specify full path to using_sshfs Dec 21, 2016
.dir-locals.el .dir-locals.el: Global Emacs style settings Jan 12, 2017
.editorconfig tree: add vimrc and editorconfig Oct 2, 2017
.gitmodules .gitmodules: Update URL for libglnx May 29, 2018
.papr.yml ci: Use FAH updates branch for newer librpm Sep 8, 2018
.vimrc tree: add vimrc and editorconfig Oct 2, 2017
CONTRIBUTING.md docs: fix ostree and CONTRIBUTING.md links Jul 12, 2016
COPYING COPYING: Update to latest LGPLv2+ Mar 10, 2014
HACKING.md hacking: make it easier to use a custom tree Sep 1, 2017
LICENSE Add a LICENSE symlink Apr 28, 2016
Makefile-daemon.am daemon: Don't use absolute path for gdbus-codegen Jun 5, 2018
Makefile-decls.am packaging: Support vendoring the Rust sources Jun 6, 2018
Makefile-lib-defines.am lib: Add version macros and version checking function Jul 21, 2017
Makefile-lib.am lib: Expose new API around basearch Jul 21, 2017
Makefile-libdnf.am build-sys: Propagate verbosity into libdnf Aug 27, 2018
Makefile-libpriv.am build-sys: Mark libpriv symbols as private Mar 28, 2018
Makefile-man.am man: Add rpm-ostreed-automatic page Mar 7, 2018
Makefile-rpm-ostree.am build-sys: Rework Rust --frozen logic Sep 17, 2018
Makefile-tests.am test: add unit test for passwd to sysuser conversion Aug 30, 2018
Makefile.am build-sys: Hard require Rust Aug 21, 2018
README.md README.md: Fix youtube link Apr 14, 2018
Vagrantfile Vagrantfile: specify full path to using_sshfs Dec 21, 2016
autogen.sh build-sys: Fix use of libglnx configure bits Dec 15, 2017
configure.ac Hard require staging Sep 11, 2018
git.mk build: Use git.mk, make git status clean Mar 10, 2016
mkdocs.yml docs: Start using mkdocs Mar 9, 2016

README.md

rpm-ostree: A true hybrid image/package system

rpm-ostree combines libostree (an image system), with libdnf (a package system), bringing many of the benefits of both together.

                         +-----------------------------------------+
                         |                                         |
                         |       rpm-ostree (daemon + CLI)         |
                  +------>                                         <---------+
                  |      |     status, upgrade, rollback,          |         |
                  |      |     pkg layering, initramfs --enable    |         |
                  |      |                                         |         |
                  |      +-----------------------------------------+         |
                  |                                                          |
                  |                                                          |
                  |                                                          |
+-----------------|-------------------------+        +-----------------------|-----------------+
|                                           |        |                                         |
|         libostree (image system)          |        |            libdnf (pkg system)          |
|                                           |        |                                         |
|   C API, hardlink fs trees, system repo,  |        |    ties together libsolv (SAT solver)   |
|   commits, atomic bootloader swap         |        |    with librepo (RPM repo downloads)    |
|                                           |        |                                         |
+-------------------------------------------+        +-----------------------------------------+

For more information, see the online manual: Read The Docs (rpm-ostree)

Features:

  • Transactional, background image-based (versioned/checksummed) upgrades
  • OS rollback without affecting user data (/usr but not /etc, /var) via libostree
  • Client-side package layering (and overrides)
  • Easily make your own: rpm-ostree compose tree

Projects using rpm-ostree

Project Atomic is an umbrella project for delivering upstream container technologies and combined with a minimized, atomically upgradable host system to Fedora, Red Hat Enterprise Linux, and CentOS.

rpm-ostree is the underlying technology for host updates. The headlining project is "Atomic Host", which is a server variant oriented towards running Linux containers using e.g. Kubernetes. However, there is now also a Workstation variant, showing the full generality of the rpm-ostree model.

Manual

For more information, see the online manual: Read The Docs (rpm-ostree)

Talks and media

A number of Project Atomic talks are available; see for example this post which has a bigger collection that also includes talks on containers.

rpm-ostree specific talks: