feat(core): seed the netprobe native add-on package (#3425) #3502

Merged
mfreeman451 merged 1 commit from feat/netprobe-addon-package-seeder into staging 2026-06-01 16:38:36 +00:00
Owner

What

migrate-netprobe-to-native-addon §3.1 — adds ServiceRadar.Plugins.NetprobeAddonPackageSeeder, mirroring the Bumblebee seeder Agent B landed in #3493, so netprobe becomes a selectable/targetable AddonPackage in Edge Ops once its signed artifacts are published.

  • DelayedSeeder that creates + approves the netprobe AddonPackage: delivery: :pushed_artifact, supervision: :systemd_service, capability host-network-visibility, os_capabilities CAP_NET_RAW/CAP_BPF/CAP_PERFMON, run_as: serviceradar, config schema from addons/netprobe/config.schema.json.
  • Registered in coordinator_children alongside the Bumblebee seeder.
  • Intentionally a no-op until :netprobe_native_addon_package is configured with real mirrored+signed per-arch artifacts (same guard as Bumblebee — never approve placeholder object keys the agent can't verify/fetch).
  • Test (netprobe_addon_package_seeder_test.exs): seed → approved package with the netprobe attrs → assignment compiles via AgentConfigGenerator into a systemd-service pushed-artifact addon (also covers §4.2); no-op without artifacts.

Why partial

This is the control-plane code for §3.1. The package only materializes once the publish lane runs (Linux CI → OCI), the artifact is mirrored, and :netprobe_native_addon_package is wired with the resulting refs on the target instance — the remaining (ops) part of §3.1, and the prerequisite for the §4.3 e2e.

Validation

  • mix compile — clean (no warnings on the seeder/registration).
  • mix credo on the seeder — no issues.
  • Seeder test is integration-gated (CNPG scratch DB).

🤖 Generated with Claude Code

## What `migrate-netprobe-to-native-addon` **§3.1** — adds `ServiceRadar.Plugins.NetprobeAddonPackageSeeder`, mirroring the Bumblebee seeder Agent B landed in #3493, so netprobe becomes a selectable/targetable `AddonPackage` in Edge Ops once its signed artifacts are published. - **DelayedSeeder** that creates + approves the netprobe `AddonPackage`: `delivery: :pushed_artifact`, `supervision: :systemd_service`, capability `host-network-visibility`, `os_capabilities` `CAP_NET_RAW/CAP_BPF/CAP_PERFMON`, `run_as: serviceradar`, config schema from `addons/netprobe/config.schema.json`. - Registered in `coordinator_children` alongside the Bumblebee seeder. - **Intentionally a no-op** until `:netprobe_native_addon_package` is configured with real mirrored+signed per-arch artifacts (same guard as Bumblebee — never approve placeholder object keys the agent can't verify/fetch). - **Test** (`netprobe_addon_package_seeder_test.exs`): seed → approved package with the netprobe attrs → assignment compiles via `AgentConfigGenerator` into a systemd-service pushed-artifact addon (also covers §4.2); no-op without artifacts. ## Why partial This is the *control-plane code* for §3.1. The package only materializes once the **publish lane runs** (Linux CI → OCI), the artifact is **mirrored**, and `:netprobe_native_addon_package` is **wired** with the resulting refs on the target instance — the remaining (ops) part of §3.1, and the prerequisite for the §4.3 e2e. ## Validation - `mix compile` — clean (no warnings on the seeder/registration). - `mix credo` on the seeder — no issues. - Seeder test is integration-gated (CNPG scratch DB). 🤖 Generated with [Claude Code](https://claude.com/claude-code)
feat(core): seed the netprobe native add-on package (#3425)
Some checks failed
Secret Scan / gitleaks (pull_request) Successful in 22s
lint / lint (pull_request) Successful in 57s
lint / lint (push) Successful in 1m23s
Golang Tests / test-go (push) Successful in 1m57s
CI / build (pull_request) Failing after 9m31s
Elixir Quality / Elixir Quality (pull_request) Failing after 27m0s
0f9e962587
migrate-netprobe §3.1. Adds ServiceRadar.Plugins.NetprobeAddonPackageSeeder,
mirroring the Bumblebee seeder Agent B landed in #3493, so netprobe becomes a
selectable/targetable AddonPackage in Edge Ops once its signed artifacts are
published.

- DelayedSeeder that creates + approves the netprobe AddonPackage:
  delivery=:pushed_artifact, supervision=:systemd_service, capability
  host-network-visibility, os_capabilities CAP_NET_RAW/CAP_BPF/CAP_PERFMON,
  run_as=serviceradar, config schema from addons/netprobe/config.schema.json.
- Registered in coordinator_children alongside the Bumblebee seeder.
- Intentionally a NO-OP until :netprobe_native_addon_package is configured with
  real mirrored+signed per-arch artifacts (same guard as Bumblebee — never approve
  placeholder object keys the agent can't verify/fetch). The remaining §3.1 step is
  the publish-lane run + mirror + ref wiring on the target instance.
- DB-backed test (netprobe_addon_package_seeder_test.exs): seed -> approved package
  with the netprobe attrs -> assignment compiles via AgentConfigGenerator into a
  systemd-service pushed-artifact addon (also covers §4.2); no-op without artifacts.

Validated: mix compile (clean) + mix credo (no issues); the seeder test is
integration-gated (CNPG scratch DB).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
mfreeman451 left a comment

lgtm

lgtm
mfreeman451 deleted branch feat/netprobe-addon-package-seeder 2026-06-01 16:38:37 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
carverauto/serviceradar!3502
No description provided.