From 5a278c36f9a68ce2cbd920a49f61acf94c05b867 Mon Sep 17 00:00:00 2001 From: Cristiano Veiga Date: Fri, 15 May 2026 17:21:53 -0400 Subject: [PATCH 1/3] feat(api): add channelGroup to ReleaseSpec in GCP cluster model The version-resolution-adapter (GCP-677) reads spec.release.channelGroup to determine which Cincinnati channel to use when resolving a version to a release image (e.g. candidate-4.22, stable-4.22, fast-4.22). Without this field in the API spec, clients had no documentation or validation, and the field was not formally part of the contract. Bumps version to 1.0.14 and regenerates all four schema artifacts. Closes GCP-696 Co-Authored-By: Claude Sonnet 4.6 --- CHANGELOG.md | 9 ++++++++- aliases.tsp | 2 +- main.tsp | 2 +- models-gcp/cluster/model.tsp | 1 + schemas/gcp/openapi.yaml | 2 ++ schemas/gcp/swagger.yaml | 2 ++ 6 files changed, 15 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d3d205e..0c5ab4d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [1.0.16] - 2026-05-20 + +### Added + +- `channelGroup` optional field to `ReleaseSpec` in GCP cluster model (GCP-696) + ## [1.0.15] - 2026-05-18 ### Added @@ -146,7 +152,8 @@ First official stable release of the HyperFleet API specification. - Interactive API documentation -[Unreleased]: https://github.com/openshift-hyperfleet/hyperfleet-api-spec/compare/v1.0.15...HEAD +[Unreleased]: https://github.com/openshift-hyperfleet/hyperfleet-api-spec/compare/v1.0.16...HEAD +[1.0.16]: https://github.com/openshift-hyperfleet/hyperfleet-api-spec/compare/v1.0.15...v1.0.16 [1.0.15]: https://github.com/openshift-hyperfleet/hyperfleet-api-spec/compare/v1.0.14...v1.0.15 [1.0.14]: https://github.com/openshift-hyperfleet/hyperfleet-api-spec/compare/v1.0.13...v1.0.14 [1.0.13]: https://github.com/openshift-hyperfleet/hyperfleet-api-spec/compare/v1.0.12...v1.0.13 diff --git a/aliases.tsp b/aliases.tsp index efa1472..d42dbb3 120000 --- a/aliases.tsp +++ b/aliases.tsp @@ -1 +1 @@ -aliases-gcp.tsp \ No newline at end of file +aliases-core.tsp \ No newline at end of file diff --git a/main.tsp b/main.tsp index a0f0913..4124471 100644 --- a/main.tsp +++ b/main.tsp @@ -21,7 +21,7 @@ using OpenAPI; */ @service(#{ title: "HyperFleet API" }) @info(#{ - version: "1.0.15", + version: "1.0.16", contact: #{ name: "HyperFleet Team", url: "https://github.com/openshift-hyperfleet", diff --git a/models-gcp/cluster/model.tsp b/models-gcp/cluster/model.tsp index ca7dd7c..a98abb9 100644 --- a/models-gcp/cluster/model.tsp +++ b/models-gcp/cluster/model.tsp @@ -22,6 +22,7 @@ model ClusterPlatform { model ReleaseSpec { image?: string; version?: string; + channelGroup?: string; } model NetworkingSpec { diff --git a/schemas/gcp/openapi.yaml b/schemas/gcp/openapi.yaml index beb77b7..d9920a1 100644 --- a/schemas/gcp/openapi.yaml +++ b/schemas/gcp/openapi.yaml @@ -1753,6 +1753,8 @@ components: type: string version: type: string + channelGroup: + type: string ResourceCondition: type: object required: diff --git a/schemas/gcp/swagger.yaml b/schemas/gcp/swagger.yaml index 2de8b5b..a9f794e 100644 --- a/schemas/gcp/swagger.yaml +++ b/schemas/gcp/swagger.yaml @@ -1917,6 +1917,8 @@ definitions: type: string ReleaseSpec: properties: + channelGroup: + type: string image: type: string version: From 28ffcd78b3960fd82717ce1a39ba6c5433967300 Mon Sep 17 00:00:00 2001 From: Cristiano Veiga Date: Fri, 15 May 2026 17:32:50 -0400 Subject: [PATCH 2/3] docs(examples): add channelGroup to GCP cluster examples Show channelGroup usage in create, patch, and GET response examples so clients can discover the new field from the API documentation. Co-Authored-By: Claude Sonnet 4.6 --- models-gcp/cluster/example_cluster.tsp | 10 ++++++---- models-gcp/cluster/example_patch.tsp | 5 +++-- models-gcp/cluster/example_post.tsp | 5 +++-- schemas/gcp/openapi.yaml | 20 ++++++++++++-------- schemas/gcp/swagger.yaml | 23 +++++++++++++++-------- 5 files changed, 39 insertions(+), 24 deletions(-) diff --git a/models-gcp/cluster/example_cluster.tsp b/models-gcp/cluster/example_cluster.tsp index 603f58f..9c8cdff 100644 --- a/models-gcp/cluster/example_cluster.tsp +++ b/models-gcp/cluster/example_cluster.tsp @@ -20,8 +20,9 @@ const exampleCluster: Cluster = #{ }, }, release: #{ - image: "registry.redhat.io/openshift4/ose-cluster-version-operator:v4.14.0", - version: "4.14.0", + image: "registry.redhat.io/openshift4/ose-cluster-version-operator:v4.22.0-ec.4", + version: "4.22.0-ec.4", + channelGroup: "candidate", }, networking: #{ clusterNetwork: #[ #{ cidr: "10.10.0.0/16", hostPrefix: 24 } ], @@ -100,8 +101,9 @@ const exampleDeletedCluster: Cluster = #{ }, }, release: #{ - image: "registry.redhat.io/openshift4/ose-cluster-version-operator:v4.14.0", - version: "4.14.0", + image: "registry.redhat.io/openshift4/ose-cluster-version-operator:v4.22.0-ec.4", + version: "4.22.0-ec.4", + channelGroup: "candidate", }, networking: #{ clusterNetwork: #[ #{ cidr: "10.10.0.0/16", hostPrefix: 24 } ], diff --git a/models-gcp/cluster/example_patch.tsp b/models-gcp/cluster/example_patch.tsp index ff7a0e7..4f4be3f 100644 --- a/models-gcp/cluster/example_patch.tsp +++ b/models-gcp/cluster/example_patch.tsp @@ -14,8 +14,9 @@ const exampleClusterPatchRequest: ClusterPatchRequest = #{ }, }, release: #{ - image: "registry.redhat.io/openshift4/ose-cluster-version-operator:v4.14.0", - version: "4.14.0", + image: "registry.redhat.io/openshift4/ose-cluster-version-operator:v4.22.0-ec.4", + version: "4.22.0-ec.4", + channelGroup: "candidate", }, networking: #{ clusterNetwork: #[#{ cidr: "10.10.0.0/16", hostPrefix: 24 }], diff --git a/models-gcp/cluster/example_post.tsp b/models-gcp/cluster/example_post.tsp index b685235..79f5d6b 100644 --- a/models-gcp/cluster/example_post.tsp +++ b/models-gcp/cluster/example_post.tsp @@ -17,8 +17,9 @@ const exampleClusterCreateRequest: ClusterCreateRequest = #{ }, }, release: #{ - image: "registry.redhat.io/openshift4/ose-cluster-version-operator:v4.14.0", - version: "4.14.0", + image: "registry.redhat.io/openshift4/ose-cluster-version-operator:v4.22.0-ec.4", + version: "4.22.0-ec.4", + channelGroup: "candidate", }, networking: #{ clusterNetwork: #[#{ cidr: "10.10.0.0/16", hostPrefix: 24 }], diff --git a/schemas/gcp/openapi.yaml b/schemas/gcp/openapi.yaml index d9920a1..460246d 100644 --- a/schemas/gcp/openapi.yaml +++ b/schemas/gcp/openapi.yaml @@ -194,8 +194,9 @@ paths: network: network-123 subnet: subnet-123 release: - image: registry.redhat.io/openshift4/ose-cluster-version-operator:v4.14.0 - version: 4.14.0 + image: registry.redhat.io/openshift4/ose-cluster-version-operator:v4.22.0-ec.4 + version: 4.22.0-ec.4 + channelGroup: candidate networking: clusterNetwork: - cidr: 10.10.0.0/16 @@ -995,8 +996,9 @@ components: network: network-123 subnet: subnet-123 release: - image: registry.redhat.io/openshift4/ose-cluster-version-operator:v4.14.0 - version: 4.14.0 + image: registry.redhat.io/openshift4/ose-cluster-version-operator:v4.22.0-ec.4 + version: 4.22.0-ec.4 + channelGroup: candidate networking: clusterNetwork: - cidr: 10.10.0.0/16 @@ -1088,8 +1090,9 @@ components: network: network-123 subnet: subnet-123 release: - image: registry.redhat.io/openshift4/ose-cluster-version-operator:v4.14.0 - version: 4.14.0 + image: registry.redhat.io/openshift4/ose-cluster-version-operator:v4.22.0-ec.4 + version: 4.22.0-ec.4 + channelGroup: candidate networking: clusterNetwork: - cidr: 10.10.0.0/16 @@ -1149,8 +1152,9 @@ components: network: network-123 subnet: subnet-123 release: - image: registry.redhat.io/openshift4/ose-cluster-version-operator:v4.14.0 - version: 4.14.0 + image: registry.redhat.io/openshift4/ose-cluster-version-operator:v4.22.0-ec.4 + version: 4.22.0-ec.4 + channelGroup: candidate networking: clusterNetwork: - cidr: 10.10.0.0/16 diff --git a/schemas/gcp/swagger.yaml b/schemas/gcp/swagger.yaml index a9f794e..d5942a6 100644 --- a/schemas/gcp/swagger.yaml +++ b/schemas/gcp/swagger.yaml @@ -170,9 +170,10 @@ paths: zone: us-central1-a type: gcp release: + channelGroup: candidate image: >- - registry.redhat.io/openshift4/ose-cluster-version-operator:v4.14.0 - version: 4.14.0 + registry.redhat.io/openshift4/ose-cluster-version-operator:v4.22.0-ec.4 + version: 4.22.0-ec.4 status: conditions: - created_time: '2021-01-01T10:00:00Z' @@ -1069,8 +1070,10 @@ definitions: zone: us-central1-a type: gcp release: - image: 'registry.redhat.io/openshift4/ose-cluster-version-operator:v4.14.0' - version: 4.14.0 + channelGroup: candidate + image: >- + registry.redhat.io/openshift4/ose-cluster-version-operator:v4.22.0-ec.4 + version: 4.22.0-ec.4 status: conditions: - created_time: '2021-01-01T10:00:00Z' @@ -1204,8 +1207,10 @@ definitions: zone: us-central1-a type: gcp release: - image: 'registry.redhat.io/openshift4/ose-cluster-version-operator:v4.14.0' - version: 4.14.0 + channelGroup: candidate + image: >- + registry.redhat.io/openshift4/ose-cluster-version-operator:v4.22.0-ec.4 + version: 4.22.0-ec.4 properties: href: description: Resource URI @@ -1287,8 +1292,10 @@ definitions: zone: us-central1-a type: gcp release: - image: 'registry.redhat.io/openshift4/ose-cluster-version-operator:v4.14.0' - version: 4.14.0 + channelGroup: candidate + image: >- + registry.redhat.io/openshift4/ose-cluster-version-operator:v4.22.0-ec.4 + version: 4.22.0-ec.4 minProperties: 1 properties: labels: From aabfdd6cf9c83924fa15639253372b3fe3dcfd73 Mon Sep 17 00:00:00 2001 From: Cristiano Veiga Date: Wed, 20 May 2026 21:43:36 -0400 Subject: [PATCH 3/3] chore(schemas): bump generated schema version to 1.0.16 Co-Authored-By: Claude Sonnet 4.6 --- schemas/core/openapi.yaml | 2 +- schemas/core/swagger.yaml | 2 +- schemas/gcp/openapi.yaml | 2 +- schemas/gcp/swagger.yaml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/schemas/core/openapi.yaml b/schemas/core/openapi.yaml index 8f7dba8..b2f415d 100644 --- a/schemas/core/openapi.yaml +++ b/schemas/core/openapi.yaml @@ -1,7 +1,7 @@ openapi: 3.0.0 info: title: HyperFleet API - version: 1.0.15 + version: 1.0.16 contact: name: HyperFleet Team url: https://github.com/openshift-hyperfleet diff --git a/schemas/core/swagger.yaml b/schemas/core/swagger.yaml index a8fa335..7f9af8c 100644 --- a/schemas/core/swagger.yaml +++ b/schemas/core/swagger.yaml @@ -17,7 +17,7 @@ info: name: Apache 2.0 url: 'https://www.apache.org/licenses/LICENSE-2.0' title: HyperFleet API - version: 1.0.15 + version: 1.0.16 host: hyperfleet.redhat.com basePath: / schemes: diff --git a/schemas/gcp/openapi.yaml b/schemas/gcp/openapi.yaml index 460246d..0f1fde3 100644 --- a/schemas/gcp/openapi.yaml +++ b/schemas/gcp/openapi.yaml @@ -1,7 +1,7 @@ openapi: 3.0.0 info: title: HyperFleet API - version: 1.0.15 + version: 1.0.16 contact: name: HyperFleet Team url: https://github.com/openshift-hyperfleet diff --git a/schemas/gcp/swagger.yaml b/schemas/gcp/swagger.yaml index d5942a6..d9bb222 100644 --- a/schemas/gcp/swagger.yaml +++ b/schemas/gcp/swagger.yaml @@ -17,7 +17,7 @@ info: name: Apache 2.0 url: 'https://www.apache.org/licenses/LICENSE-2.0' title: HyperFleet API - version: 1.0.15 + version: 1.0.16 host: hyperfleet.redhat.com basePath: / schemes: