mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-22 19:31:44 +00:00
Merge pull request #96872 from cici37/moveFeature
Move IPv6DualStack to k8s.io/controller-manager
This commit is contained in:
commit
2282b3c258
@ -36,6 +36,7 @@ go_library(
|
||||
"//staging/src/k8s.io/component-base/metrics/prometheus/clientgo:go_default_library",
|
||||
"//staging/src/k8s.io/component-base/metrics/prometheus/version:go_default_library",
|
||||
"//staging/src/k8s.io/controller-manager/app:go_default_library",
|
||||
"//staging/src/k8s.io/controller-manager/pkg/features:go_default_library",
|
||||
"//staging/src/k8s.io/legacy-cloud-providers/aws:go_default_library",
|
||||
"//staging/src/k8s.io/legacy-cloud-providers/azure:go_default_library",
|
||||
"//staging/src/k8s.io/legacy-cloud-providers/gce:go_default_library",
|
||||
|
@ -28,9 +28,9 @@ import (
|
||||
|
||||
utilfeature "k8s.io/apiserver/pkg/util/feature"
|
||||
cloudprovider "k8s.io/cloud-provider"
|
||||
"k8s.io/cloud-provider/app"
|
||||
cloudcontrollerconfig "k8s.io/cloud-provider/app/config"
|
||||
genericcontrollermanager "k8s.io/controller-manager/app"
|
||||
"k8s.io/controller-manager/pkg/features"
|
||||
"k8s.io/klog/v2"
|
||||
nodeipamcontroller "k8s.io/kubernetes/pkg/controller/nodeipam"
|
||||
nodeipamconfig "k8s.io/kubernetes/pkg/controller/nodeipam/config"
|
||||
@ -61,7 +61,7 @@ func startNodeIpamController(ccmconfig *cloudcontrollerconfig.CompletedConfig, n
|
||||
}
|
||||
|
||||
// failure: more than one cidr and dual stack is not enabled
|
||||
if len(clusterCIDRs) > 1 && !utilfeature.DefaultFeatureGate.Enabled(app.IPv6DualStack) {
|
||||
if len(clusterCIDRs) > 1 && !utilfeature.DefaultFeatureGate.Enabled(features.IPv6DualStack) {
|
||||
return nil, false, fmt.Errorf("len of ClusterCIDRs==%v and dualstack feature is not enabled", len(clusterCIDRs))
|
||||
}
|
||||
|
||||
@ -93,7 +93,7 @@ func startNodeIpamController(ccmconfig *cloudcontrollerconfig.CompletedConfig, n
|
||||
// the following checks are triggered if both serviceCIDR and secondaryServiceCIDR are provided
|
||||
if serviceCIDR != nil && secondaryServiceCIDR != nil {
|
||||
// should have dual stack flag enabled
|
||||
if !utilfeature.DefaultFeatureGate.Enabled(app.IPv6DualStack) {
|
||||
if !utilfeature.DefaultFeatureGate.Enabled(features.IPv6DualStack) {
|
||||
return nil, false, fmt.Errorf("secondary service cidr is provided and IPv6DualStack feature is not enabled")
|
||||
}
|
||||
|
||||
@ -108,7 +108,7 @@ func startNodeIpamController(ccmconfig *cloudcontrollerconfig.CompletedConfig, n
|
||||
}
|
||||
|
||||
var nodeCIDRMaskSizeIPv4, nodeCIDRMaskSizeIPv6 int
|
||||
if utilfeature.DefaultFeatureGate.Enabled(app.IPv6DualStack) {
|
||||
if utilfeature.DefaultFeatureGate.Enabled(features.IPv6DualStack) {
|
||||
// only --node-cidr-mask-size-ipv4 and --node-cidr-mask-size-ipv6 supported with dual stack clusters.
|
||||
// --node-cidr-mask-size flag is incompatible with dual stack clusters.
|
||||
nodeCIDRMaskSizeIPv4, nodeCIDRMaskSizeIPv6, err = setNodeCIDRMaskSizesDualStack(nodeipamconfig)
|
||||
|
@ -40,6 +40,7 @@ go_library(
|
||||
"//staging/src/k8s.io/component-base/version/verflag:go_default_library",
|
||||
"//staging/src/k8s.io/controller-manager/app:go_default_library",
|
||||
"//staging/src/k8s.io/controller-manager/pkg/clientbuilder:go_default_library",
|
||||
"//staging/src/k8s.io/controller-manager/pkg/features:go_default_library",
|
||||
"//staging/src/k8s.io/controller-manager/pkg/informerfactory:go_default_library",
|
||||
"//vendor/github.com/spf13/cobra:go_default_library",
|
||||
"//vendor/k8s.io/klog/v2:go_default_library",
|
||||
|
@ -32,18 +32,13 @@ import (
|
||||
cloudnodelifecyclecontroller "k8s.io/cloud-provider/controllers/nodelifecycle"
|
||||
routecontroller "k8s.io/cloud-provider/controllers/route"
|
||||
servicecontroller "k8s.io/cloud-provider/controllers/service"
|
||||
"k8s.io/controller-manager/pkg/features"
|
||||
"k8s.io/klog/v2"
|
||||
netutils "k8s.io/utils/net"
|
||||
|
||||
utilfeature "k8s.io/apiserver/pkg/util/feature"
|
||||
)
|
||||
|
||||
const (
|
||||
// IPv6DualStack enables ipv6 dual stack feature
|
||||
// Original copy from pkg/features/kube_features.go
|
||||
IPv6DualStack = "IPv6DualStack"
|
||||
)
|
||||
|
||||
func startCloudNodeController(ctx *config.CompletedConfig, cloud cloudprovider.Interface, stopCh <-chan struct{}) (http.Handler, bool, error) {
|
||||
// Start the CloudNodeController
|
||||
nodeController, err := cloudnodecontroller.NewCloudNodeController(
|
||||
@ -123,7 +118,7 @@ func startRouteController(ctx *config.CompletedConfig, cloud cloudprovider.Inter
|
||||
}
|
||||
|
||||
// failure: more than one cidr and dual stack is not enabled
|
||||
if len(clusterCIDRs) > 1 && !utilfeature.DefaultFeatureGate.Enabled(IPv6DualStack) {
|
||||
if len(clusterCIDRs) > 1 && !utilfeature.DefaultFeatureGate.Enabled(features.IPv6DualStack) {
|
||||
return nil, false, fmt.Errorf("len of ClusterCIDRs==%v and dualstack feature is not enabled", len(clusterCIDRs))
|
||||
}
|
||||
|
||||
|
@ -32,6 +32,7 @@ const (
|
||||
// beta: v1.19
|
||||
//
|
||||
// Enable legacy behavior to vary cluster functionality on the node-role.kubernetes.io labels. On by default (legacy), will be turned off in 1.18.
|
||||
// Original copy from k8s.io/kubernetes/pkg/features/kube_features.go
|
||||
LegacyNodeRoleBehavior featuregate.Feature = "LegacyNodeRoleBehavior"
|
||||
|
||||
// owner @brendandburns
|
||||
@ -39,7 +40,15 @@ const (
|
||||
// beta: v1.19
|
||||
//
|
||||
// Enable nodes to exclude themselves from service load balancers
|
||||
// Original copy from k8s.io/kubernetes/pkg/features/kube_features.go
|
||||
ServiceNodeExclusion featuregate.Feature = "ServiceNodeExclusion"
|
||||
|
||||
// owner: @khenidak
|
||||
// alpha: v1.15
|
||||
//
|
||||
// Enables ipv6 dual stack
|
||||
// Original copy from k8s.io/kubernetes/pkg/features/kube_features.go
|
||||
IPv6DualStack featuregate.Feature = "IPv6DualStack"
|
||||
)
|
||||
|
||||
func SetupCurrentKubernetesSpecificFeatureGates(featuregates featuregate.MutableFeatureGate) error {
|
||||
@ -51,4 +60,5 @@ func SetupCurrentKubernetesSpecificFeatureGates(featuregates featuregate.Mutable
|
||||
var cloudPublicFeatureGates = map[featuregate.Feature]featuregate.FeatureSpec{
|
||||
LegacyNodeRoleBehavior: {Default: true, PreRelease: featuregate.Beta},
|
||||
ServiceNodeExclusion: {Default: true, PreRelease: featuregate.Beta},
|
||||
IPv6DualStack: {Default: false, PreRelease: featuregate.Alpha},
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user