Skip to content

docs(reconciler): during Create the Ready condition is the runtime's - #102

Merged
braghettos merged 1 commit into
mainfrom
docs/ready-during-create
Nov 14, 2026
Merged

braghettos merged 1 commit into
mainfrom
docs/ready-during-create

Conversation

@braghettos

Copy link
Copy Markdown
Collaborator

Docs only: states a contract the code already had and nothing said.

  • On every create outcome, success or failure, the runtime writes Ready=False with reason Creating, and conditions are replaced by type. A Ready reason a provider sets in Create is overwritten and nothing reports it.
  • A provider's own reason goes in the error Create returns (it becomes the message of Synced=False/ReconcileError) or in a condition of a type of its own.
  • Create must not persist the object's status itself: the value reaches the API server and is replaced within the same reconcile, so a watcher can see it flap.

Found by aruba-provider-kog on rest-dynamic-controller 0.64.0, whose no-create kinds set Ready=False/NoCreateVerbDeclared and read Creating once settled. The user chose to keep the behaviour and document it.

🤖 Generated with Claude Code

https://claude.ai/code/session_01NSM9VYtekkTV1h9dK4WxM4

The runtime writes Ready=False/Creating on every create outcome, and
conditions are replaced by type, so a Ready reason a provider sets in
Create never survives, and nothing reports it. The user decided on
2026-11-13 to keep that and document it: a provider's own reason goes
in the returned error or in a condition type of its own, and Create
must not persist status itself.

Reported by aruba-provider-kog from rest-dynamic-controller 0.64.0's
no-create kinds.

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NSM9VYtekkTV1h9dK4WxM4
@braghettos
braghettos merged commit d290004 into main Nov 14, 2026
14 checks passed
@braghettos
braghettos deleted the docs/ready-during-create branch November 14, 2026 07:19
braghettos added a commit that referenced this pull request Nov 14, 2026
…'s (#103)

#102 cited a measurement on a kind with no create verb as the example.
That kind is served by rest-dynamic-controller, which is built on
unstructured-runtime, not on this library (its go.mod at 0.64.0), so
the measurement says nothing about this reconciler. The contract itself
is read from this library's source and stands; the example is removed,
and the status-write flap is marked as reasoned, not measured.

Corrected by aruba-provider-kog and oasgen-provider.


Claude-Session: https://claude.ai/code/session_01NSM9VYtekkTV1h9dK4WxM4

Co-authored-by: Claude Fable 5.2 <noreply@anthropic.com>
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