From 0267234e59d1616c4110d2548af34c93858cb4ec Mon Sep 17 00:00:00 2001 From: Mohamed Chiheb Ben Jemaa Date: Fri, 1 Nov 2024 16:14:51 +0100 Subject: [PATCH 1/3] initial changes: promote CRS to GA --- .../bases/addons.cluster.x-k8s.io_clusterresourcesets.yaml | 6 ++++-- docs/book/src/SUMMARY.md | 2 +- .../{experimental-features => }/cluster-resource-set.md | 5 +++-- .../tasks/experimental-features/experimental-features.md | 3 +-- exp/addons/api/v1beta1/clusterresourceset_types.go | 4 +++- feature/feature.go | 3 ++- 6 files changed, 14 insertions(+), 9 deletions(-) rename docs/book/src/tasks/{experimental-features => }/cluster-resource-set.md (87%) diff --git a/config/crd/bases/addons.cluster.x-k8s.io_clusterresourcesets.yaml b/config/crd/bases/addons.cluster.x-k8s.io_clusterresourcesets.yaml index 8d8ac27c60ea..59d1a613cccd 100644 --- a/config/crd/bases/addons.cluster.x-k8s.io_clusterresourcesets.yaml +++ b/config/crd/bases/addons.cluster.x-k8s.io_clusterresourcesets.yaml @@ -366,8 +366,10 @@ spec: name: v1beta1 schema: openAPIV3Schema: - description: ClusterResourceSet is the Schema for the clusterresourcesets - API. + description: |- + ClusterResourceSet is the Schema for the clusterresourcesets API + it provides a basic solution for installing & managing resources + while for advanced use cases an addon provider must be used. properties: apiVersion: description: |- diff --git a/docs/book/src/SUMMARY.md b/docs/book/src/SUMMARY.md index 8bf8fa477298..e3a79a953063 100644 --- a/docs/book/src/SUMMARY.md +++ b/docs/book/src/SUMMARY.md @@ -31,7 +31,6 @@ - [Experimental Features](./tasks/experimental-features/experimental-features.md) - [MachinePools](./tasks/experimental-features/machine-pools.md) - [MachineSetPreflightChecks](./tasks/experimental-features/machineset-preflight-checks.md) - - [ClusterResourceSet](./tasks/experimental-features/cluster-resource-set.md) - [ClusterClass](./tasks/experimental-features/cluster-class/index.md) - [Writing a ClusterClass](./tasks/experimental-features/cluster-class/write-clusterclass.md) - [Changing a ClusterClass](./tasks/experimental-features/cluster-class/change-clusterclass.md) @@ -45,6 +44,7 @@ - [Running multiple providers](./tasks/multiple-providers.md) - [Verification of Container Images](./tasks/verify-container-images.md) - [Diagnostics](./tasks/diagnostics.md) + - [ClusterResourceSet](./tasks/cluster-resource-set.md) - [Security Guidelines](./security/index.md) - [Pod Security Standards](./security/pod-security-standards.md) - [clusterctl CLI](./clusterctl/overview.md) diff --git a/docs/book/src/tasks/experimental-features/cluster-resource-set.md b/docs/book/src/tasks/cluster-resource-set.md similarity index 87% rename from docs/book/src/tasks/experimental-features/cluster-resource-set.md rename to docs/book/src/tasks/cluster-resource-set.md index 8a666e73fd6f..6a6144c8ea85 100644 --- a/docs/book/src/tasks/experimental-features/cluster-resource-set.md +++ b/docs/book/src/tasks/cluster-resource-set.md @@ -1,12 +1,13 @@ -# Experimental Feature: ClusterResourceSet (beta) +# ClusterResourceSet (GA) The `ClusterResourceSet` feature is introduced to provide a way to automatically apply a set of resources (such as CNI/CSI) defined by users to matching newly-created/existing clusters. +`ClusterResourceSet` provides a basic solution for installing & managing resources, while for advanced use cases an addon provider must be used. **Feature gate name**: `ClusterResourceSet` **Variable name to enable/disable the feature gate**: `EXP_CLUSTER_RESOURCE_SET` -The `ClusterResourceSet` feature is enabled by default, but can be disabled by setting the `EXP_CLUSTER_RESOURCE_SET` environment variable to `false`. +The `ClusterResourceSet` feature is now GA and is enabled by default, but can be disabled by setting the `EXP_CLUSTER_RESOURCE_SET` environment variable to `false`. More details on `ClusterResourceSet` can be found at: [ClusterResourceSet CAEP](https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/proposals/20200220-cluster-resource-set.md) diff --git a/docs/book/src/tasks/experimental-features/experimental-features.md b/docs/book/src/tasks/experimental-features/experimental-features.md index 4fbd42d6cfed..4583d848023d 100644 --- a/docs/book/src/tasks/experimental-features/experimental-features.md +++ b/docs/book/src/tasks/experimental-features/experimental-features.md @@ -92,7 +92,7 @@ Following controller manager deployments have to be edited in order to enable/di * [CAPD](https://cluster-api.sigs.k8s.io/reference/glossary.html?highlight=Providers#capd). Other [Infrastructure Providers](https://cluster-api.sigs.k8s.io/reference/glossary.html?highlight=Providers#infrastructure-provider) might also require this. Please consult the docs of the concrete [Infrastructure Provider](https://cluster-api.sigs.k8s.io/reference/providers#infrastructure) regarding this. -* [ClusterResourceSet](./cluster-resource-set.md): + * [CAPI](https://cluster-api.sigs.k8s.io/reference/glossary.html?highlight=Gloss#capi). * [ClusterClass](./cluster-class/index.md): * [CAPI](https://cluster-api.sigs.k8s.io/reference/glossary.html?highlight=Gloss#capi). @@ -109,7 +109,6 @@ Following controller manager deployments have to be edited in order to enable/di ## Active Experimental Features * [MachinePools](./machine-pools.md) -* [ClusterResourceSet](./cluster-resource-set.md) * [ClusterClass](./cluster-class/index.md) * [Ignition Bootstrap configuration](./ignition.md) * [Runtime SDK](runtime-sdk/index.md) diff --git a/exp/addons/api/v1beta1/clusterresourceset_types.go b/exp/addons/api/v1beta1/clusterresourceset_types.go index 780bd28c5627..0050f003a26e 100644 --- a/exp/addons/api/v1beta1/clusterresourceset_types.go +++ b/exp/addons/api/v1beta1/clusterresourceset_types.go @@ -153,7 +153,9 @@ func (m *ClusterResourceSet) SetV1Beta2Conditions(conditions []metav1.Condition) // +kubebuilder:storageversion // +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp",description="Time duration since creation of ClusterResourceSet" -// ClusterResourceSet is the Schema for the clusterresourcesets API. +// ClusterResourceSet is the Schema for the clusterresourcesets API +// it provides a basic solution for installing & managing resources +// while for advanced use cases an addon provider must be used. type ClusterResourceSet struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/feature/feature.go b/feature/feature.go index 9d1af07ab350..c9545f2b70c1 100644 --- a/feature/feature.go +++ b/feature/feature.go @@ -39,6 +39,7 @@ const ( // // alpha: v0.3 // beta: v0.4 + // GA: v1.9. ClusterResourceSet featuregate.Feature = "ClusterResourceSet" // ClusterTopology is a feature gate for the ClusterClass and managed topologies functionality. @@ -78,7 +79,7 @@ func init() { // To add a new feature, define a key for it above and add it here. var defaultClusterAPIFeatureGates = map[featuregate.Feature]featuregate.FeatureSpec{ // Every feature should be initiated here: - ClusterResourceSet: {Default: true, PreRelease: featuregate.Beta}, + ClusterResourceSet: {Default: true, PreRelease: featuregate.GA}, MachinePool: {Default: true, PreRelease: featuregate.Beta}, MachineSetPreflightChecks: {Default: true, PreRelease: featuregate.Beta}, MachineWaitForVolumeDetachConsiderVolumeAttachments: {Default: true, PreRelease: featuregate.Beta}, From 623eec85ad4896085600b6948657eb8c49b59cc0 Mon Sep 17 00:00:00 2001 From: Mohamed Chiheb Ben Jemaa Date: Mon, 25 Nov 2024 12:09:58 +0100 Subject: [PATCH 2/3] Remove CRS from experimental-features --- .../src/tasks/experimental-features/experimental-features.md | 1 - 1 file changed, 1 deletion(-) diff --git a/docs/book/src/tasks/experimental-features/experimental-features.md b/docs/book/src/tasks/experimental-features/experimental-features.md index 4583d848023d..a84268c9bb36 100644 --- a/docs/book/src/tasks/experimental-features/experimental-features.md +++ b/docs/book/src/tasks/experimental-features/experimental-features.md @@ -4,7 +4,6 @@ Cluster API now ships with a new experimental package that lives under the `exp/ temporary location for features which will be moved to their permanent locations after graduation. Users can experiment with these features by enabling them using feature gates. Currently Cluster API has the following experimental features: -* `ClusterResourceSet` (env var: `EXP_CLUSTER_RESOURCE_SET`): [ClusterResourceSet](./cluster-resource-set.md) * `MachinePool` (env var: `EXP_MACHINE_POOL`): [MachinePools](./machine-pools.md) * `MachineSetPreflightChecks` (env var: `EXP_MACHINE_SET_PREFLIGHT_CHECKS`): [MachineSetPreflightChecks](./machineset-preflight-checks.md) * `MachineWaitForVolumeDetachConsiderVolumeAttachments` (env var: `EXP_MACHINE_WAITFORVOLUMEDETACH_CONSIDER_VOLUMEATTACHMENTS`): From 1f6aaab49a1f6c1f06fa26e139059e1d6d7190d0 Mon Sep 17 00:00:00 2001 From: Mohamed Chiheb Ben Jemaa Date: Thu, 5 Dec 2024 13:01:54 +0100 Subject: [PATCH 3/3] Update feature.go --- feature/feature.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/feature/feature.go b/feature/feature.go index c9545f2b70c1..573310a29318 100644 --- a/feature/feature.go +++ b/feature/feature.go @@ -39,7 +39,7 @@ const ( // // alpha: v0.3 // beta: v0.4 - // GA: v1.9. + // GA: v1.10. ClusterResourceSet featuregate.Feature = "ClusterResourceSet" // ClusterTopology is a feature gate for the ClusterClass and managed topologies functionality.