fix: dev retry interval, simulate label idempotency, roadmap, simulate concept doc#151
Merged
Conversation
- separate dev CRD reactivation interval from prod postStartRetryInterval stays at 90s in-cluster. When running locally via ork run (utils.IsRunningInCluster() = false), use 10s instead. Selected once at startup — no configuration required. Fixes the first-run experience: if Orkestra starts before the CRD is fully registered, the next recheck happens in 10s instead of 90s. - simulate label idempotency; roadmap updates; ork simulate concept doc Simulate: - FakeKubeclient.PatchLabels checks base == desired before recording the op. Labels no longer surface in simulate output after cycle 1. Added stringMapsEqual helper. Docs: - documentation/roadmap.md: add ork lint, namespaced katalogs, declarative canary rollouts (longer horizon); clarify multi-cluster federation entry. - documentation/concepts/simulate/index.md: concept page for ork simulate — same-reconciler-no-cluster, workflow, comparison table vs ork e2e. - documentation/reference/cli/08-e2e.md: minor reference fix.
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
1. Dev/prod CRD reactivation interval
retryMissingCRDsruns on a fixed ticker to detect and activate CRDs that were missing at startup. The interval was 90s unconditionally.When a developer runs
ork runlocally — after orkestra applies the CRDs — there is a startup race where the CRD may not be fully registered yet. Previously the operator would sit in pending for up to 90s before the next check. Not a good first-run experience.Fix: select the interval once at startup using
utils.IsRunningInCluster():ork runlocally): 10s2. Simulate — label patch no longer shows after cycle 1
FakeKubeclient.PatchLabelswas recording the op on every call unconditionally. The realPatchLabelsbuilds a label diff and returns early when nothing changed. After ownership labeling was added togeneric.go,~ labels/...started appearing in simulate output on every cycle including steady state — visually noisy and misleading.Fix: check
stringMapsEqual(base, desired)before recording. Labels show only on cycle 1 (first application), then disappear.3. Roadmap
ork lint— semantic/policy gate distinct fromork validate(schema correctness)cross:over HTTP4. ork simulate concept page
New page at
documentation/concepts/simulate/index.md. The CLI reference explains how to use it; the concept page explains why it is architecturally different — sameGenericReconcilerthat runs in production, wired to an in-memory store. Covers what it catches, what it cannot catch, the write→simulate→cluster workflow, and a comparison table withork e2e.Files changed
pkg/kordinator/constants.gopostStartRetryInterval = 90s,postStartRetryIntervalDev = 10spkg/kordinator/post_start_hooks.goutils.IsRunningInCluster()pkg/kordinator/docs/04-self-healing.mdpkg/simulate/kubeclient.goPatchLabelsidempotency guard +stringMapsEqualdocumentation/roadmap.mddocumentation/concepts/simulate/index.mddocumentation/reference/cli/08-e2e.mdTest plan
make ork— clean buildork runlocally with a missing CRD — recheck fires within 10sork simulateon any example —labels/does not appear after cycle 1