fester/config.yaml

163 lines
4.9 KiB
YAML
Executable File

master:
name: fester-master
role: control
# Sorcery-go bridge — when enabled, Fester integrates with sorcery-go's
# eBPF warding for container-level security enforcement. The sorcery-go
# FesterClient connects to this Fester master for distributed scheduling.
sorcery_go:
enabled: false
# URL of the sorcery-go Coven master (sorcery-go connects TO us)
# This is informational — sorcery-go uses FESTER_URL env var.
eBPF_warding: true # sorcery-go eBPF cgroup filters on LXC/Podman
coven_sync: false # sync node list from sorcery-go Coven
# Default runtime for nodes that don't specify one.
# Options: host, lxc, podman, firecracker, libvirt, tmux
default_runtime: host
# Firecracker defaults (used when a node has runtime: firecracker)
firecracker:
bin: firecracker
kernel: /var/lib/fester/vmlinux
rootfs: /var/lib/fester/rootfs.ext4
ssh_key: /root/.ssh/fc_builder
ssh_port: 2222
vcpus: 2
memory_mb: 4096
socket_dir: /run/fester/firecracker
nodes:
- name: x99-v3
host: 192.168.1.10
max_jobs: 24
runtime: host
- name: x99-v4
host: 192.168.1.11
max_jobs: 30
runtime: host
# Example LXC node — ARMv7 cross-compile via SourceMage chroot
# - name: lxc-arm-builder
# host: 192.168.1.20
# max_jobs: 8
# runtime: lxc
# container: smgl-armv7
# toolchain:
# provider: sourcemage
# path: /var/lib/smgl-armv7
# target_arch: arm
# Example Gentoo stage3 cross-compile node
# - name: gentoo-mips-builder
# host: 192.168.1.22
# max_jobs: 16
# runtime: host
# toolchain:
# provider: gentoo
# path: /var/lib/gentoo-chroot
# target_arch: mipsel
# Example LEDE/OpenWrt router SDK node
# - name: lede-router-builder
# host: 192.168.1.23
# max_jobs: 4
# runtime: host
# toolchain:
# provider: lede
# path: /opt/lede-sdk
# Example Buildroot SDK node
# - name: buildroot-arm64
# host: 192.168.1.24
# max_jobs: 8
# runtime: host
# toolchain:
# provider: buildroot
# path: /opt/buildroot-arm64
# Example Lunar Linux chroot node
# - name: lunar-x86-builder
# host: 192.168.1.25
# max_jobs: 12
# runtime: host
# toolchain:
# provider: lunar
# path: /var/lib/lunar-chroot
# Example generic chroot node (any distro)
# - name: debian-chroot-builder
# host: 192.168.1.26
# max_jobs: 12
# runtime: host
# toolchain:
# provider: chroot
# path: /var/lib/debian-chroot
# Example Podman node (rootless)
# - name: podman-x86
# host: 192.168.1.21
# max_jobs: 12
# runtime: podman
# container: smgl-x86_64
# Example Firecracker microVM node
# - name: fc-builder-1
# host: 192.168.1.30
# max_jobs: 4
# runtime: firecracker
# firecracker:
# kernel: /var/lib/fester/vmlinux-arm64
# rootfs: /var/lib/fester/rootfs-arm64.ext4
# ssh_port: 2222
# ---------------------------------------------------------------------------
# Toolchain provider system
# ---------------------------------------------------------------------------
# Controls which toolchain provider Fester uses for builds.
#
# provider: (optional) one of: native, btc, buildroot, sourcemage, gentoo,
# lede, lunar, chroot
# - If omitted, selection falls through: per-node -> global -> btc -> native
# - "native" = host gcc/g++ (default fallback)
# - "btc" = BTC.sh sovereign-forged toolchain (if btc.enabled)
# - "chroot" = generic distro chroot (auto-detect)
# - Others are distro-specific chroot/buildroot providers.
#
# target_arch: (optional) for cross-compilation, select target architecture
# (arm, arm64, mipsel, x86_64, tilegx, riscv64, etc.)
# ---------------------------------------------------------------------------
# toolchain:
# provider: native
# BTC Sovereign Toolchain Integration (BTC-0.4.0+ Cross-Compilation)
# Set enabled: true to use the BTC.sh sovereign-forged toolchain.
# This is checked AFTER the toolchain.provider setting above.
#
# BTC 0.4.0 supports multi-architecture cross-compilation. The 'target'
# field selects which cross-compiler golden image to use on this node.
# If omitted, Fester auto-detects the first available golden image.
#
# Available target IDs (run 'BTC.sh --list' for the authoritative table):
# x86_64: haswell, haswell-ep, skylake, skylake-x, skylake-server,
# znver1, znver2, znver3, znver4,
# apu-zn1, apu-zn2, apu-zn3, apu-zn4,
# atom-silvermont, atom-goldmont, atom-tremont, atom-sierraforest
# mipsel: mipselr2
# arm: armv7
# tilegx: tilegx
btc:
enabled: true
root: /opt/BTC
# target: haswell-ep # optional: select a specific cross-compiler target
projects:
- name: linux-tool
repo: https://forgejo.local/linux-tool.git
targets:
debian: "make clean && make debian"
arch: "make clean && make arch"
fedora: "make clean && make fedora"