code: func externalTrafficPolicyUpdate(oldService, service *api.Service) {
  	var neededExternalTraffic, needsExternalTraffic bool
  	if oldService.Spec.Type == api.ServiceTypeNodePort ||
  		oldService.Spec.Type == api.ServiceTypeLoadBalancer {
  		neededExternalTraffic = true
  	}
  	if service.Spec.Type == api.ServiceTypeNodePort ||
  		service.Spec.Type == api.ServiceTypeLoadBalancer {
  		needsExternalTraffic = true
  	}
  	if neededExternalTraffic && !needsExternalTraffic {
  		// Clear ExternalTrafficPolicy to prevent confusion from ineffective field.
  		service.Spec.ExternalTrafficPolicy = api.ServiceExternalTrafficPolicyType("")
  	}
  }
docs: // externalTrafficPolicyUpdate adjusts ExternalTrafficPolicy during service update if needed.
  // It is necessary because we default ExternalTrafficPolicy field to different values.
  // (NodePort / LoadBalancer: default is Global; Other types: default is empty.)