Skip to content

fix(deploy): MVP smoke-test blockers — dockerignore + OpAMP endpoint default - #270

Merged
zzylol merged 2 commits into
mainfrom
mvp-smoke-test-deployment-fixes
May 17, 2026
Merged

zzylol merged 2 commits into
mainfrom
mvp-smoke-test-deployment-fixes

Conversation

@zzylol

@zzylol zzylol commented May 17, 2026

Copy link
Copy Markdown
Contributor

Summary

Two deploy-side bugs found while bringing up the single-node MVP demo (controller → backend → gateway → 1 agent → 1 fake-exporter).

  1. .dockerignore doesn't exclude subdirectory target/ dirs. The top-level target/ rule only matches target/ at the build-context root, not data_plane/target/ or control_plane/target/ — each of those leaves ~700 MB of artefacts after any host-side cargo build. The first docker build -f ASAPCollector/deploy/docker/Dockerfile.backend hit over 7 GB of transferring backend-src: before BuildKit canceled the transfer. Adding **/target/, **/.git/, editor caches, and **/eval-results/ shrinks the context back to source-only (~150 MB).
  2. CONTROLLER_OPAMP_ENDPOINT default uses the wrong hostname. Defaults to ws://control_plane:4320/v1/opamp (the post-reorg crate name), but the canonical compose stack in ASAPCollector/deploy/mvp-singlenode/docker-compose/base.yml still names the service controller:. The endpoint string gets baked into every emitted agent yaml under extensions.opamp.server.ws.endpoint, so the broken default would tear down OpAMP the moment the controller pushes a fresh config — even if the agent had connected via the bootstrap URL. Switch the default to ws://controller:4320/v1/opamp (which matches the compose service name).

A full walkthrough of the smoke test (4 validation axes: controller→agent OpAMP, controller→backend streaming-config, end-to-end PromQL, sketch wire-format roundtrip) and the four remaining open issues live at /mydata/mvp-smoke-test/REPORT.md on the dev box.

Test plan

  • DOCKER_BUILDKIT=1 docker build -f ASAPCollector/deploy/docker/Dockerfile.backend --build-context backend-src=ASAPQuery-backend … completes without OOM / cancel
  • cargo run --bin control_plane (or via compose with CONTROLLER_OPAMP_ENDPOINT unset) emits agent configs whose extensions.opamp.server.ws.endpoint resolves under the compose stack
  • bash /mydata/mvp-smoke-test/run_smoke.sh shows the agent connected at /api/v1/agents and 2 entries at /api/v1/streaming-config

Related

Companion PR in ASAPCollector: ProjectASAP/ASAPCollector#380

🤖 Generated with Claude Code

zzylol and others added 2 commits May 16, 2026 08:23
Per-user direction: now that the asapcollector configs migrated to
canonical `w` / `d` keys (sibling PR `sync-config-canonical-w-d`),
the `row_num` / `col_num` fallback PR #268 added has no remaining
caller. Drop it.

Three sweeps:
  - `accumulator_factory::cms_params` — canonical keys only;
    `cms_params_reads_canonical_w_d_keys` test updated to drop the
    legacy half.
  - `storage_engines::sketch_db::accuracy::cms_params` — same.
  - `tests::accuracy_empirical_validation_tests` — six test fixtures
    migrated from `row_num` / `col_num` to `d` / `w` to match the
    helper's new contract.

Remaining `row_num` / `col_num` mentions in the codebase are all
internal Rust identifiers (function arguments / struct fields /
locals describing the sketch matrix dimensions) — not config-
parameter keys. Those are idiomatic and stay.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…default

Two deploy-side bugs found while bringing up the single-node MVP
demo:

1. .dockerignore: top-level `target/` rule doesn't match
   subdirectory `target/` paths, so per-crate caches under
   `data_plane/target/` and `control_plane/target/` (~700 MB after
   any host-side `cargo build`) get shipped into the BuildKit
   context. The first `docker build -f Dockerfile.backend` hit
   over 7 GB of `transferring backend-src:` before BuildKit
   canceled. Add `**/target/`, `**/.git/`, editor caches, and
   `**/eval-results/` so the context shrinks back to source-only.

2. control_plane: default `CONTROLLER_OPAMP_ENDPOINT` is
   `ws://control_plane:4320/v1/opamp` (the post-reorg crate name),
   but the canonical compose stack in
   `ASAPCollector/deploy/mvp-singlenode/docker-compose/base.yml`
   still names the service `controller`. The endpoint string gets
   baked into every emitted agent yaml under
   `extensions.opamp.server.ws.endpoint`, so the broken default
   tears down OpAMP the moment the controller pushes a fresh
   config. Switch the default to `ws://controller:4320/v1/opamp`.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@zzylol
zzylol merged commit e234b9d into main May 17, 2026
@zzylol
zzylol deleted the mvp-smoke-test-deployment-fixes branch July 17, 2026 20:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant