Skip to Content
Getting StartedRazumijevanje recepata

Razumijevanje recepata

BuildRecipe je normalizirana specifikacija koju OpenFactory šalje u pipeline za image. Chat može pomoći pri autorstvu, ali build definiraju recept, snimke izvora, generirane datoteke i dokazi testova.

Mentalni model

Kanonski recept ima četiri glavna sloja:

  1. Identitet i cilj: naziv, opis, base image i hardverska namjera.
  2. Operacijski sustav: značajke, paketi, servisi, korisnici, sigurnost, desktop, installer, privitci i startup skripte pod os.
  3. Provjera: jedan ili više scenarija s ugrađenim testovima i prilagođenim assertion.
  4. Namjera isporuke: tražena odredišta objave i neobavezne postavke isporuke.
{ "name": "debian-web-check", "display_name": "Debian Web Check", "description": "Small Debian image with explicit smoke tests.", "base_image": "debian-trixie", "hardware": { "platform": "pc", "architecture": "x86_64", "min_cpu_cores": 2, "min_memory_gb": 4, "min_storage_gb": 16, "nic_count": 1 }, "os": { "features": ["ssh"], "packages": ["curl"], "services": [ { "name": "ssh", "enabled": true, "config": {"port": 22, "disable_password_auth": true} } ], "security": { "hardening_level": "standard", "audit_logging": true } }, "scenarios": [ { "id": "primary-smoke", "name": "Primary image smoke test", "enabled": true, "tests": ["boot", "login", "packages"] } ], "publish_to": ["local"] }

Koristite snake_case. Nove integracije ne bi trebale slati legacy oblike poput baseImage, top-level features ili startupScripts.

Tri provjere, tri različita odgovora

Validacija sheme

Validacija odgovara: „Imaju li prepoznati podaci prihvatljiv oblik?” Ne dokazuje da paketi postoje ili da ponašanje radi. Neka nepoznata polja se zbog kompatibilnosti ignoriraju, pa uspjeh validacije i dalje može izostaviti važan zahtjev.

Uvijek usporedite vraćeni normalizirani recept s izvornim chatom i zahtjevima. Nedostajući desktop, aplikacija, installer, privitak ili test je mana recepta čak i ako validacija kaže valid.

Dokaz iz builda

Uspješan build odgovara: „Je li pipeline proizveo artefakt?” Ne dokazuje da je svaka namjeravana značajka ušla u image. Pregledajte inventar paketa, porijeklo izvora, upozorenja i dokaze iz faze builda.

Provjera gosta

Testovi gosta odgovaraju na uska runtime pitanja: je li VM bootao, je li servis aktivan, sluša li port, ima li datoteka očekivani sadržaj ili je li se aplikacija pokrenula. Prolazna assertion podržava samo ponašanje koje je stvarno promatrala.

Postavke sigurnosti su namjera

Prihvaćene vrijednosti hardening_level su minimal, standard i strict, ali te oznake nisu prenosivi compliance profili. Ciljni generatori mogu ih različito tumačiti. Ako vam treba benchmark, odaberite točno primjenjivi benchmark i zadržite rezultate po pojedinačnim kontrolama; ne zaključujte CIS usklađenost iz strict.

Slično, disk_encryption, audit_logging, SELinux, fail2ban, Secure Boot, dm-verity i postavke installera zahtijevaju odgovarajuće testove artefakta i runtime.

Chat i vlasništvo recepta

Kad validirate ili uređujete recept iz chata, postojeći razgovor ostaje dio konteksta autorstva. Validacija bi trebala dotjerati trenutačni recept, a ne ga tiho zamijeniti generičkim zadanim. Normalizirani recept je ipak zadnja kontrolna točka prije builda.

Za svaki bitan zahtjev:

  • pronađite odgovarajuće normalizirano polje;
  • potvrdite njegovu vrijednost i ciljni opseg;
  • dodajte assertion gdje je moguć runtime dokaz; i
  • rad samo pri deployu zadržite kao izričito upozorenje umjesto da pretvarate da se dogodio tijekom builda image.

Kontrolni popis pregleda

  • Jesu li base image i arhitektura ispravni?
  • Jesu li prisutne sve tražene značajke desktopa i aplikacije?
  • Jesu li vanjski izvori fiksirani i licencirani za namjeravanu upotrebu?
  • Nema li tajni u spremljenim poljima recepta i skriptama?
  • Je li installer konfiguriran i testiran na jednokratnom disku ako je traženo?
  • Testiraju li scenariji stvarna kriterija prihvaćanja?
  • Jesu li nepodržani ili deployment-time zahtjevi eksplicitno navedeni?

Pogledajte Shema recepta za referencu polja i Vaš prvi build za workflow builda i preuzimanja.