Merge pull request #123418 from rikatz/kep-1860-to-beta
Promote LoadBalancerIPMode to Beta
This commit is contained in:
		| @@ -876,9 +876,10 @@ const ( | |||||||
| 	// Enables In-Place Pod Vertical Scaling | 	// Enables In-Place Pod Vertical Scaling | ||||||
| 	InPlacePodVerticalScaling featuregate.Feature = "InPlacePodVerticalScaling" | 	InPlacePodVerticalScaling featuregate.Feature = "InPlacePodVerticalScaling" | ||||||
|  |  | ||||||
| 	// owner: @Sh4d1,@RyanAoh | 	// owner: @Sh4d1,@RyanAoh,@rikatz | ||||||
| 	// kep: http://kep.k8s.io/1860 | 	// kep: http://kep.k8s.io/1860 | ||||||
| 	// alpha: v1.29 | 	// alpha: v1.29 | ||||||
|  | 	// beta: v1.30 | ||||||
| 	// LoadBalancerIPMode enables the IPMode field in the LoadBalancerIngress status of a Service | 	// LoadBalancerIPMode enables the IPMode field in the LoadBalancerIngress status of a Service | ||||||
| 	LoadBalancerIPMode featuregate.Feature = "LoadBalancerIPMode" | 	LoadBalancerIPMode featuregate.Feature = "LoadBalancerIPMode" | ||||||
|  |  | ||||||
| @@ -1152,7 +1153,7 @@ var defaultKubernetesFeatureGates = map[featuregate.Feature]featuregate.FeatureS | |||||||
|  |  | ||||||
| 	PodIndexLabel: {Default: true, PreRelease: featuregate.Beta}, | 	PodIndexLabel: {Default: true, PreRelease: featuregate.Beta}, | ||||||
|  |  | ||||||
| 	LoadBalancerIPMode: {Default: false, PreRelease: featuregate.Alpha}, | 	LoadBalancerIPMode: {Default: true, PreRelease: featuregate.Beta}, | ||||||
|  |  | ||||||
| 	ImageMaximumGCAge: {Default: false, PreRelease: featuregate.Alpha}, | 	ImageMaximumGCAge: {Default: false, PreRelease: featuregate.Alpha}, | ||||||
|  |  | ||||||
|   | |||||||
| @@ -11933,8 +11933,10 @@ func TestUpdateServiceLoadBalancerStatus(t *testing.T) { | |||||||
| 			defer storage.Delete(ctx, svc.Name, rest.ValidateAllObjectFunc, &metav1.DeleteOptions{}) | 			defer storage.Delete(ctx, svc.Name, rest.ValidateAllObjectFunc, &metav1.DeleteOptions{}) | ||||||
|  |  | ||||||
| 			// prepare status | 			// prepare status | ||||||
| 			if loadbalancerIPModeInUse(tc.statusBeforeUpdate) { | 			// Test here is negative, because starting with v1.30 the feature gate is enabled by default, so we should | ||||||
| 				defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.LoadBalancerIPMode, true)() | 			// now disable it to do the proper test | ||||||
|  | 			if !loadbalancerIPModeInUse(tc.statusBeforeUpdate) { | ||||||
|  | 				defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.LoadBalancerIPMode, false)() | ||||||
| 			} | 			} | ||||||
| 			oldSvc := obj.(*api.Service).DeepCopy() | 			oldSvc := obj.(*api.Service).DeepCopy() | ||||||
| 			oldSvc.Status = tc.statusBeforeUpdate | 			oldSvc.Status = tc.statusBeforeUpdate | ||||||
|   | |||||||
| @@ -32,6 +32,7 @@ import ( | |||||||
| 	_ "k8s.io/kubernetes/pkg/apis/core/install" | 	_ "k8s.io/kubernetes/pkg/apis/core/install" | ||||||
| 	"k8s.io/kubernetes/pkg/features" | 	"k8s.io/kubernetes/pkg/features" | ||||||
| 	utilpointer "k8s.io/utils/pointer" | 	utilpointer "k8s.io/utils/pointer" | ||||||
|  | 	"k8s.io/utils/ptr" | ||||||
| ) | ) | ||||||
|  |  | ||||||
| func TestCheckGeneratedNameError(t *testing.T) { | func TestCheckGeneratedNameError(t *testing.T) { | ||||||
| @@ -115,7 +116,10 @@ func TestServiceStatusStrategy(t *testing.T) { | |||||||
| 	newService.Status = api.ServiceStatus{ | 	newService.Status = api.ServiceStatus{ | ||||||
| 		LoadBalancer: api.LoadBalancerStatus{ | 		LoadBalancer: api.LoadBalancerStatus{ | ||||||
| 			Ingress: []api.LoadBalancerIngress{ | 			Ingress: []api.LoadBalancerIngress{ | ||||||
| 				{IP: "127.0.0.2"}, | 				{ | ||||||
|  | 					IP:     "127.0.0.2", | ||||||
|  | 					IPMode: ptr.To(api.LoadBalancerIPModeVIP), | ||||||
|  | 				}, | ||||||
| 			}, | 			}, | ||||||
| 		}, | 		}, | ||||||
| 	} | 	} | ||||||
|   | |||||||
| @@ -48,7 +48,7 @@ const resetFieldsNamespace = "reset-fields-namespace" | |||||||
| var resetFieldsStatusData = map[schema.GroupVersionResource]string{ | var resetFieldsStatusData = map[schema.GroupVersionResource]string{ | ||||||
| 	gvr("", "v1", "persistentvolumes"):                              `{"status": {"message": "hello2"}}`, | 	gvr("", "v1", "persistentvolumes"):                              `{"status": {"message": "hello2"}}`, | ||||||
| 	gvr("", "v1", "resourcequotas"):                                 `{"status": {"used": {"cpu": "25M"}}}`, | 	gvr("", "v1", "resourcequotas"):                                 `{"status": {"used": {"cpu": "25M"}}}`, | ||||||
| 	gvr("", "v1", "services"):                                       `{"status": {"loadBalancer": {"ingress": [{"ip": "127.0.0.2"}]}}}`, | 	gvr("", "v1", "services"):                                       `{"status": {"loadBalancer": {"ingress": [{"ip": "127.0.0.2", "ipMode": "VIP"}]}}}`, | ||||||
| 	gvr("extensions", "v1beta1", "ingresses"):                       `{"status": {"loadBalancer": {"ingress": [{"ip": "127.0.0.2"}]}}}`, | 	gvr("extensions", "v1beta1", "ingresses"):                       `{"status": {"loadBalancer": {"ingress": [{"ip": "127.0.0.2"}]}}}`, | ||||||
| 	gvr("networking.k8s.io", "v1beta1", "ingresses"):                `{"status": {"loadBalancer": {"ingress": [{"ip": "127.0.0.2"}]}}}`, | 	gvr("networking.k8s.io", "v1beta1", "ingresses"):                `{"status": {"loadBalancer": {"ingress": [{"ip": "127.0.0.2"}]}}}`, | ||||||
| 	gvr("networking.k8s.io", "v1", "ingresses"):                     `{"status": {"loadBalancer": {"ingress": [{"ip": "127.0.0.2"}]}}}`, | 	gvr("networking.k8s.io", "v1", "ingresses"):                     `{"status": {"loadBalancer": {"ingress": [{"ip": "127.0.0.2"}]}}}`, | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Kubernetes Prow Robot
					Kubernetes Prow Robot