https://github.com/bkoropoff/argentazul
Container-based Fedora atomic distribution update script
https://github.com/bkoropoff/argentazul
buildah container fedora kinoite podman silverblue
Last synced: 4 months ago
JSON representation
Container-based Fedora atomic distribution update script
- Host: GitHub
- URL: https://github.com/bkoropoff/argentazul
- Owner: bkoropoff
- License: mit
- Created: 2025-08-23T19:53:39.000Z (5 months ago)
- Default Branch: master
- Last Pushed: 2025-09-28T20:42:39.000Z (4 months ago)
- Last Synced: 2025-09-28T20:42:54.692Z (4 months ago)
- Topics: buildah, container, fedora, kinoite, podman, silverblue
- Language: Shell
- Homepage:
- Size: 3.91 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 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
```bash
./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):
```bash
./argentazul
```
To force an update for the default toolbox container:
```bash
./argentazul -f --toolbox default
```
To purge stale containers and images:
```bash
./argentazul purge
```
## License
[MIT](License)