Repository navigation
Conversation
Signed-off-by: Rick Rackow <[email protected]>
Pin the CAPSTK v1beta2 infrastructure API and generate its installation CRDs. Include gated STACKIT schemas, deepcopy and apply clients while preserving OpenStack and GCP feature-gate isolation. Signed-off-by: Rick Rackow <[email protected]>
Create and destroy STACKIT clusters using existing infrastructure and a credential Secret reference. Validate explicit RHCOS images and worker settings, and install the provider CRDs with only their supported CAPI contract. Signed-off-by: Rick Rackow <[email protected]>
Deploy isolated CAPSTK controllers against existing project networks and reconcile stable machine templates behind the STACKITPlatform feature gate. Retain referenced bootstrap Secrets and credentials through cleanup, watch credential rotation, and refresh credentials during deletion recovery. Configure the hosted cluster as an External cloud platform. Signed-off-by: Rick Rackow <[email protected]>
Run the STACKIT cloud controller beside the hosted control plane with explicit images, dedicated guest RBAC, rotated credentials and hardened pods. Configure external cloud integration and leave registry storage user managed. Cover deployment rendering, guest permissions and platform behavior. Signed-off-by: Rick Rackow <[email protected]>
Exercise gated API defaults, validation and feature-gate isolation through local envtest. Add the STACKIT current-release lifecycle adapter for future live validation with explicit infrastructure, credentials and image inputs. Signed-off-by: Rick Rackow <[email protected]>
Document gated installation, explicit provider and RHCOS images, worker configuration, user-managed storage and cleanup recovery. Describe local validation boundaries and the live lifecycle checks required for promotion. Signed-off-by: Rick Rackow <[email protected]>
The core reconciliation chain creates an HCP even when credential sync fails. Require cleanup credentials only for a remaining CAPI Cluster or an initialized HCP, so clusters that never provisioned can still be deleted. Cover both legacy and v1beta2 control-plane initialization fields. Signed-off-by: Rick Rackow <[email protected]>
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.
What this PR does / why we need it:
Add gated STACKIT worker support to HyperShift using Cluster API Provider STACKIT (CAPSTK). HostedClusters reference an existing project, region, network and credential Secret; NodePools create STACKIT machine templates with an explicit RHCOS image. A separate Machine API provider is not needed.
The change includes namespace-scoped provider deployment, credential rotation and cleanup retention, bootstrap Secret retention, a hosted STACKIT cloud controller with a dedicated guest identity, External infrastructure configuration, cluster/node-pool CLI commands, admission tests and a future lifecycle smoke-test adapter.
STACKITPlatformis disabled by default and available withTechPreviewNoUpgrade. Existing platforms retain their serialized configuration and machine-template hashes.Which issue(s) this PR fixes:
No Jira issue. This personal-fork draft is for manual review before approaching upstream maintainers.
Special notes for your reviewer:
9d68b5c14d980dfd83bb573f1adb679f1de040bd; controller images must contain the companion changes.Local validation (Go 1.26.3 for final HyperShift build/lint and final reruns; earlier focused race tests also used the installed Go 1.27.0; no cloud tests):
go test -p 2 -o /dev/null -c ./...) using disk-backedGOTMPDIR.-race; its scoped lint also passed. Final full installer, CRD-asset and API serialization package race tests passed with a 30-minute timeout. The operator binary was rebuilt after the last fix.The full
make pre-commitgate is not recorded as passing: its all-test linking stage exhausted the 16 GiB/tmpfilesystem (the complete compilation retry passed with disk-backed temporary storage), and the earliermake updateattempt exposed API-module/vendor drift afterworkspace-sync. Generation was completed separately while retaining baseline dependency versions. A complete upstream CI run remains required before promotion.Checklist: