Receptek megértése
A BuildRecipe a normalizált specifikáció, amelyet az OpenFactory az image pipeline felé küld. A chat segíthet az elkészítésben, de a buildet a recept, a forrás-pillanatképek, a generált fájlok és a tesztbizonyítékok határozzák meg.
Mentális modell
A kanonikus recept négy fő rétegből áll:
- Identitás és cél: név, leírás, base image és hardver szándék.
- Operációs rendszer: funkciók, csomagok, szolgáltatások, felhasználók, biztonság, desktop, installer, mellékletek és startup szkriptek az
osalatt. - Ellenőrzés: egy vagy több forgatókönyv beépített tesztekkel és egyéni assertion.
- Kézbesítési szándék: kért publikációs célok és opcionális kézbesítési beállítások.
{
"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"]
}Használjon snake_case-t. Az új integrációk ne küldjenek legacy alakokat, mint a baseImage, top-level features vagy startupScripts.
Három ellenőrzés, három különböző válasz
Séma validálás
A validálás erre válaszol: „A felismert adatok elfogadható alakúak?” Nem bizonyítja, hogy a csomagok léteznek vagy a viselkedés működik. Egyes ismeretlen mezőket kompatibilitás miatt figyelmen kívül hagynak, ezért a sikeres validálás is kihagyhat egy fontos kérést.
Mindig hasonlítsa össze a visszaadott normalizált receptet az eredeti chat-tel és követelményekkel. Hiányzó desktop, alkalmazás, installer, melléklet vagy teszt recepthiba, még ha a validálás valid-et ad is.
Build bizonyíték
A sikeres build erre válaszol: „A pipeline létrehozott artefaktumot?” Nem bizonyítja, hogy minden tervezett funkció bekerült az image-be. Nézze át a csomagkészletet, a forrás származását, a figyelmeztetéseket és a build fázis bizonyítékait.
Vendég ellenőrzés
A vendégtesztek szűk runtime kérdésekre válaszolnak: bootolt-e a VM, aktív-e a szolgáltatás, figyel-e a port, a fájl a várt tartalmat tartalmazza-e, elindult-e az alkalmazás. A sikeres assertion csak azt a viselkedést támasztja alá, amit ténylegesen megfigyelt.
A biztonsági beállítások szándékot fejeznek ki
Az elfogadott hardening_level értékek: minimal, standard és strict, de ezek a címkék nem hordozható compliance profilok. A célgenerátorok másképp értelmezhetik őket. Ha benchmark kell, válassza ki a pontosan alkalmazható benchmarkot, és őrizze meg az egyes kontrollok eredményeit; ne következtessen CIS megfelelőségre a strict-ből.
Hasonlóan a disk_encryption, audit_logging, SELinux, fail2ban, Secure Boot, dm-verity és installer beállítások megfelelő artefaktum- és runtime teszteket igényelnek.
Chat és recept tulajdonjog
Ha chat-ből készült receptet validál vagy szerkeszt, a meglévő beszélgetés továbbra is az authoring kontextus része. A validálásnak finomítania kell az aktuális receptet, nem pedig csendben lecserélni egy generikus alapértelmezettre. A normalizált recept ennek ellenére az utolsó ellenőrzőpont a build előtt.
Minden lényeges követelménynél:
- keresse meg a megfelelő normalizált mezőt;
- erősítse meg az értékét és a cél hatókörét;
- adjon hozzá assertion-t, ahol runtime bizonyíték lehetséges; és
- a csak deploy idején végzett munkát tartsa meg explicit figyelmeztetésként, ne úgy, mintha az image build során történt volna.
Áttekintési ellenőrzőlista
- Helyes-e a base image és az architektúra?
- Megvannak-e az összes kért desktop és alkalmazás funkció?
- Rögzítettek és licencelték-e a külső forrásokat a tervezett használatra?
- Nincsenek-e titkok a mentett recept mezőkben és szkriptekben?
- Be van-e állítva és tesztelve az installer eldobható lemezen, ha kérték?
- A forgatókönyvek a tényleges elfogadási kritériumokat tesztelik?
- Fel vannak-e tüntetve a nem támogatott vagy deployment-time követelmények?
Lásd a Recept séma mezőreferenciát és az első build build- és letöltési folyamatot.