diff --git a/pkg/api/v1/zz_generated.defaults.go b/pkg/api/v1/zz_generated.defaults.go index 121b39185c1..31e79506692 100644 --- a/pkg/api/v1/zz_generated.defaults.go +++ b/pkg/api/v1/zz_generated.defaults.go @@ -620,7 +620,7 @@ func SetObjectDefaults_SecretList(in *SecretList) { } func SetObjectDefaults_Service(in *Service) { - SetDefaults_ServiceSpec(&in.Spec) + SetDefaults_Service(in) } func SetObjectDefaults_ServiceList(in *ServiceList) { diff --git a/staging/src/k8s.io/client-go/pkg/api/v1/defaults.go b/staging/src/k8s.io/client-go/pkg/api/v1/defaults.go index 8324ebd50ab..47f610df18f 100644 --- a/staging/src/k8s.io/client-go/pkg/api/v1/defaults.go +++ b/staging/src/k8s.io/client-go/pkg/api/v1/defaults.go @@ -96,15 +96,15 @@ func SetDefaults_Container(obj *Container) { obj.TerminationMessagePolicy = TerminationMessageReadFile } } -func SetDefaults_ServiceSpec(obj *ServiceSpec) { - if obj.SessionAffinity == "" { - obj.SessionAffinity = ServiceAffinityNone +func SetDefaults_Service(obj *Service) { + if obj.Spec.SessionAffinity == "" { + obj.Spec.SessionAffinity = ServiceAffinityNone } - if obj.Type == "" { - obj.Type = ServiceTypeClusterIP + if obj.Spec.Type == "" { + obj.Spec.Type = ServiceTypeClusterIP } - for i := range obj.Ports { - sp := &obj.Ports[i] + for i := range obj.Spec.Ports { + sp := &obj.Spec.Ports[i] if sp.Protocol == "" { sp.Protocol = ProtocolTCP } @@ -112,6 +112,16 @@ func SetDefaults_ServiceSpec(obj *ServiceSpec) { sp.TargetPort = intstr.FromInt(int(sp.Port)) } } + // Defaults ExternalTrafficPolicy field for NodePort / LoadBalancer service + // to Global for consistency. + if _, ok := obj.Annotations[BetaAnnotationExternalTraffic]; ok { + // Don't default this field if beta annotation exists. + return + } else if (obj.Spec.Type == ServiceTypeNodePort || + obj.Spec.Type == ServiceTypeLoadBalancer) && + obj.Spec.ExternalTrafficPolicy == "" { + obj.Spec.ExternalTrafficPolicy = ServiceExternalTrafficPolicyTypeGlobal + } } func SetDefaults_Pod(obj *Pod) { // If limits are specified, but requests are not, default requests to limits diff --git a/staging/src/k8s.io/client-go/pkg/api/v1/zz_generated.defaults.go b/staging/src/k8s.io/client-go/pkg/api/v1/zz_generated.defaults.go index 121b39185c1..31e79506692 100644 --- a/staging/src/k8s.io/client-go/pkg/api/v1/zz_generated.defaults.go +++ b/staging/src/k8s.io/client-go/pkg/api/v1/zz_generated.defaults.go @@ -620,7 +620,7 @@ func SetObjectDefaults_SecretList(in *SecretList) { } func SetObjectDefaults_Service(in *Service) { - SetDefaults_ServiceSpec(&in.Spec) + SetDefaults_Service(in) } func SetObjectDefaults_ServiceList(in *ServiceList) {