Flatcar Container Linux Release Management Tool
Project description
Yardmaster
Yardmaster is a release management tool for Flatcar Container Linux. It automates release orchestration across multiple channels (Alpha, Beta, Stable, LTS) and provides commands to prepare, validate, and tag releases.
Requirements
- Python 3.10+
uvfor environment and dependency management
Setup
# Install dependencies
make dev-install
# Copy and edit the config file
cp .yardmaster.yaml.sample .yardmaster.yaml
# Edit .yardmaster.yaml with your values
Required environment variables
The config template references these env vars:
JENKINS_USERandJENKINS_TOKENfor JenkinsGPG_KEY_IDif GPG signing is enabled
Export them before running release commands.
Release workflow
# 1. Initialize release state from a GitHub issue
yardmaster release init https://github.com/flatcar/Flatcar/issues/1234
# 2. Check status
yardmaster status
# 3. Run pre-release steps (tagging, branching, Jenkins builds)
yardmaster release run --pre
# 4. Run post-release steps
yardmaster release run --post
# 5. Mark release as done
yardmaster release complete
Use --dry-run on any step to preview without making changes.
Useful options:
--dry-run: show actions without executing them--skip-jenkins: skip triggering Jenkins builds--skip-issue-check: skip GitHub issue title verification--force: force tag creation if it already exists-v: verbose logging
Retag
Retag a channel mid-release:
yardmaster retag alpha
Status
View configured channels, planned releases, and release state:
yardmaster status
yardmaster status --show-sdk
yardmaster status --json
SDK
Determine SDK versions for upcoming releases:
yardmaster sdk determine alpha:3800.0.0
Jenkins
Trigger a Jenkins PR build:
yardmaster jenkins pr-build --dry-run flatcar scripts 1234
Development
make dev-install # install dev dependencies
make test # run tests
make lint # lint
make format # auto-format
make type-check # mypy
make check # all of the above
make fix # auto-fix formatting + lint
make all # fix + check + build
make clean # remove build artifacts
make help # list all targets
Notes
- Default config path:
.yardmaster.yaml - Sample config:
.yardmaster.yaml.sample - Workspace default:
~/.yardmaster/workspace - Logs default:
~/.yardmaster/yardmaster.log
Troubleshooting
If you see Config file not found, copy the sample config:
cp .yardmaster.yaml.sample .yardmaster.yaml
Then edit it with your values.
Configuration
Yardmaster looks for .yardmaster.yaml in the current directory by default. You can override this with:
-
YARDMASTER_CONFIGenvironment variable:export YARDMASTER_CONFIG=~/my-project/.yardmaster.yaml yardmaster status
-
-cflag (takes precedence over the env var):yardmaster -c /path/to/config.yaml status
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file yardmaster-0.1.3.tar.gz.
File metadata
- Download URL: yardmaster-0.1.3.tar.gz
- Upload date:
- Size: 150.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Fedora Linux","version":"43","id":"","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4c1bb120ccc13cd6e1c12269df01439ad360ec01308dc7ecbfa940f889546e6c
|
|
| MD5 |
b8d99d174d6d291a7762dbdf4f1a7f52
|
|
| BLAKE2b-256 |
f3812f665fc1388993cedf2b5efbdf711af85fd3c8bfbf949a7376e2980f6234
|
File details
Details for the file yardmaster-0.1.3-py3-none-any.whl.
File metadata
- Download URL: yardmaster-0.1.3-py3-none-any.whl
- Upload date:
- Size: 33.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Fedora Linux","version":"43","id":"","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5bec9cc34536a6cc61fb4284a50e0a593a0ec11da9651e96480ae4aed3ec6562
|
|
| MD5 |
ee4c76649677b7ffbf1f7f17b5d32c26
|
|
| BLAKE2b-256 |
ce714bb72093adddf20e785309fb73d268d99fc798009375078c83c27bda853c
|