-
Notifications
You must be signed in to change notification settings - Fork 98
⚠ Split Helm chart into operator and providers charts #832
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
✅ Deploy Preview for kubernetes-sigs-cluster-api-operator ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: The full list of commands accepted by this bot can be found here.
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
2ee1de5
to
51174e4
Compare
996a078
to
097ce06
Compare
1dbedc6
to
5725787
Compare
e4c4127
to
ea36d6e
Compare
Hi @dtzar and @furkatgofurov7, When you have a moment, could you please review ? This update splits the chart into operator and provider components, ensuring the operator’s webhook is fully ready before provider CRs are applied. As a result, the Also, since this PR would result in a breaking change, I think it would be best to either create a new helm chart and gradually migrate to it, or continue to use both. I would appreciate your feedback on this as well. Thank you for your time and feedback. Best regards, |
ea36d6e
to
cb5a66d
Compare
Separate cluster-api-operator into two charts to fix webhook timing issues: - cluster-api-operator: operator deployment only - cluster-api-operator-providers: provider Custom Resources This ensures webhook readiness before applying provider CRs, preventing "no endpoints available" errors during installation. Breaking: Requires two-step installation: ```sh helm install capi-operator capi-operator/cluster-api-operator \ --create-namespace -n capi-operator-system --wait helm install capi-providers capi-operator/cluster-api-operator-providers \ -n capi-operator-system --set infrastructure.docker.enabled=true ``` Signed-off-by: kahirokunn <[email protected]>
Signed-off-by: kahirokunn <[email protected]>
Update hack/chart-update/main.go to process both cluster-api-operator and cluster-api-operator-providers charts when updating index.yaml. This ensures all charts are properly registered in the helm repository index during the release process. Signed-off-by: kahirokunn <[email protected]>
Add a new GitHub Actions workflow for smoke testing. Signed-off-by: kahirokunn <[email protected]>
cb5a66d
to
206056c
Compare
Providers can now define their own configSecret: core: cluster-api: configSecret: name: core-secret namespace: capi-system If not specified, providers will use the global configSecret. Signed-off-by: kahirokunn <[email protected]>
@kahirokunn: The following tests failed, say
Full PR test history. Your PR dashboard. Please help us cut down on flakes by linking to an open issue when you hit one in your PR. Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here. |
Fixes: #534
What type of PR is this?
/kind bug
What this PR does / why we need it:
This PR fixes the flaky Helm installation issue where provider Custom Resources fail to install due to webhook validation errors. The root cause is that provider CRs are being applied at the same time as the operator deployment, before the webhook service is ready.
Problem:
When installing the cluster-api-operator Helm chart, users frequently encounter errors like:
Solution:
Split the Helm chart into two separate charts:
cluster-api-operator
- Contains only the operator deployment and its resourcescluster-api-operator-providers
- Contains all provider Custom ResourcesThis ensures the operator is fully running before any provider CRs are applied.
Which issue(s) this PR fixes:
Fixes #[issue-number]
Special notes for your reviewer:
The installation process now requires two steps:
Release note:
Release Strategy and Migration Plan
To minimize the impact on existing users, we propose a phased rollout approach:
Phase 1: Introduce the new chart (Current PR)
cluster-api-operator-providers
chartcluster-api-operator
chart unchanged for backward compatibilityPhase 2: Migration period (Future release)
Phase 3: Breaking change implementation (Future major release)
cluster-api-operator
chartThis strategy allows users to migrate at their own pace while ensuring the webhook validation issue is resolved for new installations immediately.