fix(e2e): shared Orkestra, silent sync, --dry-run, positional ./...#156
Merged
Conversation
Root cause: ork generate bundle includes the orkestra-system namespace. Sub-runner teardown deleted the bundle → deleted the namespace → cascaded to the Orkestra deployment. Next import found no deployment, reinstalled. Fix: sharedOrkestra bool on Runner. When set by the coordinator, teardown skips kubectl delete on the bundle (preserves namespace + deployment) but still removes the temp file. Next sub-runner's kubectl apply updates the ConfigMap in place — the bundle is replaced, not deleted. SyncDeployment in pkg/ork/helper.go now captures output instead of piping to stdout. The sync branch in Run() is fully silent: no progress messages, no health check output. Only the coordinator's single install and uninstall are visible. A suite of N imports shows exactly one Installing line and one Uninstalling line.
--dry-run on a single file runs ork validate on it (same output as ork validate -f). --dry-run on ./... lists files that would be discovered: total count, first 10 paths, '... N more' if there are more than 10. Positional argument support: ork e2e ./... now works without -f, matching the go test ./... convention. The first positional argument overrides -f.
Existing pages rewritten to cover all new features:
01-spec.md — customOperator, full setup struct, imports with wait, --dev-server,
discovery mode, --dry-run
02-expectations.md — action commands (delete before resource check), evaluation order
03-pipeline.md — updated step list (customOperator skips, shared import behaviour)
04-cluster.md — shared Orkestra install/uninstall model for suites
New pages:
05-imports.md — suite composition, wait: field, shared Orkestra, validation
06-discovery.md — ./... mode, --wait, --skip, --dry-run, how it works
07-custom-operator.md — customOperator: true, skipped steps, use cases
README.md updated with full seven-entry navigation table.
cert-manager webhook deregistration takes a few seconds after the first example completes. The wait gives the API server time to clear the VWC before the second example installs its own cert-manager.
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.
Summary
orkestra-systemnamespace, which deleted the Orkestra deployment between imports. Fixed withsharedOrkestraon sub-runners: teardown skipskubectl deleteon the bundle (next sub-runner'skubectl applyupdates it in place).SyncDeploymentoutput suppressed. Sync branch inRun()is fully silent. A suite of N imports shows exactly one→ Installing Orkestra...and one→ Uninstalling Orkestra....--dry-run— single file: runsork validate;./...: lists files with count + first 10 +... N more../...—ork e2e ./...now works without-f, matchinggo test ./...convention.pkg/e2edocs — all four existing pages rewritten; three new pages:05-imports.md,06-discovery.md,07-custom-operator.md.Test plan
make orkcompiles cleanork e2e ./examples/beginner/... --dry-run— lists 4 files, no cluster createdork e2e -f examples/beginner/01-hello-website/e2e.yaml --dry-run— runs validate output--use-currentork e2e ./... --skip use-cases/custom-operator,externalon full examples tree