diff --git a/.golangci.yml b/.golangci.yml index bcaf560371c7..34a9c5bda590 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -74,6 +74,7 @@ linters-settings: exclude: - '^ \+.*' - '^ ANCHOR.*' + - '^ (alpha|beta|GA): v.*' gocritic: enabled-tags: - diagnostic 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 e56ad357456c..174aba0ea2ae 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,9 @@ spec: name: v1beta1 schema: openAPIV3Schema: - description: ClusterResourceSet is the Schema for the clusterresourcesets - API. + description: |- + ClusterResourceSet is the Schema for the clusterresourcesets API. + For advanced use cases an add-on provider should be used instead. properties: apiVersion: description: |- diff --git a/docs/book/src/SUMMARY.md b/docs/book/src/SUMMARY.md index 6ba2940ee67b..547bb8f7439e 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 bc9dae48fcab..e46a852a19c7 100644 --- a/exp/addons/api/v1beta1/clusterresourceset_types.go +++ b/exp/addons/api/v1beta1/clusterresourceset_types.go @@ -174,6 +174,7 @@ func (m *ClusterResourceSet) SetV1Beta2Conditions(conditions []metav1.Condition) // +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp",description="Time duration since creation of ClusterResourceSet" // ClusterResourceSet is the Schema for the clusterresourcesets API. +// For advanced use cases an add-on provider should be used instead. type ClusterResourceSet struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/feature/feature.go b/feature/feature.go index 9d1af07ab350..01d212b43bd3 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},