Skip to content

HYPERFLEET-1052 - chore: remove deprecated Ready condition type#45

Merged
openshift-merge-bot[bot] merged 1 commit into
openshift-hyperfleet:mainfrom
tirthct:hyperfleet-1052
May 15, 2026
Merged

HYPERFLEET-1052 - chore: remove deprecated Ready condition type#45
openshift-merge-bot[bot] merged 1 commit into
openshift-hyperfleet:mainfrom
tirthct:hyperfleet-1052

Conversation

@tirthct
Copy link
Copy Markdown
Contributor

@tirthct tirthct commented May 15, 2026

Summary

  • Remove deprecated Ready condition type from ConditionType union, status model docs, and all examples
  • Delete ExampleReadyReason and ExampleReadyMessage constants
  • Update search example and postCluster doc to reference Reconciled instead of Ready

Context

This is step 3 of the phased Ready → Reconciled migration:

  1. HYPERFLEET-853: Introduce Reconciled mirroring Ready
  2. HYPERFLEET-1016 / HYPERFLEET-857: Migrate all downstream consumers
  3. This PR: Remove Ready from the spec

All consumers (Sentinel, adapters, E2E, infra) have been on Reconciled since HYPERFLEET-1016 closed. The two mandatory conditions are now Reconciled and LastKnownReconciled — @minItems(2) is
unchanged.

Test plan

  • npm run build:all — both core and GCP schemas compile successfully
  • grep -rn "Ready" --include="*.tsp" . — zero matches in source
  • grep "Ready" schemas/core/openapi.yaml schemas/gcp/openapi.yaml — zero matches in generated schemas
  • @minItems(2) unchanged in both ClusterStatus and NodePoolStatus

@openshift-ci openshift-ci Bot requested review from ma-hill and vkareh May 15, 2026 19:11
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 15, 2026

📝 Walkthrough

Walkthrough

This PR removes the deprecated Ready condition type from the HyperFleet API specification and releases version 1.0.14. The Ready union variant and its associated example constants (ExampleReadyReason, ExampleReadyMessage) are removed from the core type definitions. Documentation and examples across TypeSpec models (ClusterStatus, NodePoolStatus, and cluster creation operations) are updated to reference only the Reconciled and LastKnownReconciled mandatory conditions. All example instances in TypeSpec source files are updated by removing Ready condition entries. OpenAPI and Swagger specifications for both core and GCP variants are updated to reflect these changes in schema descriptions, operation documentation, TSL query filter examples, and response/schema payloads. Changelog is updated with the release notes and version link references.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and concisely describes the main change: removing the deprecated Ready condition type from the codebase.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description check ✅ Passed The description accurately describes the changeset: removing deprecated Ready condition type, deleting related constants, and updating documentation examples.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@CHANGELOG.md`:
- Around line 14-20: Release notes claim `Ready` condition is
deprecated/migrated to `Reconciled`, but other repos still reference `Ready` and
related constants causing drift; update linked repos or roll back the notes.
Search for and replace or reconcile usages of `Ready`, `ExampleReadyReason`, and
`ExampleReadyMessage` in dependent repos (examples, docs, tests, comments) to
use `Reconciled`/`LastKnownReconciled` and update any `ConditionType` references
and `postCluster` documentation to list only `LastKnownReconciled` and
`Reconciled`; if immediate updates across repos aren’t possible, revert the
CHANGELOG wording for 1.0.14 to avoid declaring the migration complete until all
linked repositories (e.g., hyperfleet-api and architecture docs) are
synchronized.

In `@models/common/model.tsp`:
- Line 148: The spec was changed to use status.conditions.Reconciled instead of
status.conditions.Ready, but external docs/tests still reference Ready; update
all cross-repo references and tests to match the new symbol
(status.conditions.Reconciled) to avoid contract drift: search for occurrences
of "status.conditions.Ready" and "Ready" in query examples, API docs, and test
fixtures in the linked repositories (e.g., architecture/docs and hyperfleet-api
tests), replace them with "status.conditions.Reconciled" and adjust any sample
queries (e.g., selectors like status.conditions.Reconciled='True'), then
run/adjust unit/integration tests and contract validation to ensure they conform
to the HyperFleet architecture standards.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Central YAML (base), Organization UI (inherited)

Review profile: ASSERTIVE

Plan: Enterprise

Run ID: 75d1439b-f52f-4fc7-9cc5-d92d8438b8c7

📥 Commits

Reviewing files that changed from the base of the PR and between dc7687c and d4ddc21.

📒 Files selected for processing (14)
  • CHANGELOG.md
  • main.tsp
  • models-core/cluster/example_cluster.tsp
  • models-core/nodepool/example_nodepool.tsp
  • models-gcp/cluster/example_cluster.tsp
  • models-gcp/nodepool/example_nodepool.tsp
  • models/clusters/model.tsp
  • models/common/model.tsp
  • models/nodepools/model.tsp
  • schemas/core/openapi.yaml
  • schemas/core/swagger.yaml
  • schemas/gcp/openapi.yaml
  • schemas/gcp/swagger.yaml
  • services/clusters.tsp
💤 Files with no reviewable changes (4)
  • models-gcp/cluster/example_cluster.tsp
  • models-core/cluster/example_cluster.tsp
  • models-core/nodepool/example_nodepool.tsp
  • models-gcp/nodepool/example_nodepool.tsp

Comment thread CHANGELOG.md
Comment on lines +14 to +20
- Deprecated `Ready` condition type from `ConditionType`, status model documentation, and all examples (HYPERFLEET-1052)
- `ExampleReadyReason` and `ExampleReadyMessage` constants

### Changed

- Search example updated from `status.conditions.Ready` to `status.conditions.Reconciled`
- `postCluster` documentation updated to list only `LastKnownReconciled` and `Reconciled` as mandatory conditions
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot May 15, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major | 🏗️ Heavy lift

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

# Verify remaining references in linked repos
gh search code "status.conditions.Ready repo:openshift-hyperfleet/hyperfleet-api" --limit 100
gh search code "status.conditions.Ready repo:openshift-hyperfleet/architecture" --limit 50

Repository: openshift-hyperfleet/hyperfleet-api-spec

Length of output: 2562


🏁 Script executed:

#!/bin/bash
# Inspect CHANGELOG.md lines around 14-20
head -30 CHANGELOG.md | cat -n

Repository: openshift-hyperfleet/hyperfleet-api-spec

Length of output: 1399


Coordinate linked-repo updates before publishing 1.0.14 release notes.

The release notes declare the Ready condition fully deprecated and migrated to Reconciled, but linked repos still contain active references:

  • hyperfleet-api: docs/search.md (examples), pkg/db/sql_helpers.go (comments), README.md (curl example), test files (test cases)
  • architecture: adrs/0010-jsonb-provider-agnostic-spec.md, docs/status-guide.md (documentation)

These outstanding references create documentation drift and will confuse consumers. Update or defer the 1.0.14 release notes until dependent repos are synchronized.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@CHANGELOG.md` around lines 14 - 20, Release notes claim `Ready` condition is
deprecated/migrated to `Reconciled`, but other repos still reference `Ready` and
related constants causing drift; update linked repos or roll back the notes.
Search for and replace or reconcile usages of `Ready`, `ExampleReadyReason`, and
`ExampleReadyMessage` in dependent repos (examples, docs, tests, comments) to
use `Reconciled`/`LastKnownReconciled` and update any `ConditionType` references
and `postCluster` documentation to list only `LastKnownReconciled` and
`Reconciled`; if immediate updates across repos aren’t possible, revert the
CHANGELOG wording for 1.0.14 to avoid declaring the migration complete until all
linked repositories (e.g., hyperfleet-api and architecture docs) are
synchronized.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changes to these repos would be followed up in the current ticket. API Spec works as a prerequisite for Hyperfleet API, hence making changes here first.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@tirthct, understood — the spec-first, consumers-second sequencing makes sense for this migration. Since HYPERFLEET-1052 will track the follow-up updates to hyperfleet-api and architecture, the drift is intentional and time-bounded.

