provisioning-code/.ncl-cache/f353d6a539986973e85982a8a16606023497fa6f8f279e0b042700ce7193eeca.json

81 lines
2.9 KiB
JSON

{
"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"
}