mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-20 18:31:15 +00:00
Merge pull request #112163 from aojea/static_allocation_ga
graduate ServiceIPStaticSubrange to GA
This commit is contained in:
commit
d754183866
@ -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 {
|
||||||
|
Loading…
Reference in New Issue
Block a user