{ "description": "Verify ephemeral BuildKit runner golden image is fresh, zot registry is reachable with S3 backend, and buildkit_runner extension component is registered (ADR-039).", "id": "validate-build-infrastructure", "params": { "extensions_root": "{provisioning_root}/catalog/components", "golden_image_max_age_days": 14, "orchestrator_url": "http://127.0.0.1:9011", "zot_url": "http://zot.wuji.local:5000" }, "steps": [ { "actor": "Agent", "cmd": "nickel typecheck {extensions_root}/buildkit_runner/metadata.ncl", "depends_on": [], "id": "check_buildkit_runner_registered", "name": "buildkit_runner extension component metadata.ncl exists and is valid", "on_error": "abort" }, { "actor": "Agent", "cmd": "curl -sf {zot_url}/v2/ | jq -e '.errors | not'", "depends_on": [], "id": "check_zot_reachable", "name": "Zot OCI registry is reachable", "on_error": "abort" }, { "actor": "Agent", "cmd": "curl -sf {zot_url}/v2/_catalog | jq 'has(\"repositories\")'", "depends_on": [ "check_zot_reachable" ], "id": "check_zot_s3_backend", "name": "Zot is configured with S3 storage backend (not local filesystem)", "on_error": "warn" }, { "actor": "Agent", "cmd": "curl -sf {orchestrator_url}/api/v1/vm-pool/images | jq -e '.[] | select(.name | startswith(\"buildkit-runner\")) | .id'", "depends_on": [], "id": "check_golden_image_exists", "name": "BuildKit runner golden image exists in orchestrator VM pool", "on_error": "abort" }, { "actor": "Agent", "cmd": "curl -sf {orchestrator_url}/api/v1/vm-pool/images | jq -e '.[] | select(.name | startswith(\"buildkit-runner\")) | (.built_at | fromdateiso8601) > (now - {golden_image_max_age_days} * 86400)'", "depends_on": [ "check_golden_image_exists" ], "id": "check_golden_image_freshness", "name": "Golden image was built within the last {golden_image_max_age_days} days", "on_error": "warn" }, { "actor": "Agent", "cmd": "curl -sf {orchestrator_url}/api/v1/vm-pool/probe-sccache | jq -e '.reachable == true'", "depends_on": [ "check_golden_image_exists" ], "id": "check_sccache_reachable", "name": "sccache S3 bucket endpoint is reachable from orchestrator network", "on_error": "warn" }, { "actor": "Agent", "cmd": "echo 'build-infrastructure validated: golden image fresh, zot reachable, sccache probe done'", "depends_on": [ "check_golden_image_freshness", "check_zot_s3_backend", "check_sccache_reachable", "check_buildkit_runner_registered" ], "id": "summary_report", "name": "Emit build-infrastructure validation summary", "on_error": "warn" } ], "strategy": "Override", "version": "1.0" }