mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-22 11:21:47 +00:00
Fix federated service reconcilation issue due to addition of ExternalTrafficPolicy field to v1.Service
This commit is contained in:
parent
3227f44157
commit
d22527522f
@ -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 {
|
||||
|
Loading…
Reference in New Issue
Block a user