This repo builds a Talos system extension that adds:
firecrackerjailer
In plain terms: it gives a Talos node the Firecracker binaries so that higher-level systems can start lightweight microVMs.
- Downloads Firecracker release tarballs for
amd64andarm64 - Verifies tarball checksums before extracting
- Packages binaries into a Talos extension image
- Publishes multi-arch images to GHCR on tagged releases
- Signs the pushed image digest recursively with Cosign so Image Factory can verify it
flowchart LR
A[Push to main] --> B[CI: lint + build]
B --> C[Release Please opens/updates PR]
C --> D[You review and merge release PR]
D --> E[Tag created]
E --> F[Publish workflow]
F --> G[GHCR image + Cosign signature + GitHub Release]
The publish workflow needs these repository secrets:
COSIGN_PRIVATE_KEY: private key fromcosign generate-key-pairCOSIGN_PASSWORD: password for the private key, or empty string if generated without oneTALOS_IMAGES_DISPATCH_TOKEN: existing token used to triggertalos-images
Mount the matching cosign.pub into Image Factory as
OMNI_IMAGE_FACTORY_COSIGN_PUBLIC_KEY_FILE.
When rotating COSIGN_PRIVATE_KEY, rotate the Image Factory public key in the
same change and retire all previously published GHCR tags before releasing the
next version. This prevents the factory from accepting artifacts signed by the
retired key.
Build locally:
docker buildx build --platform linux/amd64,linux/arm64 -t talos-ext-firecracker:test .Run local checks:
pre-commit run --all-filesInstall git hooks:
pre-commit install
pre-commit install --hook-type commit-msgDockerfile: downloads, verifies, and installs Firecracker binariesmanifest.yaml: Talos extension metadata.github/workflows/ci.yml: lint/build checks.github/workflows/release-please.yml: automated release PRs.github/workflows/release.yml: publish on tags
- Talos extensions docs: https://www.talos.dev/latest/talos-guides/configuration/system-extensions/
- Firecracker docs: https://firecracker-microvm.github.io/
- Container image: https://ghcr.io/syscode-labs/talos-ext-firecracker