Agent Skills: Skill: Build Variant from Local Kits

Build a variant using locally published kits for development validation

UncategorizedID: cbgbt/bottlerocket-forest/build-variant-from-local-kits

Skill Files

Browse the full folder contents for build-variant-from-local-kits.

Download Skill

Loading file tree…

skills/build-variant-from-local-kits/SKILL.md

Skill Metadata

Name
build-variant-from-local-kits
Description
Build a variant using locally published kits for development validation

Skill: Build Variant from Local Kits

Purpose

Build a complete Bottlerocket variant image using kits published to the local development registry. This enables end-to-end testing of kit changes before publishing to production registries.

When to Use

  • Testing kit changes in a complete variant build
  • Creating bootable images for local testing
  • End-to-end validation of kit modifications

Prerequisites

  • Kits already built and published to local registry (use build-kit-locally skill)
  • Local registry running
  • Bottlerocket variant repository

Procedure

1. Configure for local registry

cd ./bottlerocket
brdev twoliter use-local-deps

This creates Twoliter.override pointing to the local registry for fetching kits.

2. Select which kits to fetch locally

Edit Twoliter.toml and set vendor = "local" for kits you want from the local registry:

[kit.bottlerocket-core-kit]
vendor = "local"  # Fetch from local registry
version = "2.0.0"

[kit.bottlerocket-kernel-6.1-kit]
# No vendor override - uses upstream
version = "2.0.0"

Only kits with vendor = "local" will be fetched from the local registry; others use upstream.

3. Update lock file

./tools/twoliter/twoliter update

4. Build the variant

cargo make

For specific variant:

cargo make -e BUILDSYS_VARIANT=aws-k8s-1.31

For specific architecture:

cargo make -e BUILDSYS_ARCH=aarch64

5. Locate the built image

ls -lh build/images/*.img

Validation

The build should complete successfully and produce an .img file in build/images/.

Cleanup

When done testing, restore upstream configuration:

brdev twoliter use-upstream-deps

This removes Twoliter.override. Remember to also revert any vendor = "local" changes in Twoliter.toml.

Common Issues

Kit not found in registry:

Error: failed to pull kit

Solution: Verify kit is published with brdev registry list

Version mismatch: Solution: Ensure Twoliter.toml version matches the published kit version

Lock file out of sync: Solution: Run ./tools/twoliter/twoliter update again