Skip to content

fix: align CAPI readiness and convergence retry contracts - #16

Draft
reoring wants to merge 2 commits into
mainfrom
work/20260803/capi-v1beta2-readiness
Draft

fix: align CAPI readiness and convergence retry contracts#16
reoring wants to merge 2 commits into
mainfrom
work/20260803/capi-v1beta2-readiness

Conversation

@reoring

@reoring reoring commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

Summary

  • read CAPI v1beta2 readiness conditions from canonical status.conditions
  • make identical-error stall detection opt-in so ordinary Kubernetes eventual convergence runs to the action timeout
  • retain explicit stallTimeout support for callers with a safe progress invariant

Root cause

Kest 0.18.0 had two runtime contract mismatches:

  1. useCluster expected status.v1beta2.conditions, but a served cluster.x-k8s.io/v1beta2 Cluster exposes metav1 conditions at status.conditions.
  2. The new global 30-second identical-error stall default treated a stable observation as proof of no progress. GatewayFleet legitimately kept RemoteConnectionProbe and rollout conditions unchanged for more than 30 seconds while external controllers converged, so both useCluster and ordinary 300-second assertions failed early.

Stall detection cannot infer external-system progress from an unchanged error string. It is now explicit opt-in.

Verification

  • focused CAPI suite: 10 pass
  • focused Biome check: 5 files
  • tsc --noEmit
  • full bun test ts/: 251 pass

All verification ran on monstera through the serialized test runner.

@reoring reoring changed the title fix: read CAPI v1beta2 conditions from status fix: align CAPI readiness and convergence retry contracts Aug 3, 2026
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