test(bdd): prepare named Helmfile environments - #1101
Conversation
Replace repeated environment fixture copy and YAML update pairs with a table-driven step that derives and snapshots known Helmfile destinations without hiding test inputs. Closes #1080 Signed-off-by: Stephanie Baum <sbaum@nvidia.com>
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Enterprise Run ID: 📒 Files selected for processing (17)
Included review availability: Your plan provides up to 12 included reviews per hour; 11 remain after this review. 📝 WalkthroughWalkthroughThe BDD DSL adds a step to prepare named Helmfile environments from fixtures. It validates paths and names, interpolates fixture data, applies YAML updates, records destinations for restoration, and replaces repeated setup sequences across feature files. ChangesHelmfile environment preparation
Estimated code review effort: 3 (Moderate) | ~20 minutes Merge Risk: ⚪ Minimal · up to The change centralizes Helmfile test-environment preparation while preserving explicit scenario overrides and rejecting unsafe destinations; no actionable merge-blocking risk remains after normal checks. Suggested reviewers: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
TL;DR
Add a table-driven BDD step for preparing named Helmfile environments, then use it to replace 25 repeated fixture-copy and YAML-update pairs across 12 feature files. The feature files remain explicit about the stack, environment, fixture, profiles, image sources, and all YAML overrides.
Additional Details
self-managed,observability, andnvcf-compute-planestacks.For the Reviewer
The main abstraction boundary is in
tests/bdd/dsl/helmfile_environment.goandtests/bdd/steps/file_steps.go. It hides destination construction and file mechanics, while the Gherkin retains every operator choice.For QA
Static validation passed:
go test ./dsl ./stepsgo test -short ./...golangci-lint run --config .golangci.yml ./...with isolated caches: 0 issuesDestructive local feature validation passed from fresh k3d topologies:
TestObservabilityDisabled: 1 scenario, 11 stepsTestSingleClusterUp: 3 scenarios, 42 stepsTestSingleClusterUpOneClick: 1 scenario, 13 stepsTestSingleClusterHelmfile: 6 scenarios, 62 stepsTestObservabilityControl: 1 scenario, 14 stepsTestObservabilityAll: 1 scenario, 29 stepsTestSingleClusterHelmfileUpstreamImages: 1 scenario, 29 stepsTestMultiClusterUp: 4 scenarios, 51 stepsTestObservabilityCompute: 1 scenario, 37 stepsTestMultiClusterHelmfile: 4 scenarios, 60 steps, excluding only@nvct-task-apiThe excluded NVCT scenario reproduced the existing #1098 blocker: SIS accepted and published the task, but the installed stack delivered
RequestICMSInstancesand NVCA repeatedly created 0 task instances. The remaining multi-cluster feature passed after that tag was excluded locally. The temporary exclusion was reverted before commit.An initial batched
TestObservabilityAllrun retained monitoring releases from the preceding profile and observed revision 2 instead of 1. Its cleantopology-singlererun passed.The two EKS-only features passed wiring validation under the short suite. Live EKS execution was skipped because no local EKS target exists; #1087 tracks that coverage.
Local k3d clusters and the temporary registry credential were removed after testing. No additional local QA is needed.
Issues
Closes #1080
Relates to #858
Checklist
Summary by CodeRabbit
New Features
Tests