feat(gcp-566): version resolution controller and Cincinnati integration#58
Merged
apahim merged 8 commits intoapahim:mainfrom Apr 13, 2026
Merged
feat(gcp-566): version resolution controller and Cincinnati integration#58apahim merged 8 commits intoapahim:mainfrom
apahim merged 8 commits intoapahim:mainfrom
Conversation
5a8028f to
e1da014
Compare
…ration Implement OCP version resolution via Cincinnati update service so that clusters are created with the correct release image without hardcoding it. - Add Cincinnati client (internal/cincinnati/) to resolve versions to release image pullspecs - Add version resolution controller Helm chart with Pub/Sub, RBAC, and GCP Config Connector resources - Expose cluster status in template context (.cluster.status) so templates can read resolved images from controller status - Add GetClusterStatus to SDK to fetch individual controller statuses from GET /clusters/:id/status endpoint - Enrich cluster with controller statuses before precondition evaluation and template rendering - Support status-only controllers (zero resources) for version resolution - Add precondition on HC templating controller to wait for version resolution before creating HostedCluster - Update HostedCluster and NodePool templates to read release image from version resolution controller status instead of hardcoding Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
GCP service account IDs have a maximum length of 30 characters. "cls-version-resolution-controller" (31 chars) was exceeding this limit. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The CAPI provider GCP (CAPG) fails with v1beta2 CRDs that are not yet installed. Add a configurable annotation to pin the CAPG image to a v1beta1-compatible version until v2 CRDs are available. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Derive the full Cincinnati channel name (e.g., "candidate-4.22") from the version and channel group, store it as release_channel metadata, and set it on the HostedCluster spec.channel so the CVO can check for available updates. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…erivation ResolveVersion already derives the Cincinnati channel internally. Return it as a second value instead of re-deriving it in the controller. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The nodepool event handler fetches the parent cluster but was not calling enrichClusterWithControllerStatuses, causing templates that reference controller_statuses (e.g., release_image) to fail with "index of untyped nil". Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Console operator fails to deploy with OIDC authentication due to missing OIDC client registration. Disabling until root cause is resolved. See GCP-415. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Ingress requires LB configuration, DNS integration and network connectivity validation before enabling. See GCP-314. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
4.22.0-ec.4) to release image pullspecs via the OpenShift update servicecls-version-resolution-controllerHelm chart — a status-only controller that resolves versions and reports the result as a status condition.cluster.statusin template context so HC/NodePool templates can read the resolved imageJira
GCP-566 — CLS Controller: Version resolution controller and template updates
Part of epic GCP-562 — Adopt Cincinnati for cluster version resolution and upgrades
Dependencies
release.versionandrelease.channelGroupin cluster specTest plan
go test ./...)go build ./...)release.version, verify status condition🤖 Generated with Claude Code