chore: add dev deploy apply preflight
This commit is contained in:
@@ -0,0 +1,63 @@
|
||||
# HWLAB DEV Deploy Apply
|
||||
|
||||
This document records the DEV-only apply/preflight path for
|
||||
`pikasTech/HWLAB#33`. It targets only the D601 `hwlab-dev` namespace and must
|
||||
not be used for PROD.
|
||||
|
||||
## Scope
|
||||
|
||||
- Work from latest `origin/main`.
|
||||
- Read only HWLAB repository deploy inputs: `deploy/deploy.json`,
|
||||
`deploy/artifact-catalog.dev.json`, and `deploy/k8s/dev`.
|
||||
- Validate artifact identity, image commit tags, Kubernetes workload/service
|
||||
shape, DEV health, and cloud-api DB connectivity.
|
||||
- Stop before mutation when artifact publish evidence, registry digests,
|
||||
`kubectl`, DEV health, or cloud-api DB connectivity are missing.
|
||||
|
||||
## Commands
|
||||
|
||||
Run a preflight that is expected to report blockers on the current skeleton:
|
||||
|
||||
```sh
|
||||
node --check scripts/dev-deploy-apply.mjs
|
||||
node scripts/dev-deploy-apply.mjs --dry-run --expect-blocked --write-report
|
||||
node scripts/validate-dev-gate-report.mjs
|
||||
```
|
||||
|
||||
Run the existing CLI dry-run surface:
|
||||
|
||||
```sh
|
||||
node tools/hwlab-cli/bin/hwlab-cli.mjs test e2e --env dev --mvp --dry-run
|
||||
```
|
||||
|
||||
Only after CI publish evidence and executor prerequisites exist, a real DEV
|
||||
apply requires explicit non-production confirmation:
|
||||
|
||||
```sh
|
||||
node scripts/dev-deploy-apply.mjs --apply --confirm-dev --confirmed-non-production --write-report
|
||||
```
|
||||
|
||||
The script refuses PROD flags, secret-read flags, heavyweight e2e flags, and
|
||||
force-push flags. It also refuses to apply if the DEV artifact catalog still
|
||||
contains skeleton-only unpublished images.
|
||||
|
||||
## Current Result
|
||||
|
||||
The current `origin/main` deploy contract is blocked for real DEV apply:
|
||||
|
||||
- `deploy/artifact-catalog.dev.json` says `ciPublished: false`,
|
||||
`registryVerified: false`, `publishState: skeleton-only`, and
|
||||
`digest: not_published`.
|
||||
- The deploy/catalog artifact commit is `24eb3bf`, which does not match the
|
||||
current source commit validated for this apply (`1e8d009e9531`).
|
||||
- The runner does not provide `kubectl`, so it cannot read or apply the D601
|
||||
`hwlab-dev` namespace.
|
||||
- The public DEV health probe at `http://74.48.78.17:6667/health/live` is not
|
||||
reachable from this runner.
|
||||
- `hwlab-cloud-api` has no DEV DB connection configuration and its local health
|
||||
payload reports `db.connected: false`.
|
||||
|
||||
The machine-readable result is written to
|
||||
`reports/dev-gate/dev-deploy-report.json`. No PROD resource, secret value,
|
||||
UniDesk runtime substitute, browser e2e, heavyweight e2e, or force push is part
|
||||
of this flow.
|
||||
Reference in New Issue
Block a user