mirror of
				https://github.com/optim-enterprises-bv/kubernetes.git
				synced 2025-11-04 04:08:16 +00:00 
			
		
		
		
	Add CloudDualStackNodeIPs feature gate(s)
Add CloudDualStackNodeIPs feature gates for kubelet and cloud-controller-manager and use as appropriate.
This commit is contained in:
		@@ -1120,7 +1120,7 @@ func RunKubelet(kubeServer *options.KubeletServer, kubeDeps *kubelet.Dependencie
 | 
			
		||||
	// Setup event recorder if required.
 | 
			
		||||
	makeEventRecorder(kubeDeps, nodeName)
 | 
			
		||||
 | 
			
		||||
	nodeIPs, err := nodeutil.ParseNodeIPArgument(kubeServer.NodeIP, kubeServer.CloudProvider, false)
 | 
			
		||||
	nodeIPs, err := nodeutil.ParseNodeIPArgument(kubeServer.NodeIP, kubeServer.CloudProvider, utilfeature.DefaultFeatureGate.Enabled(features.CloudDualStackNodeIPs))
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return fmt.Errorf("bad --node-ip %q: %v", kubeServer.NodeIP, err)
 | 
			
		||||
	}
 | 
			
		||||
 
 | 
			
		||||
@@ -61,6 +61,12 @@ const (
 | 
			
		||||
	// beta: v1.4
 | 
			
		||||
	AppArmor featuregate.Feature = "AppArmor"
 | 
			
		||||
 | 
			
		||||
	// owner: @danwinship
 | 
			
		||||
	// alpha: v1.27
 | 
			
		||||
	//
 | 
			
		||||
	// Enables dual-stack --node-ip in kubelet with external cloud providers
 | 
			
		||||
	CloudDualStackNodeIPs featuregate.Feature = "CloudDualStackNodeIPs"
 | 
			
		||||
 | 
			
		||||
	// owner: @szuecs
 | 
			
		||||
	// alpha: v1.12
 | 
			
		||||
	//
 | 
			
		||||
@@ -926,6 +932,8 @@ var defaultKubernetesFeatureGates = map[featuregate.Feature]featuregate.FeatureS
 | 
			
		||||
 | 
			
		||||
	AppArmor: {Default: true, PreRelease: featuregate.Beta},
 | 
			
		||||
 | 
			
		||||
	CloudDualStackNodeIPs: {Default: false, PreRelease: featuregate.Alpha},
 | 
			
		||||
 | 
			
		||||
	CPUCFSQuotaPeriod: {Default: false, PreRelease: featuregate.Alpha},
 | 
			
		||||
 | 
			
		||||
	CPUManager: {Default: true, PreRelease: featuregate.GA, LockToDefault: true}, // GA in 1.26
 | 
			
		||||
 
 | 
			
		||||
@@ -29,6 +29,7 @@ import (
 | 
			
		||||
	"k8s.io/apimachinery/pkg/types"
 | 
			
		||||
	utilruntime "k8s.io/apimachinery/pkg/util/runtime"
 | 
			
		||||
	"k8s.io/apimachinery/pkg/util/wait"
 | 
			
		||||
	utilfeature "k8s.io/apiserver/pkg/util/feature"
 | 
			
		||||
	coreinformers "k8s.io/client-go/informers/core/v1"
 | 
			
		||||
	clientset "k8s.io/client-go/kubernetes"
 | 
			
		||||
	"k8s.io/client-go/kubernetes/scheme"
 | 
			
		||||
@@ -43,6 +44,7 @@ import (
 | 
			
		||||
	cloudnodeutil "k8s.io/cloud-provider/node/helpers"
 | 
			
		||||
	controllersmetrics "k8s.io/component-base/metrics/prometheus/controllers"
 | 
			
		||||
	nodeutil "k8s.io/component-helpers/node/util"
 | 
			
		||||
	"k8s.io/controller-manager/pkg/features"
 | 
			
		||||
	"k8s.io/klog/v2"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
@@ -739,7 +741,7 @@ func updateNodeAddressesFromNodeIP(node *v1.Node, nodeAddresses []v1.NodeAddress
 | 
			
		||||
 | 
			
		||||
	providedNodeIP, exists := node.ObjectMeta.Annotations[cloudproviderapi.AnnotationAlphaProvidedIPAddr]
 | 
			
		||||
	if exists {
 | 
			
		||||
		nodeAddresses, err = cloudnodeutil.GetNodeAddressesFromNodeIP(providedNodeIP, nodeAddresses, false)
 | 
			
		||||
		nodeAddresses, err = cloudnodeutil.GetNodeAddressesFromNodeIP(providedNodeIP, nodeAddresses, utilfeature.DefaultFeatureGate.Enabled(features.CloudDualStackNodeIPs))
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return nodeAddresses, err
 | 
			
		||||
 
 | 
			
		||||
@@ -38,6 +38,7 @@ import (
 | 
			
		||||
	cloudprovider "k8s.io/cloud-provider"
 | 
			
		||||
	cloudproviderapi "k8s.io/cloud-provider/api"
 | 
			
		||||
	fakecloud "k8s.io/cloud-provider/fake"
 | 
			
		||||
	_ "k8s.io/controller-manager/pkg/features/register"
 | 
			
		||||
 | 
			
		||||
	"github.com/google/go-cmp/cmp"
 | 
			
		||||
	"github.com/stretchr/testify/assert"
 | 
			
		||||
 
 | 
			
		||||
@@ -32,6 +32,19 @@ const (
 | 
			
		||||
	// of code conflicts because changes are more likely to be scattered
 | 
			
		||||
	// across the file.
 | 
			
		||||
 | 
			
		||||
	// owner: @nckturner
 | 
			
		||||
	// kep:  http://kep.k8s.io/2699
 | 
			
		||||
	// alpha: v1.27
 | 
			
		||||
	// Enable webhook in cloud controller manager
 | 
			
		||||
	CloudControllerManagerWebhook featuregate.Feature = "CloudControllerManagerWebhook"
 | 
			
		||||
 | 
			
		||||
	// owner: @danwinship
 | 
			
		||||
	// alpha: v1.27
 | 
			
		||||
	//
 | 
			
		||||
	// Enables dual-stack values in the
 | 
			
		||||
	// `alpha.kubernetes.io/provided-node-ip` annotation
 | 
			
		||||
	CloudDualStackNodeIPs featuregate.Feature = "CloudDualStackNodeIPs"
 | 
			
		||||
 | 
			
		||||
	// owner: @alexanderConstantinescu
 | 
			
		||||
	// kep: http://kep.k8s.io/3458
 | 
			
		||||
	// beta: v1.27
 | 
			
		||||
@@ -39,12 +52,6 @@ const (
 | 
			
		||||
	// Enables less load balancer re-configurations by the service controller
 | 
			
		||||
	// (KCCM) as an effect of changing node state.
 | 
			
		||||
	StableLoadBalancerNodeSet featuregate.Feature = "StableLoadBalancerNodeSet"
 | 
			
		||||
 | 
			
		||||
	// owner: @nckturner
 | 
			
		||||
	// kep:  http://kep.k8s.io/2699
 | 
			
		||||
	// alpha: v1.27
 | 
			
		||||
	// Enable webhook in cloud controller manager
 | 
			
		||||
	CloudControllerManagerWebhook featuregate.Feature = "CloudControllerManagerWebhook"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func SetupCurrentKubernetesSpecificFeatureGates(featuregates featuregate.MutableFeatureGate) error {
 | 
			
		||||
@@ -54,6 +61,7 @@ func SetupCurrentKubernetesSpecificFeatureGates(featuregates featuregate.Mutable
 | 
			
		||||
// cloudPublicFeatureGates consists of cloud-specific feature keys.
 | 
			
		||||
// To add a new feature, define a key for it at k8s.io/api/pkg/features and add it here.
 | 
			
		||||
var cloudPublicFeatureGates = map[featuregate.Feature]featuregate.FeatureSpec{
 | 
			
		||||
	StableLoadBalancerNodeSet:     {Default: true, PreRelease: featuregate.Beta},
 | 
			
		||||
	CloudControllerManagerWebhook: {Default: false, PreRelease: featuregate.Alpha},
 | 
			
		||||
	CloudDualStackNodeIPs:         {Default: false, PreRelease: featuregate.Alpha},
 | 
			
		||||
	StableLoadBalancerNodeSet:     {Default: true, PreRelease: featuregate.Beta},
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user