For completeness, the follow-up work in those repos includes:

  • hyperfleet-api: docs/search.md, pkg/db/sql_helpers.go (comments), README.md curl example, integration test cases in test/integration/search_field_mapping_test.go
  • architecture: docs/status-guide.md, adrs/0010-jsonb-provider-agnostic-spec.md

Would you like me to open a GitHub issue to track these follow-up items, or are they already captured within the HYPERFLEET-1052 ticket?


📝 Learnings were identified and not saved (knowledge base disabled). Enable

Comment thread models/common/model.tsp
model SearchParams {
/** Filter results using TSL (Tree Search Language) query syntax.
* Examples: `status.conditions.Ready='True'`, `name in ('c1','c2')`, `labels.region='us-east'` */
* Examples: `status.conditions.Reconciled='True'`, `name in ('c1','c2')`, `labels.region='us-east'` */
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot May 15, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major | 🏗️ Heavy lift

Cross-repo contract docs/tests still reference Ready and now diverge from this spec

This change is correct for the spec, but linked findings show openshift-hyperfleet/architecture and openshift-hyperfleet/hyperfleet-api still documenting/querying status.conditions.Ready. Please land coordinated follow-up updates before release to avoid contract confusion in search/docs/tests.
As per coding guidelines, "Validate changes against HyperFleet architecture standards from the linked architecture repository."

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@models/common/model.tsp` at line 148, The spec was changed to use
status.conditions.Reconciled instead of status.conditions.Ready, but external
docs/tests still reference Ready; update all cross-repo references and tests to
match the new symbol (status.conditions.Reconciled) to avoid contract drift:
search for occurrences of "status.conditions.Ready" and "Ready" in query
examples, API docs, and test fixtures in the linked repositories (e.g.,
architecture/docs and hyperfleet-api tests), replace them with
"status.conditions.Reconciled" and adjust any sample queries (e.g., selectors
like status.conditions.Reconciled='True'), then run/adjust unit/integration
tests and contract validation to ensure they conform to the HyperFleet
architecture standards.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This will be followed up by a PR in hyperfleet-api and architecture repo

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@tirthct, understood — thanks for confirming. To make sure nothing falls through the cracks, would you like me to open tracking issues in hyperfleet-api and/or architecture repos to capture the remaining status.conditions.ReadyReconciled references that need updating? Based on the linked findings, the key areas are:

  • openshift-hyperfleet/hyperfleet-api: integration tests (test/integration/search_field_mapping_test.go), DB helper docs/tests (pkg/db/sql_helpers.go, pkg/db/sql_helpers_test.go), README.md, and docs/search.md.
  • openshift-hyperfleet/architecture: docs/status-guide.md and adrs/0010-jsonb-provider-agnostic-spec.md.

Just let me know and I'll create them.

@ma-hill
Copy link
Copy Markdown
Contributor

ma-hill commented May 15, 2026

/lgtm

@openshift-ci
Copy link
Copy Markdown

openshift-ci Bot commented May 15, 2026

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: ma-hill

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@openshift-merge-bot openshift-merge-bot Bot merged commit 2b7675f into openshift-hyperfleet:main May 15, 2026
3 checks passed
@tirthct tirthct deleted the hyperfleet-1052 branch May 15, 2026 23:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants