Skip to content

fix: dev retry interval, simulate label idempotency, roadmap, simulate concept doc#151

Merged
iAlexeze merged 2 commits into
mainfrom
bugfix/ork-simulate-docs
May 31, 2026
Merged

fix: dev retry interval, simulate label idempotency, roadmap, simulate concept doc#151
iAlexeze merged 2 commits into
mainfrom
bugfix/ork-simulate-docs

Conversation

@iAlexeze
Copy link
Copy Markdown
Collaborator

Summary

1. Dev/prod CRD reactivation interval

retryMissingCRDs runs on a fixed ticker to detect and activate CRDs that were missing at startup. The interval was 90s unconditionally.

When a developer runs ork run locally — 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():

  • Not in a pod (ork run locally): 10s
  • Running in a pod (production): 90s

2. Simulate — label patch no longer shows after cycle 1

FakeKubeclient.PatchLabels was recording the op on every call unconditionally. The real PatchLabels builds a label diff and returns early when nothing changed. After ownership labeling was added to generic.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

  • Added ork lint — semantic/policy gate distinct from ork validate (schema correctness)
  • Added namespaced katalogs — one Orkestra instance, teams scoped by namespace, CC shows separate panels
  • Added declarative canary rollouts to longer horizon
  • Clarified multi-cluster federation entry: cross-cluster composition works today via cross: over HTTP

4. 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 — same GenericReconciler that 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 with ork e2e.


Files changed

File Change
pkg/kordinator/constants.go postStartRetryInterval = 90s, postStartRetryIntervalDev = 10s
pkg/kordinator/post_start_hooks.go Interval selected via utils.IsRunningInCluster()
pkg/kordinator/docs/04-self-healing.md Documents dual interval
pkg/simulate/kubeclient.go PatchLabels idempotency guard + stringMapsEqual
documentation/roadmap.md Roadmap additions and corrections
documentation/concepts/simulate/index.md New concept page
documentation/reference/cli/08-e2e.md Minor reference fix

Test plan

  • make ork — clean build
  • ork run locally with a missing CRD — recheck fires within 10s
  • In-cluster deployment — behavior unchanged (90s interval)
  • ork simulate on any example — labels/ does not appear after cycle 1
  • Roadmap renders correctly in docs site

iAlexeze added 2 commits May 31, 2026 21:49
- 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.
@iAlexeze iAlexeze merged commit c2c0df4 into main May 31, 2026
4 checks passed
@iAlexeze iAlexeze deleted the bugfix/ork-simulate-docs branch May 31, 2026 23:06
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