v0.7.1 — Simulate + E2E fixes
ork simulate
e2e.yamlinput —ork simulate -f e2e.yamlreadsspec.katalogandspec.cr; skipscustomOperator: true; expands aggregator imports recursively../...discovery — discovers all*e2e.yamlfiles, prints per-file results and aggregate summary; exit code 1 on cycle errors;--skippatterns follow the same convention asork e2e ./... --skip.--skip-external— stubsexternal:HTTP calls with empty 200 responses. Default: calls hit the real network.--debug-ops— prints every recorded op with cycle number (diagnostic).- GVK-aware CR matching — multi-document CR files (separated by
---) supported; each CRD matched to the CR whosekindmatchesapiTypes.kind; CRDs with no matching CR skipped with a note. cross:observation — when sibling CRDs’ CRs are present in the CR file, they are seeded into per-CRD fake informers and wired askatalogRegistry;cross.*fields populate correctly.- Hook wiring —
HookRegistry[gvk]looked up at runtime; custom binary runs real hooks against the fake cluster. - Constructor wiring —
ReconcilerRegistry[gvk]looked up; constructor called withfakeKube,informer, andevent.Discard(). - Typed indexer — typed CRDs have their CR converted via JSON round-trip to the registered Go type before being seeded; fixes constructor type-assertions and hook
BindToObjectHookspanics. event.Discard()— constructors receive a silent no-op recorder;noop.goremoved;Recorderinterface moved toevent.go.- Motif path fix —
isFileMotif()implemented; motif import file paths absolutized relative to the katalog dir (same fix ascrdFile).
E2E
crdFilepath in bundle —CRDFileis now cleared from everyCRDEntryafterpopulateAPITypesFromCRDFileruns;apiTypesare fully populated before the field is erased. Prevents the runtime pod from trying to read a local filesystem path that does not exist inside the container.10-motif-compositione2e —crd-worker.yamladded tosetup.apply; both CRDs are installed before the CR is applied.
Internals
- Logger default level —
pkg/loggersetsInfoLevelin its owninit(); typeregistry debug logs no longer appear before CLI flag parsing. NewReconcilerFunc— changed from*event.Eventtoevent.Recorderinterface; registry template closure updated tokubeclient.KubeClient+event.Recorder.