Skip to content

test(bdd): cover live observability profiles on local k3d #522

Description

@sbaum1994

Why

Observability configuration now uses one explicit profile: disabled, control, compute, or all. The existing stack-level render tests validate profile resolution, but we need expensive local-k3d BDD coverage that proves each profile installs and behaves correctly in its target topology.

Scope

Add one live BDD feature file per observability profile under tests/bdd/features/. Each feature must use the strict BDD DSL, retain the required conflicting-topology precheck in its Background, and run against a fresh compatible topology selected with BDD_CLEANUP_MODE unless a render only test. Do not add profile-specific step handlers.

observability-disabled.feature PR1

  • Use the single-cluster ncp-local topology.
  • Template the control plane and compute plane with observability.profile: disabled.
  • Assert that no shared observability releases, collector, monitors, or function-autoscaler release is rendered.

observability-control.feature PR2

  • Use the single-cluster ncp-local topology.
  • Install with observability.profile: control.
  • Assert that the shared observability releases are ready: Prometheus Operator CRDs, OpenTelemetry Operator, VictoriaMetrics, one collector/Target Allocator, and default monitors.
  • Assert control-plane monitor resources are present and compute monitor resources are absent by default.

Out of scope (Future)

  • Assert exactly one function-autoscaler release is ready and uses the resolved metrics backend contract.
  • Prove the local metrics path with a lightweight end-to-end signal or an equivalent observable collector-to-VictoriaMetrics assertion.

observability-compute.feature

  • Use the multi-cluster topology: ncp-local-cp plus ncp-local-compute-1.
  • Install the control-plane prerequisites, then install the compute plane with observability.profile: compute on the compute cluster.
  • Assert the shared observability releases and compute monitor resources are ready in the compute cluster.
  • Assert NVCA, DCGM, and worker monitor coverage.
  • Assert the NVCA configuration enables its self-managed collector and the BYOObservability feature gate.
  • Assert no function-autoscaler release is installed for this profile.

observability-all.feature

  • Use the single-cluster ncp-local topology.
  • Install the complete stack with observability.profile: all.
  • Assert the shared observability infrastructure is installed once, not once per plane.
  • Assert both control-plane and compute monitor families are present.
  • Assert NVCA self-managed collector and BYOObservability are enabled.

Out of scope (Future)

  • Assert exactly one ready function-autoscaler release and a working local metrics path.

Test wiring and safety

  • Add matching fake-runner wiring coverage in tests/bdd/godog_test.go.
  • Run cd tests/bdd && go test -short ./... and tests/bdd/scripts/lint.sh.

Acceptance criteria

  • Each of the four profile files is a separately runnable BDD scenario.
  • Single-cluster scenarios precheck that ncp-local-cp is absent; the multi-cluster scenario prechecks that ncp-local is absent.
  • Every profile validates its profile-specific installed and absent resources, rather than only Helmfile command success with exception of render only test (PR1)
  • All four feature files preserve the CLI-versus-Helmfile path boundary and do not introduce a profile dependency into Helmfile-path features.

References

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions