mirror of
				https://github.com/optim-enterprises-bv/kubernetes.git
				synced 2025-11-03 19:58:17 +00:00 
			
		
		
		
	Merge pull request #112163 from aojea/static_allocation_ga
graduate ServiceIPStaticSubrange to GA
This commit is contained in:
		@@ -699,6 +699,7 @@ const (
 | 
				
			|||||||
	// kep: https://kep.k8s.io/3070
 | 
						// kep: https://kep.k8s.io/3070
 | 
				
			||||||
	// alpha: v1.24
 | 
						// alpha: v1.24
 | 
				
			||||||
	// beta: v1.25
 | 
						// beta: v1.25
 | 
				
			||||||
 | 
						// ga: v1.26
 | 
				
			||||||
	//
 | 
						//
 | 
				
			||||||
	// Subdivide the ClusterIP range for dynamic and static IP allocation.
 | 
						// Subdivide the ClusterIP range for dynamic and static IP allocation.
 | 
				
			||||||
	ServiceIPStaticSubrange featuregate.Feature = "ServiceIPStaticSubrange"
 | 
						ServiceIPStaticSubrange featuregate.Feature = "ServiceIPStaticSubrange"
 | 
				
			||||||
@@ -978,7 +979,7 @@ var defaultKubernetesFeatureGates = map[featuregate.Feature]featuregate.FeatureS
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	SeccompDefault: {Default: true, PreRelease: featuregate.Beta},
 | 
						SeccompDefault: {Default: true, PreRelease: featuregate.Beta},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	ServiceIPStaticSubrange: {Default: true, PreRelease: featuregate.Beta},
 | 
						ServiceIPStaticSubrange: {Default: true, PreRelease: featuregate.GA, LockToDefault: true}, // remove in 1.28
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	ServiceInternalTrafficPolicy: {Default: true, PreRelease: featuregate.Beta},
 | 
						ServiceInternalTrafficPolicy: {Default: true, PreRelease: featuregate.Beta},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -22,9 +22,7 @@ import (
 | 
				
			|||||||
	"math/big"
 | 
						"math/big"
 | 
				
			||||||
	"net"
 | 
						"net"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	utilfeature "k8s.io/apiserver/pkg/util/feature"
 | 
					 | 
				
			||||||
	api "k8s.io/kubernetes/pkg/apis/core"
 | 
						api "k8s.io/kubernetes/pkg/apis/core"
 | 
				
			||||||
	"k8s.io/kubernetes/pkg/features"
 | 
					 | 
				
			||||||
	"k8s.io/kubernetes/pkg/registry/core/service/allocator"
 | 
						"k8s.io/kubernetes/pkg/registry/core/service/allocator"
 | 
				
			||||||
	netutils "k8s.io/utils/net"
 | 
						netutils "k8s.io/utils/net"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
@@ -124,10 +122,7 @@ func New(cidr *net.IPNet, allocatorFactory allocator.AllocatorWithOffsetFactory)
 | 
				
			|||||||
		metrics: &emptyMetricsRecorder{}, // disabled by default
 | 
							metrics: &emptyMetricsRecorder{}, // disabled by default
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	offset := 0
 | 
						offset := calculateRangeOffset(cidr)
 | 
				
			||||||
	if utilfeature.DefaultFeatureGate.Enabled(features.ServiceIPStaticSubrange) {
 | 
					 | 
				
			||||||
		offset = calculateRangeOffset(cidr)
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	var err error
 | 
						var err error
 | 
				
			||||||
	r.alloc, err = allocatorFactory(r.max, rangeSpec, offset)
 | 
						r.alloc, err = allocatorFactory(r.max, rangeSpec, offset)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -22,11 +22,8 @@ import (
 | 
				
			|||||||
	"testing"
 | 
						"testing"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	"k8s.io/apimachinery/pkg/util/sets"
 | 
						"k8s.io/apimachinery/pkg/util/sets"
 | 
				
			||||||
	utilfeature "k8s.io/apiserver/pkg/util/feature"
 | 
					 | 
				
			||||||
	featuregatetesting "k8s.io/component-base/featuregate/testing"
 | 
					 | 
				
			||||||
	"k8s.io/component-base/metrics/testutil"
 | 
						"k8s.io/component-base/metrics/testutil"
 | 
				
			||||||
	api "k8s.io/kubernetes/pkg/apis/core"
 | 
						api "k8s.io/kubernetes/pkg/apis/core"
 | 
				
			||||||
	"k8s.io/kubernetes/pkg/features"
 | 
					 | 
				
			||||||
	netutils "k8s.io/utils/net"
 | 
						netutils "k8s.io/utils/net"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -181,8 +178,6 @@ func TestAllocateTiny(t *testing.T) {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func TestAllocateReserved(t *testing.T) {
 | 
					func TestAllocateReserved(t *testing.T) {
 | 
				
			||||||
	defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.ServiceIPStaticSubrange, true)()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	_, cidr, err := netutils.ParseCIDRSloppy("192.168.1.0/25")
 | 
						_, cidr, err := netutils.ParseCIDRSloppy("192.168.1.0/25")
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		t.Fatal(err)
 | 
							t.Fatal(err)
 | 
				
			||||||
@@ -425,8 +420,6 @@ func TestNewFromSnapshot(t *testing.T) {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
func TestClusterIPMetrics(t *testing.T) {
 | 
					func TestClusterIPMetrics(t *testing.T) {
 | 
				
			||||||
	clearMetrics()
 | 
						clearMetrics()
 | 
				
			||||||
	defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.ServiceIPStaticSubrange, true)()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	// create IPv4 allocator
 | 
						// create IPv4 allocator
 | 
				
			||||||
	cidrIPv4 := "10.0.0.0/24"
 | 
						cidrIPv4 := "10.0.0.0/24"
 | 
				
			||||||
	_, clusterCIDRv4, _ := netutils.ParseCIDRSloppy(cidrIPv4)
 | 
						_, clusterCIDRv4, _ := netutils.ParseCIDRSloppy(cidrIPv4)
 | 
				
			||||||
@@ -539,8 +532,6 @@ func TestClusterIPMetrics(t *testing.T) {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
func TestClusterIPAllocatedMetrics(t *testing.T) {
 | 
					func TestClusterIPAllocatedMetrics(t *testing.T) {
 | 
				
			||||||
	clearMetrics()
 | 
						clearMetrics()
 | 
				
			||||||
	defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.ServiceIPStaticSubrange, true)()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	// create IPv4 allocator
 | 
						// create IPv4 allocator
 | 
				
			||||||
	cidrIPv4 := "10.0.0.0/25"
 | 
						cidrIPv4 := "10.0.0.0/25"
 | 
				
			||||||
	_, clusterCIDRv4, _ := netutils.ParseCIDRSloppy(cidrIPv4)
 | 
						_, clusterCIDRv4, _ := netutils.ParseCIDRSloppy(cidrIPv4)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -26,11 +26,8 @@ import (
 | 
				
			|||||||
	"k8s.io/apiserver/pkg/storage"
 | 
						"k8s.io/apiserver/pkg/storage"
 | 
				
			||||||
	etcd3testing "k8s.io/apiserver/pkg/storage/etcd3/testing"
 | 
						etcd3testing "k8s.io/apiserver/pkg/storage/etcd3/testing"
 | 
				
			||||||
	"k8s.io/apiserver/pkg/storage/storagebackend/factory"
 | 
						"k8s.io/apiserver/pkg/storage/storagebackend/factory"
 | 
				
			||||||
	utilfeature "k8s.io/apiserver/pkg/util/feature"
 | 
					 | 
				
			||||||
	featuregatetesting "k8s.io/component-base/featuregate/testing"
 | 
					 | 
				
			||||||
	api "k8s.io/kubernetes/pkg/apis/core"
 | 
						api "k8s.io/kubernetes/pkg/apis/core"
 | 
				
			||||||
	_ "k8s.io/kubernetes/pkg/apis/core/install"
 | 
						_ "k8s.io/kubernetes/pkg/apis/core/install"
 | 
				
			||||||
	"k8s.io/kubernetes/pkg/features"
 | 
					 | 
				
			||||||
	"k8s.io/kubernetes/pkg/registry/core/service/allocator"
 | 
						"k8s.io/kubernetes/pkg/registry/core/service/allocator"
 | 
				
			||||||
	allocatorstore "k8s.io/kubernetes/pkg/registry/core/service/allocator/storage"
 | 
						allocatorstore "k8s.io/kubernetes/pkg/registry/core/service/allocator/storage"
 | 
				
			||||||
	"k8s.io/kubernetes/pkg/registry/core/service/ipallocator"
 | 
						"k8s.io/kubernetes/pkg/registry/core/service/ipallocator"
 | 
				
			||||||
@@ -121,8 +118,6 @@ func TestStore(t *testing.T) {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func TestAllocateReserved(t *testing.T) {
 | 
					func TestAllocateReserved(t *testing.T) {
 | 
				
			||||||
	defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.ServiceIPStaticSubrange, true)()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	_, storage, _, si, destroyFunc := newStorage(t)
 | 
						_, storage, _, si, destroyFunc := newStorage(t)
 | 
				
			||||||
	defer destroyFunc()
 | 
						defer destroyFunc()
 | 
				
			||||||
	if err := si.Create(context.TODO(), key(), validNewRangeAllocation(), nil, 0); err != nil {
 | 
						if err := si.Create(context.TODO(), key(), validNewRangeAllocation(), nil, 0); err != nil {
 | 
				
			||||||
@@ -169,8 +164,6 @@ func TestAllocateReserved(t *testing.T) {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func TestAllocateReservedDynamicBlockExhausted(t *testing.T) {
 | 
					func TestAllocateReservedDynamicBlockExhausted(t *testing.T) {
 | 
				
			||||||
	defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.ServiceIPStaticSubrange, true)()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	_, storage, _, si, destroyFunc := newStorage(t)
 | 
						_, storage, _, si, destroyFunc := newStorage(t)
 | 
				
			||||||
	defer destroyFunc()
 | 
						defer destroyFunc()
 | 
				
			||||||
	if err := si.Create(context.TODO(), key(), validNewRangeAllocation(), nil, 0); err != nil {
 | 
						if err := si.Create(context.TODO(), key(), validNewRangeAllocation(), nil, 0); err != nil {
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user