mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-23 11:50: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/clientgo:go_default_library",
|
||||||
"//staging/src/k8s.io/component-base/metrics/prometheus/version: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/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/aws:go_default_library",
|
||||||
"//staging/src/k8s.io/legacy-cloud-providers/azure: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",
|
"//staging/src/k8s.io/legacy-cloud-providers/gce:go_default_library",
|
||||||
|
@ -28,9 +28,9 @@ import (
|
|||||||
|
|
||||||
utilfeature "k8s.io/apiserver/pkg/util/feature"
|
utilfeature "k8s.io/apiserver/pkg/util/feature"
|
||||||
cloudprovider "k8s.io/cloud-provider"
|
cloudprovider "k8s.io/cloud-provider"
|
||||||
"k8s.io/cloud-provider/app"
|
|
||||||
cloudcontrollerconfig "k8s.io/cloud-provider/app/config"
|
cloudcontrollerconfig "k8s.io/cloud-provider/app/config"
|
||||||
genericcontrollermanager "k8s.io/controller-manager/app"
|
genericcontrollermanager "k8s.io/controller-manager/app"
|
||||||
|
"k8s.io/controller-manager/pkg/features"
|
||||||
"k8s.io/klog/v2"
|
"k8s.io/klog/v2"
|
||||||
nodeipamcontroller "k8s.io/kubernetes/pkg/controller/nodeipam"
|
nodeipamcontroller "k8s.io/kubernetes/pkg/controller/nodeipam"
|
||||||
nodeipamconfig "k8s.io/kubernetes/pkg/controller/nodeipam/config"
|
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
|
// 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))
|
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
|
// the following checks are triggered if both serviceCIDR and secondaryServiceCIDR are provided
|
||||||
if serviceCIDR != nil && secondaryServiceCIDR != nil {
|
if serviceCIDR != nil && secondaryServiceCIDR != nil {
|
||||||
// should have dual stack flag enabled
|
// 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")
|
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
|
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.
|
// 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.
|
// --node-cidr-mask-size flag is incompatible with dual stack clusters.
|
||||||
nodeCIDRMaskSizeIPv4, nodeCIDRMaskSizeIPv6, err = setNodeCIDRMaskSizesDualStack(nodeipamconfig)
|
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/component-base/version/verflag:go_default_library",
|
||||||
"//staging/src/k8s.io/controller-manager/app: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/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",
|
"//staging/src/k8s.io/controller-manager/pkg/informerfactory:go_default_library",
|
||||||
"//vendor/github.com/spf13/cobra:go_default_library",
|
"//vendor/github.com/spf13/cobra:go_default_library",
|
||||||
"//vendor/k8s.io/klog/v2:go_default_library",
|
"//vendor/k8s.io/klog/v2:go_default_library",
|
||||||
|
@ -32,18 +32,13 @@ import (
|
|||||||
cloudnodelifecyclecontroller "k8s.io/cloud-provider/controllers/nodelifecycle"
|
cloudnodelifecyclecontroller "k8s.io/cloud-provider/controllers/nodelifecycle"
|
||||||
routecontroller "k8s.io/cloud-provider/controllers/route"
|
routecontroller "k8s.io/cloud-provider/controllers/route"
|
||||||
servicecontroller "k8s.io/cloud-provider/controllers/service"
|
servicecontroller "k8s.io/cloud-provider/controllers/service"
|
||||||
|
"k8s.io/controller-manager/pkg/features"
|
||||||
"k8s.io/klog/v2"
|
"k8s.io/klog/v2"
|
||||||
netutils "k8s.io/utils/net"
|
netutils "k8s.io/utils/net"
|
||||||
|
|
||||||
utilfeature "k8s.io/apiserver/pkg/util/feature"
|
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) {
|
func startCloudNodeController(ctx *config.CompletedConfig, cloud cloudprovider.Interface, stopCh <-chan struct{}) (http.Handler, bool, error) {
|
||||||
// Start the CloudNodeController
|
// Start the CloudNodeController
|
||||||
nodeController, err := cloudnodecontroller.NewCloudNodeController(
|
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
|
// 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))
|
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
|
// 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.
|
// 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"
|
LegacyNodeRoleBehavior featuregate.Feature = "LegacyNodeRoleBehavior"
|
||||||
|
|
||||||
// owner @brendandburns
|
// owner @brendandburns
|
||||||
@ -39,7 +40,15 @@ const (
|
|||||||
// beta: v1.19
|
// beta: v1.19
|
||||||
//
|
//
|
||||||
// Enable nodes to exclude themselves from service load balancers
|
// Enable nodes to exclude themselves from service load balancers
|
||||||
|
// Original copy from k8s.io/kubernetes/pkg/features/kube_features.go
|
||||||
ServiceNodeExclusion featuregate.Feature = "ServiceNodeExclusion"
|
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 {
|
func SetupCurrentKubernetesSpecificFeatureGates(featuregates featuregate.MutableFeatureGate) error {
|
||||||
@ -51,4 +60,5 @@ func SetupCurrentKubernetesSpecificFeatureGates(featuregates featuregate.Mutable
|
|||||||
var cloudPublicFeatureGates = map[featuregate.Feature]featuregate.FeatureSpec{
|
var cloudPublicFeatureGates = map[featuregate.Feature]featuregate.FeatureSpec{
|
||||||
LegacyNodeRoleBehavior: {Default: true, PreRelease: featuregate.Beta},
|
LegacyNodeRoleBehavior: {Default: true, PreRelease: featuregate.Beta},
|
||||||
ServiceNodeExclusion: {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