karuboniru / karuboniru-workstation

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Modified base image for Fedora Silverblue

Build Ostree Container Image

This is for building a custom base image for Fedora SilverBlue for personal use.

Images are built in Github Actions and uploaded to ghcr.


Manifests for rpm-ostree based Fedora variants

This is the configuration needed to create rpm-ostree based variants of Fedora. Each variant is described in a YAML treefile which is then used by rpm-ostree to compose an ostree commit with the package requested.

In the Fedora infrastructure, this happens via pungi with Lorax (templates).

Fedora Silverblue

Fedora Kinoite

Building

Instructions to perform a local build of Silverblue:

# Clone the config
git clone https://pagure.io/workstation-ostree-config && cd workstation-ostree-config

# Prepare directories
mkdir -p repo cache
ostree --repo=repo init --mode=archive

# Build (compose) the variant of your choice
sudo rpm-ostree compose tree --repo=repo --cachedir=cache fedora-silverblue.yaml

# Update summary file
ostree summary --repo=repo --update

Testing

Instructions to test the resulting build:

  • First, serve the ostree repo using an HTTP server. You can use any static file server. For example using https://github.com/TheWaWaR/simple-http-server:

    simple-http-server --index --ip 192.168.122.1 --port 8000
    
  • Then, on an already installed Silverblue system:

# Add an ostree remote
sudo ostree remote add testremote http://192.168.122.1:8000/repo --no-gpg-verify

# Pin the currently deployed (and probably working) version
sudo ostree admin pin 0

# List refs from variant remote
sudo ostree remote refs testremote

# Switch to your variant
sudo rpm-ostree rebase testremote:fedora/rawhide/x86_64/silverblue

# Reboot and test!

Branching instructions for new Fedora releases

Follow those steps during the Fedora branch process in Fedora:

Fedora Ansible

Make a PR similar to ansible#1318 in fedora-infra/ansible.

On Rawhide / main branch

sed -i "s/40/41/g" *.repo *.yaml comps-sync.py
mv fedora-40.repo fedora-41.repo
mv fedora-40-updates.repo fedora-41-updates.repo
sed -i "s/41/42/g" README.md
sed -i "s/40/41/g" README.md

On the new branch (f40)

rm fedora-rawhide.repo
sed -i "/- fedora-rawhide/d" *.yaml
sed -i "s/# - fedora-40/- fedora-40/" *.yaml
sed -i "s/ref: fedora\/rawhide/ref: fedora\/40/" *.yaml

Historical references

Building and testing instructions:

For some background, see:

Note also this repo obsoletes https://pagure.io/atomic-ws

About

License:MIT License


Languages

Language:Just 50.4%Language:Python 37.3%Language:Shell 12.3%