Dizine Dön

bpfcompat

Açık kaynaklı bir eBPF uyumluluk doğrulayıcısı: gerçek Linux çekirdeklerini tek kullanımlık sanal makinelerde başlatır, derlenmiş BPF programlarınızı her birinin içinde yükler ve CI'nızı yapıt-çekirdek geçti/kaldı matrisi üzerinden denetler.

GoeBPFCI/CDApache-2.0

Vaka Calismasi

Problem

eBPF ekipleri dogrulayici, BTF veya CO-RE uyumluluk hatalarini cogu zaman ancak musteri cekirdegine dagitimdan sonra gorur.

Mimari

Go orkestrator tek kullanimlik QEMU/KVM Linux konuklari baslatir, derlenmis BPF yapitlarini C/libbpf dogrulayici ile yukler ve sonuclari cekirdek profiline gore toplar.

Guvenlik Yaklasimi

Uyumluluk kontrolleri uretim sunuculari yerine tek kullanimlik katmanlarda calisir. Cekirdek dogrulayici otorite kabul edilir ve CI gerileme kanitinda durur.

Sonuc

Proje cekirdek uyumlulugunu yapit-cekirdek bazli gecis/kalma matrisiyle tekrar edilebilir bir CI kapisina donusturur.

Kanit

Kernel-by-artifact matrixDisposable VM executionCI regression exit code

Cikarimlar

  • Uyumluluk iddialari yalniz derleme kontroluyle degil canli cekirdek kanitiyla desteklenmelidir.
  • Kucuk ve deterministik hata kodu CI benimsemesini kolaylastirir.

Teknik Genel Bakış

Her konuğun içinde çalışan bir C/libbpf doğrulayıcısıyla birlikte Go ile yazılmıştır. bpfcompat her çekirdek profili için bir bulut imajından tek kullanımlık bir QEMU/KVM örtüşme VM'i başlatır (Ubuntu ve Fedora, 5.x–6.x, x86_64 ve ARM64), ardından her programı gerçekten yükleyip bağlar — BTF durumunu, CO-RE yer değiştirmelerini ve yetenek kontrollerini kaydeder. Sonuçlar bir geçti/kaldı matrisine toplanır ve çıkış kodu 2, CI denetimi için bir uyumluluk gerilemesini işaretler.

Değer Önerisi

Çekirdek uyumsuzluklarını üretimde keşfetmeyi bırakın. bpfcompat, eBPF programlarınızın gönderim yaptığınız her çekirdekte yüklendiğini — kullanıcılarınızdan önce, CI içinde — tahmin yerine doğrulanabilir kanıtlarla kanıtlar.