Merge pull request #4180 from aledbf/externalname
Service type=ExternalName can be defined with ports
This commit is contained in:
commit
ecce3fd7b1
1 changed files with 17 additions and 16 deletions
|
@ -850,24 +850,9 @@ func (n *NGINXController) serviceEndpoints(svcKey, backendPort string) ([]ingres
|
||||||
}
|
}
|
||||||
|
|
||||||
klog.V(3).Infof("Obtaining ports information for Service %q", svcKey)
|
klog.V(3).Infof("Obtaining ports information for Service %q", svcKey)
|
||||||
for _, servicePort := range svc.Spec.Ports {
|
|
||||||
// targetPort could be a string, use either the port name or number (int)
|
|
||||||
if strconv.Itoa(int(servicePort.Port)) == backendPort ||
|
|
||||||
servicePort.TargetPort.String() == backendPort ||
|
|
||||||
servicePort.Name == backendPort {
|
|
||||||
|
|
||||||
endps := getEndpoints(svc, &servicePort, apiv1.ProtocolTCP, n.store.GetServiceEndpoints)
|
|
||||||
if len(endps) == 0 {
|
|
||||||
klog.Warningf("Service %q does not have any active Endpoint.", svcKey)
|
|
||||||
}
|
|
||||||
|
|
||||||
upstreams = append(upstreams, endps...)
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Ingress with an ExternalName Service and no port defined for that Service
|
// Ingress with an ExternalName Service and no port defined for that Service
|
||||||
if len(svc.Spec.Ports) == 0 && svc.Spec.Type == apiv1.ServiceTypeExternalName {
|
if svc.Spec.Type == apiv1.ServiceTypeExternalName {
|
||||||
externalPort, err := strconv.Atoi(backendPort)
|
externalPort, err := strconv.Atoi(backendPort)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
klog.Warningf("Only numeric ports are allowed in ExternalName Services: %q is not a valid port number.", backendPort)
|
klog.Warningf("Only numeric ports are allowed in ExternalName Services: %q is not a valid port number.", backendPort)
|
||||||
|
@ -889,6 +874,22 @@ func (n *NGINXController) serviceEndpoints(svcKey, backendPort string) ([]ingres
|
||||||
return upstreams, nil
|
return upstreams, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for _, servicePort := range svc.Spec.Ports {
|
||||||
|
// targetPort could be a string, use either the port name or number (int)
|
||||||
|
if strconv.Itoa(int(servicePort.Port)) == backendPort ||
|
||||||
|
servicePort.TargetPort.String() == backendPort ||
|
||||||
|
servicePort.Name == backendPort {
|
||||||
|
|
||||||
|
endps := getEndpoints(svc, &servicePort, apiv1.ProtocolTCP, n.store.GetServiceEndpoints)
|
||||||
|
if len(endps) == 0 {
|
||||||
|
klog.Warningf("Service %q does not have any active Endpoint.", svcKey)
|
||||||
|
}
|
||||||
|
|
||||||
|
upstreams = append(upstreams, endps...)
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return upstreams, nil
|
return upstreams, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue