스킬: 로컬 키트로 변형 빌드
목적
로컬 개발 레지스트리에 게시된 키트를 사용하여 완전한 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" 변경 사항도 되돌리는 것을 잊지 마십시오.
일반적인 문제
레지스트리에서 키트를 찾을 수 없음:
Error: failed to pull kit
해결 방법: brdev registry list를 사용하여 키트가 게시되었는지 확인합니다.
버전 불일치:
해결 방법: Twoliter.toml의 버전이 게시된 키트 버전과 일치하는지 확인합니다.
잠금 파일 동기화 불일치:
해결 방법: ./tools/twoliter/twoliter update를 다시 실행합니다.