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..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`): @@ -92,7 +91,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 +108,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..573310a29318 100644 --- a/feature/feature.go +++ b/feature/feature.go @@ -39,6 +39,7 @@ const ( // // alpha: v0.3 // beta: v0.4 + // GA: v1.10. 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},