Skip to content

Conversation

@aman4433
Copy link
Contributor

What this PR does / why we need it: Upstream Cluster API (CAPI) has permanently enabled the ClusterResourceSet feature and removed the associated feature gate in PR kubernetes-sigs/cluster-api#12950.

This PR cleans up our repository to align with this upstream change by removing "dead code" references:

  • scripts/ci-e2e.sh: Removed the unused export EXP_CLUSTER_RESOURCE_SET=true.
  • docs/book/src/developer/tilt.md: Removed instructions to set the feature gate in Tilt.
  • templates/README.md & creating-a-cluster.md: Removed notes instructing users to manually enable this feature.

Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged):
Fixes #

Special notes for your reviewer: I performed an impact analysis to ensure no breaking changes were introduced:

  • Go Code: Verified that we do not import the removed feature.ClusterResourceSet constant.
    grep -r "feature.ClusterResourceSet" . returned 0 results.
  • Manifests: Verified that we are not passing the deprecated --feature-gates=ClusterResourceSet=true flag to the manager binary.
    grep -r "feature-gates" . confirmed the flag is not currently in use.

/area provider/ibmcloud

  1. Please confirm that if this PR changes any image versions, then that's the sole change this PR makes.

Release note:

Removed deprecated EXP_CLUSTER_RESOURCE_SET feature gate references from documentation and CI scripts.

@k8s-ci-robot k8s-ci-robot added the area/provider/ibmcloud Issues or PRs related to ibmcloud provider label Nov 24, 2025
@k8s-ci-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: aman4433
Once this PR has been reviewed and has the lgtm label, please assign prajyot-parab for approval. For more information see the Code Review Process.

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 /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@k8s-ci-robot k8s-ci-robot added cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. size/S Denotes a PR that changes 10-29 lines, ignoring generated files. labels Nov 24, 2025
@netlify
Copy link

netlify bot commented Nov 24, 2025

Deploy Preview for kubernetes-sigs-cluster-api-ibmcloud ready!

Name Link
🔨 Latest commit f0cf39f
🔍 Latest deploy log https://app.netlify.com/projects/kubernetes-sigs-cluster-api-ibmcloud/deploys/6924ab18d324580008ece04f
😎 Deploy Preview https://deploy-preview-2544.cluster-api-ibmcloud.sigs.k8s.io
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

# Set common variables
export DOCKER_BUILDKIT=1
export PROVIDER_ID_FORMAT=v2
export EXP_CLUSTER_RESOURCE_SET=true
Copy link
Contributor

Choose a reason for hiding this comment

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

@aman4433, it would be good to test a cluster creation with this change to be sure it works fine without any issues for the infra providers.

@Prajyot-Parab Prajyot-Parab added this to the Next milestone Dec 9, 2025
@aman4433
Copy link
Contributor Author

aman4433 commented Dec 9, 2025

I have tested my pr locally

Steps taken:

  1. Created a local Kind management cluster.
  2. Initialized it with the changes from this branch (clusterctl init).
  3. Manually generated a workload cluster manifest using clusterctl generate ... --from ./templates/cluster-template.yaml without exporting the EXP_CLUSTER_RESOURCE_SET variable.

Result:
The ClusterResourceSet was successfully created, confirming that the feature gate is no longer required for generating these resources.

amanshrivastava@Amans-MacBook-Pro cluster-api-provider-ibmcloud % clusterctl generate cluster ${IBMVPC_NAME} \
  --kubernetes-version v1.33.0 \
  --target-namespace default \
  --control-plane-machine-count=1 \
  --worker-machine-count=1 \
  --from ./templates/cluster-template.yaml \
  | kubectl apply -f -
cluster.cluster.x-k8s.io/test-vpc-crs-removal created
ibmvpccluster.infrastructure.cluster.x-k8s.io/test-vpc-crs-removal created
kubeadmcontrolplane.controlplane.cluster.x-k8s.io/test-vpc-crs-removal-control-plane created
ibmvpcmachinetemplate.infrastructure.cluster.x-k8s.io/test-vpc-crs-removal-control-plane created
machinedeployment.cluster.x-k8s.io/test-vpc-crs-removal-md-0 created
ibmvpcmachinetemplate.infrastructure.cluster.x-k8s.io/test-vpc-crs-removal-md-0 created
kubeadmconfigtemplate.bootstrap.cluster.x-k8s.io/test-vpc-crs-removal-md-0 created
clusterresourceset.addons.cluster.x-k8s.io/crs-cloud-conf created
configmap/ibm-cfg created
secret/ibm-credential created
configmap/cloud-controller-manager-addon created
amanshrivastava@Amans-MacBook-Pro cluster-api-provider-ibmcloud % kubectl get clusterresourceset
NAME             APPLIED   AGE
crs-cloud-conf   True      11m
amanshrivastava@Amans-MacBook-Pro cluster-api-provider-ibmcloud % kubectl get machines
NAME                                       CLUSTER                NODE NAME                                  READY   AVAILABLE   UP-TO-DATE   PHASE     AGE     VERSION
test-vpc-crs-removal-control-plane-mzpg7   test-vpc-crs-removal   test-vpc-crs-removal-control-plane-mzpg7   False   False       True         Running   5m53s   v1.33.0
test-vpc-crs-removal-md-0-hgc8l-9lrdw      test-vpc-crs-removal   test-vpc-crs-removal-md-0-hgc8l-9lrdw      False   False       True         Running   5m46s   v1.33.0
amanshrivastava@Amans-MacBook-Pro cluster-api-provider-ibmcloud % kubectl get cluster
NAME                   CLUSTERCLASS   AVAILABLE   CP DESIRED   CP AVAILABLE   CP UP-TO-DATE   W DESIRED   W AVAILABLE   W UP-TO-DATE   PHASE         AGE   VERSION
test-vpc-crs-removal                  False       1            0              1               1           0             1              Provisioned   10m   

@aman4433
Copy link
Contributor Author

aman4433 commented Dec 9, 2025

/test pull-cluster-api-provider-ibmcloud-verify

@Karthik-K-N
Copy link
Contributor

Can you explain this step, How did you do or what command did you use?

Initialized it with the changes from this branch (clusterctl init).

@aman4433
Copy link
Contributor Author

aman4433 commented Dec 9, 2025

Can you explain this step, How did you do or what command did you use?

Initialized it with the changes from this branch (clusterctl init).

Since this PR only removes the deprecated flag from documentation and CI scripts (and does not modify the Go code or manager binary), I did not build a custom image.

I used clusterctl init --infrastructure ibmcloud to initialize the standard provider. The verification focus was to ensure that omitting the EXP_CLUSTER_RESOURCE_SET=true variable (which this PR removes from ci-e2e.sh) does not break cluster creation.

I confirmed that even without exporting this flag locally, the ClusterResourceSet was successfully created and applied, validating that the explicit enablement is no longer required.

@Karthik-K-N
Copy link
Contributor

Got your point, But did you check with earlier CAPIBM/CAPI release version where when you try to create without exporting the variable , will it fail

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/provider/ibmcloud Issues or PRs related to ibmcloud provider cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. size/S Denotes a PR that changes 10-29 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants