スキル: ローカルキットを使用したバリアントのビルド
目的
ローカル開発レジストリに公開されたキットを使用して、完全なBottlerocketバリアントイメージをビルドします。これにより、本番レジストリに公開する前に、キットの変更をエンドツーエンドでテストできます。
使用するタイミング
- キットの変更を完全なバリアントビルドでテストする場合
- ローカルテスト用の起動可能イメージを作成する場合
- キットの変更をエンドツーエンドで検証する場合
前提条件
- キットがすでにローカルレジストリにビルド・公開されている(
build-kit-locallyスキルを使用) - ローカルレジストリが実行中である
- Bottlerocketバリアントリポジトリ
手順
1. ローカルレジストリ用に設定
cd ./bottlerocket
brdev twoliter use-local-deps
これにより、キットを取得するためのローカルレジストリを指す Twoliter.override が作成されます。
2. ローカルで取得するキットを選択
Twoliter.toml を編集し、ローカルレジストリから取得したいキットに vendor = "local" を設定します。
[kit.bottlerocket-core-kit]
vendor = "local" # ローカルレジストリから取得
version = "2.0.0"
[kit.bottlerocket-kernel-6.1-kit]
# vendor のオーバーライドなし - アップストリームを使用
version = "2.0.0"
vendor = "local" が設定されたキットのみがローカルレジストリから取得され、それ以外はアップストリームを使用します。
3. ロックファイルを更新
./tools/twoliter/twoliter update
4. バリアントをビルド
cargo make
特定のバリアントの場合:
cargo make -e BUILDSYS_VARIANT=aws-k8s-1.31
特定のアーキテクチャの場合:
cargo make -e BUILDSYS_ARCH=aarch64
5. ビルドされたイメージを確認
ls -lh build/images/*.img
検証
ビルドが正常に完了し、build/images/ に .img ファイルが生成される必要があります。
クリーンアップ
テストが終了したら、アップストリーム設定に戻します。
brdev twoliter use-upstream-deps
これにより Twoliter.override が削除されます。
Twoliter.toml 内の vendor = "local" の変更も元に戻すのを忘れないでください。
よくある問題
レジストリにキットが見つからない:
エラー: キットのプルに失敗しました
解決策: brdev registry list でキットが公開されていることを確認してください。
バージョンの不一致:
解決策: Twoliter.toml のバージョンが公開されたキットのバージョンと一致していることを確認してください。
ロックファイルの同期が取れていない:
解決策: ./tools/twoliter/twoliter update を再度実行してください。