Merge pull request #33 from cgwalters/gh-pages

Add GH Pages infrastructure
This commit is contained in:
Liora Milbaum 2023-11-08 16:00:33 +02:00 committed by GitHub
commit 65b4657e18
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 264 additions and 113 deletions

43
.github/workflows/docs.yml vendored Normal file
View File

@ -0,0 +1,43 @@
name: Docs
on:
push:
branches: ["main"]
workflow_dispatch:
permissions:
contents: read
pages: write
id-token: write
concurrency:
group: "pages"
cancel-in-progress: true
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup Pages
uses: actions/configure-pages@v3
- name: Build with Jekyll
uses: actions/jekyll-build-pages@v1
with:
source: ./docs
destination: ./_site
- name: Upload artifact
uses: actions/upload-pages-artifact@v1
# Deployment job
deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
needs: build
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v1

127
README.md
View File

@ -1,118 +1,21 @@
# Goals # centos-boot
This project's toplevel goal is to create base *bootable* container images Create and maintain base *bootable* container images from Fedora ELN and
from Fedora ELN and CentOS Stream packages. CentOS Stream packages.
## Status The longer term vision of this project is that the build infrastructure
(and possibly some of the container definitions) move into the respective
upstream operating systems. For now, this project acts as a more central
point for this across these distributions.
This is an in-development project not intended for production use yet. ## Motivation
## Trying it out The original Docker container model of using "layers" to model
applications has been extremely successful. This project
aims to apply the same technique for bootable host systems - using
standard OCI/Docker containers as a transport and delivery format
for base operating system updates.
See [install.md](./install.md). ## More information
## Differences from Fedora CoreOS See the [project documentation](https://centos.github.io/centos-boot/).
Fedora CoreOS today is not small; there are multiple reasons for this, but
primarily because it was created in a pre-bootable-container time. Not everyone
wants e.g. moby-engine.
But going beyond size, the images produced by this project will focus
on a container-native flow. We will ship a (container) image that does not
include Ignition for example.
## Differences from RHEL CoreOS
We sometimes say that RHEL CoreOS [has FCOS as an upstream][1] but this is only
kind of true; RHEL CoreOS includes a subset of FCOS content, and is lifecycled
with OCP.
An explicit goal of this project is to produce bootable container images
that can be used as *base images* for RHEL CoreOS; for more on this, see e.g.
<https://github.com/openshift/os/issues/799>
## Differences from RHEL for Edge
It is an explicit goal that CentOS boot also becomes a "base input" to RHEL for Edge.
## What does CentOS boot means
From [Wikipedia](https://en.wikipedia.org/wiki/Bamboo_Forest_(Kyoto,_Japan)):
> Bamboo Forest, Arashiyama Bamboo Grove or CentOS boot Bamboo Forest, is a natural
> forest of bamboo in Arashiyama, Kyoto, Japan
[1]: https://github.com/openshift/os/blob/master/docs/faq.md#q-what-is-coreos
## Demonstration base images for Project CentOS boot
These images are technology demonstrators, not for production use. The
intention is that these images are generated by the OS vendor or
distribution.
Or, you can fork this repository and generate your own via
`rpm-ostree compose image`.
## Operating system sources
At the moment these demonstration builds use Fedora ELN and CentOS Stream 9.
## Tiers
### Tier 0
This is the basic tier; it has effectively just:
- kernel systemd selinux-policy-targeted bootc
You are generally going to need to generate derived images from this; installing
it on its own will boot to a system with no automatic networking support, no SSH,
and no default passwords etc.
### Tier 1
This is larger system.
- NetworkManager, chrony
- rpm-ostree (to install packages and in case it's useful "day 2")
- openssh-server
At the current time, it does not include Ignition or cloud-init; so you will
still need to derive from it in order to inject a mechanism to log in in many
cases. However, it will work to install it using e.g. Anaconda and set up
users and passwords that way.
## Image matrix (Fedora)
- `quay.io/centos-boot/fedora-tier-1:eln`
### More about image sources
The current manifest definitions [tier-0](tier-0) and [tier-1](tier-1) were
forked from Fedora CoreOS, but significantly cut down.
The existing content set is obviously subject to change and debate.
## Building
Here's an example command:
```shell
sudo rpm-ostree compose image --authfile ~/.config/containers/myquay.json --cachedir=cache -i --format=ociarchive centos-tier-0-stream9.yaml centos-tier-0-stream9.ociarchive
```
In some situations, copying to a local `.ociarchive` file is convenient. You
can also push to a registry with `--format=registry`.
More information at <https://coreos.github.io/rpm-ostree/container/>
## Badges
| Badge | Description | Service |
| ----------------------- | -------------------- | ------------ |
| [![Renovate][1]][2] | Dependencies | Renovate |
| [![Pre-commit][3]][4] | Static quality gates | pre-commit |
[1]: https://img.shields.io/badge/renovate-enabled-brightgreen?logo=renovate
[2]: https://renovatebot.com
[3]: https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit
[4]: https://pre-commit.com/

14
docs/Gemfile Normal file
View File

@ -0,0 +1,14 @@
# Bundler setup for jekyll to be deployed on github pages.
source "https://rubygems.org"
# Note that we're using the github-pages gem to mimic the GitHub pages
# automated setup. That installs jekyll, a default set of jekyll
# plugins, and a modified jekyll configuration.
group :jekyll_plugins do
gem "github-pages"
gem "jekyll-remote-theme"
end
# Prefer the GitHub flavored markdown version of kramdown.
gem "kramdown-parser-gfm"

58
docs/_config.yml Normal file
View File

@ -0,0 +1,58 @@
title: containers/bootc
description: bootc documentation
baseurl: "/centos-boot"
url: "https://centos.github.io"
# Comment above and use below for local development
# url: "http://localhost:4000"
permalink: /:title/
markdown: kramdown
kramdown:
typographic_symbols:
ndash: "--"
mdash: "---"
# Exclude the README and the bundler files that would normally be
# ignored by default.
exclude:
- README.md
- Gemfile
- Gemfile.lock
- prep-docs.sh
- vendor/
# These are copies of the apidoc/html and man/html directories. Run
# prep-docs.sh before jekyll to put it in place.
include: [reference, man]
remote_theme: just-the-docs/just-the-docs@v0.4.1
plugins:
- jekyll-remote-theme
color_scheme: coreos
# Aux links for the upper right navigation
aux_links:
"bootc on GitHub":
- "https://github.com/containers/bootc"
footer_content: "Copyright &copy; <a href=\"https://www.redhat.com\">Red Hat, Inc.</a> and <a href=\"https://github.com/containers\">others</a>."
# Footer last edited timestamp
last_edit_timestamp: true
last_edit_time_format: "%b %e %Y at %I:%M %p"
# Footer "Edit this page on GitHub" link text
gh_edit_link: true
gh_edit_link_text: "Edit this page on GitHub"
gh_edit_repository: "https://github.com/containers/bootc"
gh_edit_branch: "main"
gh_edit_source: docs
gh_edit_view_mode: "tree"
compress_html:
clippings: all
comments: all
endings: all
startings: []
blanklines: false
profile: false

View File

@ -0,0 +1 @@
$link-color: #53a3da;

View File

@ -1,5 +1,9 @@
# Project CentOS boot tier-1 and cloud agents # Project CentOS boot tier-1 and cloud agents
---
nav_order: 2
---
The tier-0 and tier-1 images today do not contain any special The tier-0 and tier-1 images today do not contain any special
hypervisor-specific agents. The following specifically are not included hypervisor-specific agents. The following specifically are not included
for example: for example:

View File

@ -1,5 +1,9 @@
# Relationship with CoreOS # Relationship with CoreOS
---
nav_order: 5
---
The CoreOS Container Linux project was very successful, spawning multiple projects The CoreOS Container Linux project was very successful, spawning multiple projects
and derivatives that continue to see widespread use today. and derivatives that continue to see widespread use today.

118
docs/index.md Normal file
View File

@ -0,0 +1,118 @@
# Goals
This project's toplevel goal is to create base *bootable* container images
from Fedora ELN and CentOS Stream packages.
## Status
This is an in-development project not intended for production use yet.
## Trying it out
See [install.md](./install.md).
## Differences from Fedora CoreOS
Fedora CoreOS today is not small; there are multiple reasons for this, but
primarily because it was created in a pre-bootable-container time. Not everyone
wants e.g. moby-engine.
But going beyond size, the images produced by this project will focus
on a container-native flow. We will ship a (container) image that does not
include Ignition for example.
## Differences from RHEL CoreOS
We sometimes say that RHEL CoreOS [has FCOS as an upstream][1] but this is only
kind of true; RHEL CoreOS includes a subset of FCOS content, and is lifecycled
with OCP.
An explicit goal of this project is to produce bootable container images
that can be used as *base images* for RHEL CoreOS; for more on this, see e.g.
<https://github.com/openshift/os/issues/799>
## Differences from RHEL for Edge
It is an explicit goal that CentOS boot also becomes a "base input" to RHEL for Edge.
## What does CentOS boot means
From [Wikipedia](https://en.wikipedia.org/wiki/Bamboo_Forest_(Kyoto,_Japan)):
> Bamboo Forest, Arashiyama Bamboo Grove or CentOS boot Bamboo Forest, is a natural
> forest of bamboo in Arashiyama, Kyoto, Japan
[1]: https://github.com/openshift/os/blob/master/docs/faq.md#q-what-is-coreos
## Demonstration base images for Project CentOS boot
These images are technology demonstrators, not for production use. The
intention is that these images are generated by the OS vendor or
distribution.
Or, you can fork this repository and generate your own via
`rpm-ostree compose image`.
## Operating system sources
At the moment these demonstration builds use Fedora ELN and CentOS Stream 9.
## Tiers
### Tier 0
This is the basic tier; it has effectively just:
- kernel systemd selinux-policy-targeted bootc
You are generally going to need to generate derived images from this; installing
it on its own will boot to a system with no automatic networking support, no SSH,
and no default passwords etc.
### Tier 1
This is larger system.
- NetworkManager, chrony
- rpm-ostree (to install packages and in case it's useful "day 2")
- openssh-server
At the current time, it does not include Ignition or cloud-init; so you will
still need to derive from it in order to inject a mechanism to log in in many
cases. However, it will work to install it using e.g. Anaconda and set up
users and passwords that way.
## Image matrix (Fedora)
- `quay.io/centos-boot/fedora-tier-1:eln`
### More about image sources
The current manifest definitions [tier-0](tier-0) and [tier-1](tier-1) were
forked from Fedora CoreOS, but significantly cut down.
The existing content set is obviously subject to change and debate.
## Building
Here's an example command:
```shell
sudo rpm-ostree compose image --authfile ~/.config/containers/myquay.json --cachedir=cache -i --format=ociarchive centos-tier-0-stream9.yaml centos-tier-0-stream9.ociarchive
```
In some situations, copying to a local `.ociarchive` file is convenient. You
can also push to a registry with `--format=registry`.
More information at <https://coreos.github.io/rpm-ostree/container/>
## Badges
| Badge | Description | Service |
| ----------------------- | -------------------- | ------------ |
| [![Renovate][1]][2] | Dependencies | Renovate |
| [![Pre-commit][3]][4] | Static quality gates | pre-commit |
[1]: https://img.shields.io/badge/renovate-enabled-brightgreen?logo=renovate
[2]: https://renovatebot.com
[3]: https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit
[4]: https://pre-commit.com/

View File

@ -1,5 +1,10 @@
# Trying out Project CentOS boot development builds # Trying out development builds
---
nav_order: 2
---
<!--
## Booting directly from KVM guest image ## Booting directly from KVM guest image
There's a provisional KVM guest image uploaded here: There's a provisional KVM guest image uploaded here:
@ -11,6 +16,7 @@ and in general all the same techniques that work the Fedora Cloud Base or the
RHEL KVM guest image. RHEL KVM guest image.
Once you've booted this, use e.g. `bootc update` to fetch updates. Once you've booted this, use e.g. `bootc update` to fetch updates.
-->
## Rebasing from Fedora CoreOS ## Rebasing from Fedora CoreOS