Skip to content

Commit 0a08529

Browse files
authored
Merge pull request kubernetes#129770 from sunnylovestiramisu/promoteGA
Promote Beta AnyVolumeDataSource to GA
2 parents b84cb65 + e986217 commit 0a08529

File tree

7 files changed

+16
-10
lines changed

7 files changed

+16
-10
lines changed

pkg/api/persistentvolumeclaim/util_test.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ import (
2525
"k8s.io/apimachinery/pkg/api/resource"
2626
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
2727
"k8s.io/apimachinery/pkg/util/sets"
28+
"k8s.io/apimachinery/pkg/util/version"
2829
utilfeature "k8s.io/apiserver/pkg/util/feature"
2930
featuregatetesting "k8s.io/component-base/featuregate/testing"
3031
"k8s.io/utils/ptr"
@@ -269,6 +270,8 @@ func TestDataSourceFilter(t *testing.T) {
269270

270271
for testName, test := range tests {
271272
t.Run(testName, func(t *testing.T) {
273+
// TODO: this will be removed in 1.36
274+
featuregatetesting.SetFeatureGateEmulationVersionDuringTest(t, utilfeature.DefaultFeatureGate, version.MustParse("1.32"))
272275
featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.AnyVolumeDataSource, test.anyEnabled)
273276
featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.CrossNamespaceVolumeDataSource, test.xnsEnabled)
274277
DropDisabledFields(&test.spec, &test.oldSpec)

pkg/apis/core/types.go

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -531,8 +531,8 @@ type PersistentVolumeClaimSpec struct {
531531
// * An existing PVC (PersistentVolumeClaim)
532532
// If the provisioner or an external controller can support the specified data source,
533533
// it will create a new volume based on the contents of the specified data source.
534-
// When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef,
535-
// and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified.
534+
// dataSource contents will be copied to dataSourceRef, and dataSourceRef contents
535+
// will be copied to dataSource when dataSourceRef.namespace is not specified.
536536
// If the namespace is specified, then dataSourceRef will not be copied to dataSource.
537537
// +optional
538538
DataSource *TypedLocalObjectReference
@@ -557,8 +557,6 @@ type PersistentVolumeClaimSpec struct {
557557
// specified.
558558
// * While dataSource only allows local objects, dataSourceRef allows objects
559559
// in any namespaces.
560-
// (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled.
561-
// (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.
562560
// +optional
563561
DataSourceRef *TypedObjectReference
564562
// volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim.

pkg/features/versioned_kube_features.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ var defaultVersionedKubernetesFeatureGates = map[featuregate.Feature]featuregate
6060
AnyVolumeDataSource: {
6161
{Version: version.MustParse("1.18"), Default: false, PreRelease: featuregate.Alpha},
6262
{Version: version.MustParse("1.24"), Default: true, PreRelease: featuregate.Beta},
63+
{Version: version.MustParse("1.33"), Default: true, PreRelease: featuregate.GA, LockToDefault: true}, // GA in 1.33 -> remove in 1.36
6364
},
6465

6566
AppArmor: {

pkg/registry/core/persistentvolumeclaim/storage/storage_test.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ import (
2727
"k8s.io/apimachinery/pkg/fields"
2828
"k8s.io/apimachinery/pkg/labels"
2929
"k8s.io/apimachinery/pkg/runtime"
30+
"k8s.io/apimachinery/pkg/util/version"
3031
genericapirequest "k8s.io/apiserver/pkg/endpoints/request"
3132
"k8s.io/apiserver/pkg/registry/generic"
3233
genericregistrytest "k8s.io/apiserver/pkg/registry/generic/testing"
@@ -275,6 +276,8 @@ func TestDefaultOnReadPvc(t *testing.T) {
275276

276277
for testName, test := range tests {
277278
t.Run(testName, func(t *testing.T) {
279+
// TODO: this will be removed in 1.36
280+
featuregatetesting.SetFeatureGateEmulationVersionDuringTest(t, utilfeature.DefaultFeatureGate, version.MustParse("1.32"))
278281
featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.AnyVolumeDataSource, test.anyEnabled)
279282
pvc := new(api.PersistentVolumeClaim)
280283
if test.dataSource {

pkg/registry/core/persistentvolumeclaim/strategy_test.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import (
2222
"testing"
2323

2424
"github.com/google/go-cmp/cmp"
25+
"k8s.io/apimachinery/pkg/util/version"
2526
genericapirequest "k8s.io/apiserver/pkg/endpoints/request"
2627
utilfeature "k8s.io/apiserver/pkg/util/feature"
2728
featuregatetesting "k8s.io/component-base/featuregate/testing"
@@ -343,6 +344,8 @@ func TestPrepareForCreate(t *testing.T) {
343344

344345
for testName, test := range tests {
345346
t.Run(testName, func(t *testing.T) {
347+
// TODO: this will be removed in 1.36
348+
featuregatetesting.SetFeatureGateEmulationVersionDuringTest(t, utilfeature.DefaultFeatureGate, version.MustParse("1.32"))
346349
featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.AnyVolumeDataSource, test.anyEnabled)
347350
featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.CrossNamespaceVolumeDataSource, test.xnsEnabled)
348351
pvc := api.PersistentVolumeClaim{

test/featuregates_linter/test_data/versioned_feature_list.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,10 @@
102102
lockToDefault: false
103103
preRelease: Beta
104104
version: "1.24"
105+
- default: true
106+
lockToDefault: true
107+
preRelease: GA
108+
version: "1.33"
105109
- name: APIResponseCompression
106110
versionedSpecs:
107111
- default: false

test/integration/pvc/upgrade_test.go

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,13 +25,9 @@ import (
2525
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
2626
"k8s.io/apimachinery/pkg/runtime"
2727
"k8s.io/apimachinery/pkg/types"
28-
utilfeature "k8s.io/apiserver/pkg/util/feature"
2928
"k8s.io/client-go/kubernetes"
30-
featuregatetesting "k8s.io/component-base/featuregate/testing"
31-
3229
kubeapiservertesting "k8s.io/kubernetes/cmd/kube-apiserver/app/testing"
3330
"k8s.io/kubernetes/pkg/api/legacyscheme"
34-
"k8s.io/kubernetes/pkg/features"
3531
"k8s.io/kubernetes/test/integration/framework"
3632
)
3733

@@ -41,8 +37,6 @@ func Test_UpgradePVC(t *testing.T) {
4137
}
4238

4339
func test_UpgradePVC(t *testing.T, featureEnabled bool) {
44-
featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.AnyVolumeDataSource, featureEnabled)
45-
4640
etcdOptions := framework.SharedEtcd()
4741
apiServerOptions := kubeapiservertesting.NewDefaultTestServerOptions()
4842
s := kubeapiservertesting.StartTestServerOrDie(t, apiServerOptions, nil, etcdOptions)

0 commit comments

Comments
 (0)