Files
pikasTech-HWLAB/reports/dev-gate/dev-deploy-report.json
T
2026-05-21 16:43:33 +00:00

316 lines
10 KiB
JSON

{
"$schema": "https://hwlab.pikastech.local/schemas/dev-gate-report.schema.json",
"$id": "https://hwlab.pikastech.local/reports/dev-gate/dev-deploy-report.json",
"reportVersion": "v1",
"issue": "pikasTech/HWLAB#33",
"taskId": "dev-deploy-apply",
"commitId": "d312cd0f3f2e",
"acceptanceLevel": "dev_deploy_apply",
"devOnly": true,
"prodDisabled": true,
"status": "blocked",
"generatedAt": "2026-05-21T16:43:19.846Z",
"namespace": "hwlab-dev",
"endpoint": "http://74.48.78.17:6667",
"sourceContract": {
"status": "pass",
"documents": [
"docs/dev-acceptance-matrix.md",
"docs/m0-contract-audit.md",
"docs/dev-deploy-apply.md",
"docs/artifact-catalog.md",
"deploy/README.md"
],
"summary": "DEV deploy apply is pinned to hwlab-dev and the frozen HWLAB service IDs"
},
"validationCommands": [
"node --check scripts/validate-dev-gate-report.mjs",
"node scripts/validate-dev-gate-report.mjs",
"node --check scripts/dev-deploy-apply.mjs",
"node scripts/dev-deploy-apply.mjs --dry-run --expect-blocked"
],
"localSmoke": {
"status": "not_run",
"commands": [
"node scripts/m1-contract-smoke.mjs"
],
"evidence": [
"This deploy apply task did not run local smoke because artifact/executor blockers stop promotion first."
],
"summary": "Local smoke remains available but is not a substitute for DEV artifact publish evidence."
},
"dryRun": {
"status": "blocked",
"commands": [
"node tools/hwlab-cli/bin/hwlab-cli.mjs test e2e --env dev --mvp --dry-run",
"node scripts/dev-deploy-apply.mjs --dry-run --expect-blocked"
],
"evidence": [
"artifact services checked: 13",
"kubectl executor: missing",
"live health: blocked"
],
"summary": "DEV apply is blocked before mutation."
},
"devPreconditions": {
"status": "blocked",
"requirements": [
"DEV artifact catalog must contain CI publish evidence and registry digests",
"kubectl must be available for D601 hwlab-dev and must not target PROD",
"hwlab-cloud-api /health/live must report serviceId, dev environment, and DB connectivity",
"pods, services, configmaps, and image commit tags must be observable in hwlab-dev"
],
"summary": "One or more required DEV deploy preconditions are blocked."
},
"devDeployApply": {
"mode": "dry-run",
"mutationAttempted": false,
"applyStep": {
"status": "not_run",
"summary": "Skipped because preflight blockers are open"
},
"artifactEvidence": [
{
"serviceId": "hwlab-cloud-api",
"deployCommitId": "24eb3bf",
"catalogCommitId": "24eb3bf",
"image": "ghcr.io/pikastech/hwlab-cloud-api:24eb3bf",
"digest": "not_published",
"publishState": "skeleton-only"
},
{
"serviceId": "hwlab-cloud-web",
"deployCommitId": "24eb3bf",
"catalogCommitId": "24eb3bf",
"image": "ghcr.io/pikastech/hwlab-cloud-web:24eb3bf",
"digest": "not_published",
"publishState": "skeleton-only"
},
{
"serviceId": "hwlab-agent-mgr",
"deployCommitId": "24eb3bf",
"catalogCommitId": "24eb3bf",
"image": "ghcr.io/pikastech/hwlab-agent-mgr:24eb3bf",
"digest": "not_published",
"publishState": "skeleton-only"
},
{
"serviceId": "hwlab-agent-worker",
"deployCommitId": "24eb3bf",
"catalogCommitId": "24eb3bf",
"image": "ghcr.io/pikastech/hwlab-agent-worker:24eb3bf",
"digest": "not_published",
"publishState": "skeleton-only"
},
{
"serviceId": "hwlab-gateway",
"deployCommitId": "24eb3bf",
"catalogCommitId": "24eb3bf",
"image": "ghcr.io/pikastech/hwlab-gateway:24eb3bf",
"digest": "not_published",
"publishState": "skeleton-only"
},
{
"serviceId": "hwlab-gateway-simu",
"deployCommitId": "24eb3bf",
"catalogCommitId": "24eb3bf",
"image": "ghcr.io/pikastech/hwlab-gateway-simu:24eb3bf",
"digest": "not_published",
"publishState": "skeleton-only"
},
{
"serviceId": "hwlab-box-simu",
"deployCommitId": "24eb3bf",
"catalogCommitId": "24eb3bf",
"image": "ghcr.io/pikastech/hwlab-box-simu:24eb3bf",
"digest": "not_published",
"publishState": "skeleton-only"
},
{
"serviceId": "hwlab-patch-panel",
"deployCommitId": "24eb3bf",
"catalogCommitId": "24eb3bf",
"image": "ghcr.io/pikastech/hwlab-patch-panel:24eb3bf",
"digest": "not_published",
"publishState": "skeleton-only"
},
{
"serviceId": "hwlab-router",
"deployCommitId": "24eb3bf",
"catalogCommitId": "24eb3bf",
"image": "ghcr.io/pikastech/hwlab-router:24eb3bf",
"digest": "not_published",
"publishState": "skeleton-only"
},
{
"serviceId": "hwlab-tunnel-client",
"deployCommitId": "24eb3bf",
"catalogCommitId": "24eb3bf",
"image": "ghcr.io/pikastech/hwlab-tunnel-client:24eb3bf",
"digest": "not_published",
"publishState": "skeleton-only"
},
{
"serviceId": "hwlab-edge-proxy",
"deployCommitId": "24eb3bf",
"catalogCommitId": "24eb3bf",
"image": "ghcr.io/pikastech/hwlab-edge-proxy:24eb3bf",
"digest": "not_published",
"publishState": "skeleton-only"
},
{
"serviceId": "hwlab-cli",
"deployCommitId": "24eb3bf",
"catalogCommitId": "24eb3bf",
"image": "ghcr.io/pikastech/hwlab-cli:24eb3bf",
"digest": "not_published",
"publishState": "skeleton-only"
},
{
"serviceId": "hwlab-agent-skills",
"deployCommitId": "24eb3bf",
"catalogCommitId": "24eb3bf",
"image": "ghcr.io/pikastech/hwlab-agent-skills:24eb3bf",
"digest": "not_published",
"publishState": "skeleton-only"
}
],
"k8sManifest": {
"resourceCounts": {
"workloads": 13,
"services": 12,
"configMaps": 1
},
"images": [
{
"serviceId": "hwlab-cloud-api",
"image": "ghcr.io/pikastech/hwlab-cloud-api:24eb3bf",
"kind": "Deployment",
"name": "hwlab-cloud-api"
},
{
"serviceId": "hwlab-cloud-web",
"image": "ghcr.io/pikastech/hwlab-cloud-web:24eb3bf",
"kind": "Deployment",
"name": "hwlab-cloud-web"
},
{
"serviceId": "hwlab-agent-mgr",
"image": "ghcr.io/pikastech/hwlab-agent-mgr:24eb3bf",
"kind": "Deployment",
"name": "hwlab-agent-mgr"
},
{
"serviceId": "hwlab-agent-worker",
"image": "ghcr.io/pikastech/hwlab-agent-worker:24eb3bf",
"kind": "Job",
"name": "hwlab-agent-worker-template"
},
{
"serviceId": "hwlab-gateway",
"image": "ghcr.io/pikastech/hwlab-gateway:24eb3bf",
"kind": "Deployment",
"name": "hwlab-gateway"
},
{
"serviceId": "hwlab-gateway-simu",
"image": "ghcr.io/pikastech/hwlab-gateway-simu:24eb3bf",
"kind": "Deployment",
"name": "hwlab-gateway-simu"
},
{
"serviceId": "hwlab-box-simu",
"image": "ghcr.io/pikastech/hwlab-box-simu:24eb3bf",
"kind": "Deployment",
"name": "hwlab-box-simu"
},
{
"serviceId": "hwlab-patch-panel",
"image": "ghcr.io/pikastech/hwlab-patch-panel:24eb3bf",
"kind": "Deployment",
"name": "hwlab-patch-panel"
},
{
"serviceId": "hwlab-router",
"image": "ghcr.io/pikastech/hwlab-router:24eb3bf",
"kind": "Deployment",
"name": "hwlab-router"
},
{
"serviceId": "hwlab-tunnel-client",
"image": "ghcr.io/pikastech/hwlab-tunnel-client:24eb3bf",
"kind": "Deployment",
"name": "hwlab-tunnel-client"
},
{
"serviceId": "hwlab-edge-proxy",
"image": "ghcr.io/pikastech/hwlab-edge-proxy:24eb3bf",
"kind": "Deployment",
"name": "hwlab-edge-proxy"
},
{
"serviceId": "hwlab-cli",
"image": "ghcr.io/pikastech/hwlab-cli:24eb3bf",
"kind": "Job",
"name": "hwlab-cli-template"
},
{
"serviceId": "hwlab-agent-skills",
"image": "ghcr.io/pikastech/hwlab-agent-skills:24eb3bf",
"kind": "Deployment",
"name": "hwlab-agent-skills"
}
]
},
"clusterObservation": {
"status": "blocked",
"executor": "missing",
"resources": []
},
"liveProbe": {
"status": "blocked",
"url": "http://74.48.78.17:6667/health/live",
"error": "connect ECONNREFUSED 74.48.78.17:6667"
}
},
"blockers": [
{
"type": "observability_blocker",
"scope": "artifact-source-commit",
"status": "open",
"summary": "deploy/catalog artifact commit 24eb3bf/24eb3bf does not match source d312cd0f3f2e"
},
{
"type": "observability_blocker",
"scope": "artifact-publish",
"status": "open",
"summary": "DEV artifact catalog has no CI publish, registry verification, or registry digests"
},
{
"type": "runtime_blocker",
"scope": "cloud-api-db-config",
"status": "open",
"summary": "cloud-api has no DEV DB connection env configured"
},
{
"type": "runtime_blocker",
"scope": "cloud-api-db",
"status": "open",
"summary": "cloud-api health reports DB not connected in this artifact"
},
{
"type": "environment_blocker",
"scope": "kubectl",
"status": "open",
"summary": "kubectl is not installed in the runner"
},
{
"type": "network_blocker",
"scope": "dev-health",
"status": "open",
"summary": "Cannot reach http://74.48.78.17:6667/health/live: connect ECONNREFUSED 74.48.78.17:6667"
}
],
"notes": "DEV-only result. No PROD resources, secret values, force push, heavy e2e, browser e2e, or UniDesk runtime substitute were used."
}