Skill: Construir Variante a partir de Kits Locais
Propósito
Construir uma imagem completa de variante Bottlerocket usando kits publicados no registro de desenvolvimento local. Isso permite testes completos de alterações nos kits antes de publicá-los em registros de produção.
Quando Usar
- Testar alterações em kits em uma construção completa de variante
- Criar imagens inicializáveis para testes locais
- Validação completa de modificações nos kits
Pré-requisitos
- Kits já construídos e publicados no registro local (use o skill
build-kit-locally) - Registro local em execução
- Repositório da variante Bottlerocket
Procedimento
1. Configurar para registro local
cd ./bottlerocket
brdev twoliter use-local-deps
Isso cria Twoliter.override apontando para o registro local para buscar os kits.
2. Selecionar quais kits buscar localmente
Edite Twoliter.toml e defina vendor = "local" para os kits que deseja do registro local:
[kit.bottlerocket-core-kit]
vendor = "local" # Buscar do registro local
version = "2.0.0"
[kit.bottlerocket-kernel-6.1-kit]
# Sem sobrescrita de vendor - usa upstream
version = "2.0.0"
Apenas os kits com vendor = "local" serão buscados do registro local; os demais usam upstream.
3. Atualizar arquivo de bloqueio
./tools/twoliter/twoliter update
4. Construir a variante
cargo make
Para uma variante específica:
cargo make -e BUILDSYS_VARIANT=aws-k8s-1.31
Para uma arquitetura específica:
cargo make -e BUILDSYS_ARCH=aarch64
5. Localizar a imagem construída
ls -lh build/images/*.img
Validação
A construção deve ser concluída com sucesso e produzir um arquivo .img em build/images/.
Limpeza
Ao terminar os testes, restaure a configuração upstream:
brdev twoliter use-upstream-deps
Isso remove Twoliter.override.
Lembre-se também de reverter quaisquer alterações de vendor = "local" em Twoliter.toml.
Problemas Comuns
Kit não encontrado no registro:
Error: failed to pull kit
Solução: Verifique se o kit está publicado com brdev registry list
Incompatibilidade de versão:
Solução: Certifique-se de que a versão em Twoliter.toml corresponde à versão publicada do kit
Arquivo de bloqueio dessincronizado:
Solução: Execute ./tools/twoliter/twoliter update novamente