v0.7.0 — Early Access
This release ships the first public early-access build of Orkestra. It focuses on the E2E framework, the typed operator toolchain, and making every example runnable end-to-end without manual pre-steps.
E2E Framework
wait:on import declarations — sleep a duration before an import starts; validated at load time, shown inork validate.spec.customOperator: true— skip the Orkestra bundle and Helm install; useork e2eas a pure test harness for any operator (cert-manager, custom controllers, etc.).- Shared Orkestra across imports — one Helm install and one uninstall per suite;
sharedOrkestraprevents namespace deletion from cascading across imports. All sync output suppressed. ork e2e ./...discovery — recursive discovery of e2e files, skips pure aggregators, supports--waitand--skip.--dry-runflag — single file callsork validate;./...lists files with count and first ten.- Helm output suppression — install/uninstall/setup output captured silently; included in error message on failure.
- Bug fixes —
isPureAggregatorinline check,WaitForResourcefor Deployments,checkAllcommand-before-resource ordering.
CLI — ork generate registry
- Registry generation fixed —
generateKatalogwas settingkat.Specbut never callingm.Enabled(), sokat.Enabled()always returned nil.generate.TypeRegistryiterated over an empty map and silently exited on every invocation — no registry file was ever written. TypeRegistryreturns(bool, error)—ensureMainGois now only written when the registry actually produced content.CustomHooksEnabledandConstructorEnabledcorrected — both methods returned== nilinstead of!= nil. Safe for declarative CRDs (all call sites are guarded byDefaultReconcile()) but would have caused panics and wrong behaviour for typed operators.- Output style —
→ generating registry for <module>,✓ pkg/typeregistry/zz_generated_typeregistry.go,○ nothing to generate— matches the rest of the CLI.
CLI — ork init --pack advanced
- Typed examples embedded —
go:embedsilently skips subdirectories containing ago.mod(nested module rule).09-hooks,10-constructor, and11-mixed-operator-patternwere missing from everyork init --pack advancedinvocation. Fixed by renaminggo.mod/go.sum→.txtat embed time. - Transparent extraction —
ork initnow restoresgo.mod.txt→go.mod,go.sum.txt→go.sum, and strips//go:build ignorefrom all extracted.gofiles. Users get a fully compilable project with no manual steps. - Makefile safety net —
make registryandmake buildin typed examples perform the same restoration for users who clone the repo directly.
CLI — path-relative resolution
crdFile,crFiles,setup.apply, and Komposerimports.filesnow resolve relative to the declaring file.ork run -f /any/path/katalog.yamlworks from any directory.- CLI-provided
-fpaths are converted to absolute on intake so downstream resolution is always anchored correctly.
Examples
examples/use-cases/full-stack-app— all six sub-katalogs switched from inlineapiTypes:tocrdFile:; manualkubectl apply -f crd.yamlpre-step eliminated from every walkthrough.03-cross-crd/crd.yamlsplit intocrd-managed-database.yaml+crd-database-backed-app.yaml.06-full-stackuses asetup:block to pull in the managed-database dependency.- Advanced typed examples —
09-hooks(typed Go hooks),10-constructor(custom reconciler), and11-mixed-operator-pattern(dynamic + hooks + constructor together) fully implemented, documented, and e2e-ready. - Typed e2e documented — READMEs for typed examples now explain
--set runtime.image.repository/--set runtime.image.tagsoork e2edeploys the user’s custom image (which contains the generated type registry) instead of the default Orkestra image.