mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-21 19:01:49 +00:00
remove apiserver limitations
Change-Id: I97b35d912ba5d86857cf82d3eddd65b648030005
This commit is contained in:
parent
b2c8190ee7
commit
811c2f50a1
@ -27,6 +27,7 @@ import (
|
|||||||
utilfeature "k8s.io/apiserver/pkg/util/feature"
|
utilfeature "k8s.io/apiserver/pkg/util/feature"
|
||||||
aggregatorscheme "k8s.io/kube-aggregator/pkg/apiserver/scheme"
|
aggregatorscheme "k8s.io/kube-aggregator/pkg/apiserver/scheme"
|
||||||
"k8s.io/kubernetes/pkg/api/legacyscheme"
|
"k8s.io/kubernetes/pkg/api/legacyscheme"
|
||||||
|
"k8s.io/kubernetes/pkg/features"
|
||||||
netutils "k8s.io/utils/net"
|
netutils "k8s.io/utils/net"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -35,7 +36,10 @@ import (
|
|||||||
func validateClusterIPFlags(options *ServerRunOptions) []error {
|
func validateClusterIPFlags(options *ServerRunOptions) []error {
|
||||||
var errs []error
|
var errs []error
|
||||||
// maxCIDRBits is used to define the maximum CIDR size for the cluster ip(s)
|
// maxCIDRBits is used to define the maximum CIDR size for the cluster ip(s)
|
||||||
const maxCIDRBits = 20
|
maxCIDRBits := 20
|
||||||
|
if utilfeature.DefaultFeatureGate.Enabled(features.MultiCIDRServiceAllocator) {
|
||||||
|
maxCIDRBits = 64
|
||||||
|
}
|
||||||
|
|
||||||
// validate that primary has been processed by user provided values or it has been defaulted
|
// validate that primary has been processed by user provided values or it has been defaulted
|
||||||
if options.PrimaryServiceClusterIPRange.IP == nil {
|
if options.PrimaryServiceClusterIPRange.IP == nil {
|
||||||
|
@ -24,7 +24,10 @@ import (
|
|||||||
utilnet "k8s.io/apimachinery/pkg/util/net"
|
utilnet "k8s.io/apimachinery/pkg/util/net"
|
||||||
kubeapiserveradmission "k8s.io/apiserver/pkg/admission"
|
kubeapiserveradmission "k8s.io/apiserver/pkg/admission"
|
||||||
genericoptions "k8s.io/apiserver/pkg/server/options"
|
genericoptions "k8s.io/apiserver/pkg/server/options"
|
||||||
|
utilfeature "k8s.io/apiserver/pkg/util/feature"
|
||||||
|
featuregatetesting "k8s.io/component-base/featuregate/testing"
|
||||||
basemetrics "k8s.io/component-base/metrics"
|
basemetrics "k8s.io/component-base/metrics"
|
||||||
|
"k8s.io/kubernetes/pkg/features"
|
||||||
kubeoptions "k8s.io/kubernetes/pkg/kubeapiserver/options"
|
kubeoptions "k8s.io/kubernetes/pkg/kubeapiserver/options"
|
||||||
netutils "k8s.io/utils/net"
|
netutils "k8s.io/utils/net"
|
||||||
)
|
)
|
||||||
@ -61,6 +64,7 @@ func TestClusterServiceIPRange(t *testing.T) {
|
|||||||
name string
|
name string
|
||||||
options *ServerRunOptions
|
options *ServerRunOptions
|
||||||
expectErrors bool
|
expectErrors bool
|
||||||
|
gate bool
|
||||||
}{
|
}{
|
||||||
{
|
{
|
||||||
name: "no service cidr",
|
name: "no service cidr",
|
||||||
@ -87,6 +91,24 @@ func TestClusterServiceIPRange(t *testing.T) {
|
|||||||
expectErrors: true,
|
expectErrors: true,
|
||||||
options: makeOptionsWithCIDRs("10.0.0.0/8", ""),
|
options: makeOptionsWithCIDRs("10.0.0.0/8", ""),
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
name: "service cidr IPv4 is too big but gate enbled",
|
||||||
|
expectErrors: false,
|
||||||
|
options: makeOptionsWithCIDRs("10.0.0.0/8", ""),
|
||||||
|
gate: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "service cidr IPv6 is too big but gate enbled",
|
||||||
|
expectErrors: false,
|
||||||
|
options: makeOptionsWithCIDRs("2001:db8::/64", ""),
|
||||||
|
gate: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "service cidr IPv6 is too big despuite gate enbled",
|
||||||
|
expectErrors: true,
|
||||||
|
options: makeOptionsWithCIDRs("2001:db8::/12", ""),
|
||||||
|
gate: true,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
name: "dual-stack secondary cidr too big",
|
name: "dual-stack secondary cidr too big",
|
||||||
expectErrors: true,
|
expectErrors: true,
|
||||||
@ -122,6 +144,8 @@ func TestClusterServiceIPRange(t *testing.T) {
|
|||||||
|
|
||||||
for _, tc := range testCases {
|
for _, tc := range testCases {
|
||||||
t.Run(tc.name, func(t *testing.T) {
|
t.Run(tc.name, func(t *testing.T) {
|
||||||
|
defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.MultiCIDRServiceAllocator, tc.gate)()
|
||||||
|
|
||||||
errs := validateClusterIPFlags(tc.options)
|
errs := validateClusterIPFlags(tc.options)
|
||||||
if len(errs) > 0 && !tc.expectErrors {
|
if len(errs) > 0 && !tc.expectErrors {
|
||||||
t.Errorf("expected no errors, errors found %+v", errs)
|
t.Errorf("expected no errors, errors found %+v", errs)
|
||||||
|
Loading…
Reference in New Issue
Block a user