Skip to Content
Getting StartedPorozumění receptům

Porozumění receptům

BuildRecipe je normalizovaná specifikace, kterou OpenFactory posílá do pipeline pro image. Chat může pomoci s autorstvím, ale build definují recept, snapshoty zdrojů, vygenerované soubory a důkazy z testů.

Mentální model

Kanonický recept má čtyři hlavní vrstvy:

  1. Identita a cíl: název, popis, base image a hardwarový záměr.
  2. Operační systém: funkce, balíčky, služby, uživatelé, zabezpečení, desktop, installer, přílohy a startup skripty pod os.
  3. Ověření: jeden nebo více scénářů s vestavěnými testy a vlastními assertion.
  4. Záměr doručení: požadovaná místa publikace a volitelná nastavení doručení.
{ "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"] }

Používejte snake_case. Nové integrace by neměly posílat legacy tvary jako baseImage, top-level features nebo startupScripts.

Tři kontroly, tři různé odpovědi

Validace schématu

Validace odpovídá na otázku: „Mají rozpoznaná data přijatelný tvar?” Nedokazuje, že balíčky existují nebo že chování funguje. Některá neznámá pole se kvůli kompatibilitě ignorují, takže úspěšná validace může stále vynechat důležitý požadavek.

Vždy porovnejte vrácený normalizovaný recept s původním chatem a požadavky. Chybějící desktop, aplikace, installer, příloha nebo test je vada receptu, i když validace vrátí valid.

Důkaz z buildu

Úspěšný build odpovídá: „Vyprodukoval pipeline artefakt?” Nedokazuje, že každá zamýšlená funkce se dostala do image. Prohlédněte inventář balíčků, provenienci zdrojů, varování a důkazy z fáze buildu.

Ověření hosta

Testy hosta odpovídají na úzké runtime otázky: zda VM nabootovala, služba běží, port naslouchá, soubor má očekávaný obsah nebo aplikace se spustila. Prošlá assertion podporuje jen chování, které skutečně pozorovala.

Nastavení zabezpečení jsou záměr

Přijímané hodnoty hardening_level jsou minimal, standard a strict, ale tyto popisky nejsou přenositelné compliance profily. Generátory cíle je mohou interpretovat jinak. Pokud potřebujete benchmark, vyberte přesně použitelný benchmark a uchovejte výsledky po jednotlivých kontrolách; nevyvozujte shodu s CIS z strict.

Stejně tak disk_encryption, audit_logging, SELinux, fail2ban, Secure Boot, dm-verity a nastavení installera vyžadují odpovídající testy artefaktu a runtime.

Chat a vlastnictví receptu

Když validujete nebo upravujete recept z chatu, stávající konverzace zůstává součástí kontextu autorství. Validace má vyladit aktuální recept, ne ho potichu nahradit generickým výchozím. Normalizovaný recept je přesto poslední kontrolní bod před buildem.

U každého podstatného požadavku:

  • najděte odpovídající normalizované pole;
  • potvrďte jeho hodnotu a cílový rozsah;
  • přidejte assertion, kde je možný runtime důkaz; a
  • práci pouze při nasazení uchovejte jako výslovné varování místo toho, abyste předstírali, že proběhla během buildu image.

Kontrolní seznam revize

  • Je base image a architektura správná?
  • Jsou přítomny všechny požadované funkce desktopu a aplikace?
  • Jsou externí zdroje připnuté a licencované pro zamýšlené použití?
  • Nejsou tajemství v uložených polích receptu a skriptech?
  • Je installer nakonfigurovaný a otestovaný na jednorázovém disku, pokud o to bylo požádáno?
  • Testují scénáře skutečná akceptační kritéria?
  • Jsou nepodporované nebo deployment-time požadavky výslovně uvedeny?

Viz Schéma receptu pro referenci polí a Váš první build pro workflow buildu a stažení.