Commit d2252752 authored by shashidharatd's avatar shashidharatd

Fix federated service reconcilation issue due to addition of…

Fix federated service reconcilation issue due to addition of ExternalTrafficPolicy field to v1.Service
parent 3227f441
......@@ -664,6 +664,11 @@ func (s *ServiceController) getOperationsToPerformOnCluster(cluster *v1beta1.Clu
}
}
}
// If ExternalTrafficPolicy is not set in federated service, use the ExternalTrafficPolicy
// defaulted to in federated cluster.
if desiredService.Spec.ExternalTrafficPolicy == v1.ServiceExternalTrafficPolicyType("") {
desiredService.Spec.ExternalTrafficPolicy = clusterService.Spec.ExternalTrafficPolicy
}
// Update existing service, if needed.
if !Equivalent(desiredService, clusterService) {
......
......@@ -379,10 +379,13 @@ func deleteServiceShard(c *fedframework.Cluster, namespace, service string) erro
// equivalent returns true if the two services are equivalent. Fields which are expected to differ between
// federated services and the underlying cluster services (e.g. ClusterIP, NodePort) are ignored.
func equivalent(federationService, clusterService v1.Service) bool {
clusterService.Spec.ClusterIP = federationService.Spec.ClusterIP
for i := range clusterService.Spec.Ports {
clusterService.Spec.Ports[i].NodePort = federationService.Spec.Ports[i].NodePort
func equivalent(clusterService, federationService v1.Service) bool {
federationService.Spec.ClusterIP = clusterService.Spec.ClusterIP
for i := range federationService.Spec.Ports {
federationService.Spec.Ports[i].NodePort = clusterService.Spec.Ports[i].NodePort
}
if federationService.Spec.ExternalTrafficPolicy == v1.ServiceExternalTrafficPolicyType("") {
federationService.Spec.ExternalTrafficPolicy = clusterService.Spec.ExternalTrafficPolicy
}
if federationService.Name != clusterService.Name || federationService.Namespace != clusterService.Namespace {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment