Go to file
Mathias Beaulieu-Duncan 2b5fd0a25e Update patches for Talos v1.12.3 / pkgs v1.12.0
Regenerated patches to match current upstream checkouts:
- pkgs: updated kernel version, checksums, and config-arm64
- talos: reworked to patch Pkgfile, kernel config, and pkg.yaml

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 14:06:01 -05:00
.gitea/workflows Add Docker Scout CVE scanning and switch CI to gmake 2026-02-13 14:01:13 -05:00
config Initial commit: Talos CM5 builder with Gitea CI/CD 2026-02-09 17:58:17 -05:00
patches/siderolabs Update patches for Talos v1.12.3 / pkgs v1.12.0 2026-02-13 14:06:01 -05:00
scripts Initial commit: Talos CM5 builder with Gitea CI/CD 2026-02-09 17:58:17 -05:00
.gitignore Initial commit: Talos CM5 builder with Gitea CI/CD 2026-02-09 17:58:17 -05:00
Makefile Add Docker Scout CVE scanning and switch CI to gmake 2026-02-13 14:01:13 -05:00
README.md Switch runner target to Apple Silicon Mac Mini 2026-02-09 18:21:06 -05:00

Talos CM5 Builder

Custom Talos Linux images for Raspberry Pi CM5 on Compute Blade hardware.

The official Talos Image Factory does not support CM5 — the mainline kernel lacks CM5 device trees and RP1 driver support. This builder uses the RPi downstream kernel (via talos-rpi5/talos-builder patches) to produce working CM5 images with our extensions and overclock config.

What it builds

  • Installer imagedocker.io/svrnty/talos-rpi5:<tag> (for talosctl upgrade)
  • Raw disk image → Gitea release metal-arm64.raw.zst (for eMMC flashing)

Baked-in config:

  • RPi downstream kernel with CM5/RP1 support
  • Overclock: 2.6GHz (arm_freq=2600, over_voltage_delta=50000, arm_boost=1)
  • Extensions: iscsi-tools, util-linux-tools

Usage

Building locally (ARM64 host required)

make checkouts patches   # Clone and patch sources
make kernel              # Build RPi kernel
make overlay             # Build SBC overlay
make installer           # Build installer + disk image

CI/CD (Gitea Actions)

Push a version tag to trigger an automated build:

git tag v1.11.5-1
git push origin v1.11.5-1

The pipeline runs on the ARM64 self-hosted runner and:

  1. Builds the kernel, overlay, and installer
  2. Pushes the installer image to Docker Hub
  3. Creates a Gitea release with the raw disk image

Upstream update checks

A weekly scheduled workflow checks for new Talos and RPi kernel releases and creates Gitea issues when updates are available.

CI Secrets

Secret Description
REGISTRY_USERNAME Docker Hub username (org-level)
REGISTRY_PASSWORD Docker Hub access token (org-level)

Runner Setup (Apple Silicon Mac Mini)

The build runner needs:

  • Docker Desktop with Buildx (arm64 native)
  • Gitea act_runner registered with labels: self-hosted, macOS, arm64
  • Sufficient disk space for kernel builds (~20GB)
# Install act_runner via Homebrew
brew install act_runner

# Or download directly
curl -sL https://gitea.com/gitea/act_runner/releases/latest/download/act_runner-darwin-arm64 -o act_runner
chmod +x act_runner

# Register
./act_runner register \
  --instance https://git.openharbor.io \
  --token <runner-token> \
  --name mac-mini \
  --labels self-hosted,macOS,arm64

# Run as service
./act_runner daemon

Structure

.gitea/workflows/
  build.yaml              # Build pipeline (tag push trigger)
  check-updates.yaml      # Upstream update checker (weekly cron)
Makefile                   # Build orchestration
config/
  config.txt.append        # CM5 overclock settings
  extensions.yaml          # System extensions list
scripts/
  check-upstream.sh        # Version comparison script
patches/
  siderolabs/
    pkgs/0001-*.patch      # RPi kernel patch
    talos/0001-*.patch     # Module list patch