Skip to content

Container-based Fedora atomic distribution update script

License

Notifications You must be signed in to change notification settings

bkoropoff/argentazul

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Argentazul - Fedora Atomic Update Script

Overview

The argentazul script automates the process of updating Fedora atomic distributions using standard container infrastructure, allowing customization with standard Containerfile commands.

Features

  • Operates on either your host system or toolbox containers.
  • Checks for and deploys latest updates easily.
  • Aggressively reclaims disk space from stale containers/images

Requirements

  • An atomic Fedora distribution such as Silverblue or Kinoite

Usage

./argentazul [-f|--force] [-c|--config FILE] [--distro DISTRO] [--release RELEASE] [--toolbox TOOLBOX] [purge|update]

Commands

  • update (default): Builds and deploys updates if available.
  • purge: Cleans intermediate containers and images. Also done automatically after pulling updates from the container registry.

Options

  • -f, --force: Forces a build and deployment even if no updates are available.
  • -c FILE, --config FILE: Specifies an additional configuration file.
  • --distro DISTRO: Overrides the distribution variant (e.g., silverblue).
  • --release RELEASE: Overrides the release version (e.g., 42).
  • --toolbox TOOLBOX: Build and deploy the toolbox container of the given name" instead of the host system. An argument of default specifies the default toolbox container.
  • -h, --help: Displays help and exits.

Environment and Configuration Variables

The script supports the following variables, which can be set in the environment or in configuration files:

  • REGISTRY: Container registry (default: quay.io/fedora-ostree-desktops).
  • DISTRO: Distribution variant (auto-detected from /usr/lib/os-release if unset).
  • RELEASE: Release version (auto-detected from /usr/lib/os-release if unset).
  • FORCE: Forces image build and deployment (default: false).
  • CONFIGDIR: Directory for configuration files (auto-detected via XDG paths).
  • CONTAINERFILE: Path to a custom Containerfile (auto-detected via XDG paths).

Configuration Files

The script searches for configuration files in XDG paths (e.g. $XDG_CONFIG_HOME/argentazul, usually ~/.config/argentazul). It looks for:

  • config: A shell script to set variables.
  • Containerfile: A partial Containerfile for customizing the image. The following build arguments are available:
    • FROM: The source container image (e.g. quay.io/fedora-ostree-desktops/silverblue:42)
    • REGISTRY: The registry being used (e.g. quay.io/fedora-ostree-desktops)
    • DISTRO: The distribution variant (silverblue, kinoite, ...)
    • RELEASE: The distribution version (e.g. 42)
    • HOSTNAME: The host system's hostname
    • TOOLBOX: The name of the toolbox container being built (if applicable)

When running with --toolbox, files are looked for in a subdirectory with the specified name, e.g. ~/.config/argentazul/default/Containerfile for --toolbox default.

Example

To update a system (detecting distribution and release):

./argentazul

To force an update for the default toolbox container:

./argentazul -f --toolbox default

To purge stale containers and images:

./argentazul purge

License

MIT

About

Container-based Fedora atomic distribution update script

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages