Skip to content

fix(e2e): shared Orkestra, silent sync, --dry-run, positional ./...#156

Merged
iAlexeze merged 5 commits into
mainfrom
cleanups/pre-v1-early-access
Jun 2, 2026
Merged

fix(e2e): shared Orkestra, silent sync, --dry-run, positional ./...#156
iAlexeze merged 5 commits into
mainfrom
cleanups/pre-v1-early-access

Conversation

@iAlexeze
Copy link
Copy Markdown
Collaborator

@iAlexeze iAlexeze commented Jun 2, 2026

Summary

  • One install, one uninstall per suite — root cause was bundle deletion cascading to orkestra-system namespace, which deleted the Orkestra deployment between imports. Fixed with sharedOrkestra on sub-runners: teardown skips kubectl delete on the bundle (next sub-runner's kubectl apply updates it in place). SyncDeployment output suppressed. Sync branch in Run() is fully silent. A suite of N imports shows exactly one → Installing Orkestra... and one → Uninstalling Orkestra....
  • --dry-run — single file: runs ork validate; ./...: lists files with count + first 10 + ... N more.
  • Positional ./...ork e2e ./... now works without -f, matching go test ./... convention.
  • pkg/e2e docs — all four existing pages rewritten; three new pages: 05-imports.md, 06-discovery.md, 07-custom-operator.md.

Test plan

  • make ork compiles clean
  • ork e2e ./examples/beginner/... --dry-run — lists 4 files, no cluster created
  • ork e2e -f examples/beginner/01-hello-website/e2e.yaml --dry-run — runs validate output
  • Suite run shows single install + single uninstall (no sync messages)
  • Full beginner suite 4/4 with --use-current
  • ork e2e ./... --skip use-cases/custom-operator,external on full examples tree

iAlexeze added 5 commits June 2, 2026 00:15
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.
@iAlexeze iAlexeze merged commit 64571a9 into main Jun 2, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant