test: enable ATS gotest chart tests and fill the e2e basic suite - #954
Draft
QuentinBisson wants to merge 4 commits into
Draft
test: enable ATS gotest chart tests and fill the e2e basic suite#954QuentinBisson wants to merge 4 commits into
QuentinBisson wants to merge 4 commits into
Conversation
Add a framework-agnostic tests/assertions Go module (cluster reachability, deployment readiness over controller-runtime client). Replace the pytest ATS tests with the ATS gotest contract reading the ATS_* env vars, switch .ats/main.yaml to the gotest executor, and enable the smoke scenario that had been skipped since the CI bootstrap. Fill the empty e2e basic suite with the same assertions via the apptest-framework state.
The cluster-reachability check now also runs in the upgrade scenario; it was smoke-only as a leftover from the pytest markers.
The module, replace directives, and adapter helpers shared ~12 lines of predicate logic. Each harness now carries its own idiom: tests/ats is a single self-contained file on plain client-go, the e2e suite uses Gomega Eventually with the clustertest client.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
tests/atsswitches from pytest (Pipfile-era, and effectively dead: all ATS scenarios were skipped in.ats/main.yamlsince the CI bootstrap in fix(ci): add Helm chart publishing to OCI registry #154) to app-test-suite's gotest contract: a single self-contained test file (//go:build smoke || upgrade) on plain client-go, readingKUBECONFIG/ATS_*env vars. It checks API reachability and muster deployment readiness..ats/main.yamlsetstest-executor: gotestand re-enables the smoke scenario. functional/upgrade stay skipped: functional has no tests, upgrade needs a validated stable-version path first.tests/e2e/suites/basicfills the empty scaffold: the suite asserts WC connectivity and muster deployment readiness via GomegaEventuallyover the clustertest client.Why
Both harnesses need "does the deployed muster actually work" checks. An earlier iteration shared them through a
tests/assertionsmodule consumed by both sides; that turned out to be plumbing (extra module, replace directives, adapter helpers) protecting ~12 lines of predicate logic, so each harness now carries the checks in its own idiom. A shared package becomes worth it once muster grows real behavioral e2e checks (e.g. MCP protocol probes against the deployed aggregator).Verification
Ran the full ATS smoke scenario locally (
ats -c muster-0.3.12.tgzwith image tag 0.22.10): kind cluster up, CRDs applied, chart deployed,go test -tags=smokepassed both tests against the live deployment, clean teardown. The e2e path compiles and vets; it needs an ephemeral MC, so exercise it with/run app-test-suiteson this PR.