diff --git a/pkg/controller/namespace/deletion/namespaced_resources_deleter.go b/pkg/controller/namespace/deletion/namespaced_resources_deleter.go index bcfc2c89ae8..4f7663b5f5c 100644 --- a/pkg/controller/namespace/deletion/namespaced_resources_deleter.go +++ b/pkg/controller/namespace/deletion/namespaced_resources_deleter.go @@ -528,12 +528,10 @@ func (d *namespacedResourcesDeleter) deleteAllContent(ctx context.Context, ns *v gvrToNumRemaining: map[schema.GroupVersionResource]int{}, finalizersToNumRemaining: map[string]int{}, } + podsGVR := schema.GroupVersionResource{Group: "", Version: "v1", Resource: "pods"} - if utilfeature.DefaultFeatureGate.Enabled(features.OrderedNamespaceDeletion) { - // TODO: remove this log when the feature gate is enabled by default - logger.V(5).Info("Namespace controller - OrderedNamespaceDeletion feature gate is enabled", "namespace", namespace) + if _, hasPods := groupVersionResources[podsGVR]; hasPods && utilfeature.DefaultFeatureGate.Enabled(features.OrderedNamespaceDeletion) { // Ensure all pods in the namespace are deleted first - podsGVR := schema.GroupVersionResource{Group: "", Version: "v1", Resource: "pods"} gvrDeletionMetadata, err := d.deleteAllContentForGroupVersionResource(ctx, podsGVR, namespace, namespaceDeletedAt) if err != nil { errs = append(errs, fmt.Errorf("failed to delete pods for namespace: %s, err: %w", namespace, err)) @@ -561,6 +559,10 @@ func (d *namespacedResourcesDeleter) deleteAllContent(ctx context.Context, ns *v // Proceed with deleting other resources in the namespace for gvr := range groupVersionResources { + if utilfeature.DefaultFeatureGate.Enabled(features.OrderedNamespaceDeletion) && gvr.Group == podsGVR.Group && + gvr.Version == podsGVR.Version && gvr.Resource == podsGVR.Resource { + continue + } gvrDeletionMetadata, err := d.deleteAllContentForGroupVersionResource(ctx, gvr, namespace, namespaceDeletedAt) if err != nil { // If there is an error, hold on to it but proceed with all the remaining diff --git a/pkg/features/versioned_kube_features.go b/pkg/features/versioned_kube_features.go index 34a5cfb539c..c8bf44111f4 100644 --- a/pkg/features/versioned_kube_features.go +++ b/pkg/features/versioned_kube_features.go @@ -545,7 +545,8 @@ var defaultVersionedKubernetesFeatureGates = map[featuregate.Feature]featuregate }, OrderedNamespaceDeletion: { - {Version: version.MustParse("1.33"), Default: false, PreRelease: featuregate.Alpha}, + {Version: version.MustParse("1.30"), Default: false, PreRelease: featuregate.Beta}, + {Version: version.MustParse("1.33"), Default: true, PreRelease: featuregate.Beta}, }, PersistentVolumeLastPhaseTransitionTime: { diff --git a/test/featuregates_linter/test_data/versioned_feature_list.yaml b/test/featuregates_linter/test_data/versioned_feature_list.yaml index 22bf9c16d07..38dddd18217 100644 --- a/test/featuregates_linter/test_data/versioned_feature_list.yaml +++ b/test/featuregates_linter/test_data/versioned_feature_list.yaml @@ -864,7 +864,11 @@ versionedSpecs: - default: false lockToDefault: false - preRelease: Alpha + preRelease: Beta + version: "1.30" + - default: true + lockToDefault: false + preRelease: Beta version: "1.33" - name: PersistentVolumeLastPhaseTransitionTime versionedSpecs: