Skill: Variant aus lokalen Kits erstellen
Zweck
Ein komplettes Bottlerocket-Varianten-Image erstellen, das Kits aus der lokalen Entwicklungsregistrierung verwendet. Dies ermöglicht End-to-End-Tests von Kit-Änderungen, bevor sie in Produktionsregistries veröffentlicht werden.
Wann verwenden
- Testen von Kit-Änderungen in einem vollständigen Varianten-Build
- Erstellen bootfähiger Images für lokale Tests
- End-to-End-Validierung von Kit-Modifikationen
Voraussetzungen
- Kits wurden bereits erstellt und in der lokalen Registrierung veröffentlicht (Fähigkeit
build-kit-locallyverwenden) - Lokale Registrierung läuft
- Bottlerocket-Varianten-Repository
Vorgehen
1. Für lokale Registrierung konfigurieren
cd ./bottlerocket
brdev twoliter use-local-deps
Dadurch wird Twoliter.override erstellt, das auf die lokale Registrierung verweist, um Kits abzurufen.
2. Auswählen, welche Kits lokal bezogen werden sollen
Twoliter.toml bearbeiten und vendor = "local" für die Kits setzen, die aus der lokalen Registrierung bezogen werden sollen:
[kit.bottlerocket-core-kit]
vendor = "local" # Aus lokaler Registrierung beziehen
version = "2.0.0"
[kit.bottlerocket-kernel-6.1-kit]
# Kein Vendor-Override - verwendet Upstream
version = "2.0.0"
Nur Kits mit vendor = "local" werden aus der lokalen Registrierung bezogen; andere verwenden Upstream.
3. Sperrdatei aktualisieren
./tools/twoliter/twoliter update
4. Variante bauen
cargo make
Für eine bestimmte Variante:
cargo make -e BUILDSYS_VARIANT=aws-k8s-1.31
Für eine bestimmte Architektur:
cargo make -e BUILDSYS_ARCH=aarch64
5. Das erstellte Image finden
ls -lh build/images/*.img
Validierung
Der Build sollte erfolgreich abgeschlossen werden und eine .img-Datei in build/images/ erzeugen.
Bereinigung
Nach Abschluss der Tests die Upstream-Konfiguration wiederherstellen:
brdev twoliter use-upstream-deps
Dies entfernt Twoliter.override.
Denken Sie daran, auch alle vendor = "local"-Änderungen in Twoliter.toml rückgängig zu machen.
Häufige Probleme
Kit nicht in Registrierung gefunden:
Error: failed to pull kit
Lösung: Überprüfen Sie, ob das Kit mit brdev registry list veröffentlicht wurde
Versionskonflikt:
Lösung: Stellen Sie sicher, dass die Version in Twoliter.toml mit der veröffentlichten Kit-Version übereinstimmt
Sperrdatei nicht synchron:
Lösung: Führen Sie ./tools/twoliter/twoliter update erneut aus