Skip to content

Commit 6b5add7

Browse files
committed
fix: r
Signed-off-by: ashing <[email protected]>
1 parent 822d167 commit 6b5add7

File tree

3 files changed

+31
-5
lines changed

3 files changed

+31
-5
lines changed

internal/controller/ingress_controller.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -359,6 +359,11 @@ func (r *IngressReconciler) processBackendService(ctx context.Context, tctx *pro
359359
Name: backendService.Name,
360360
}] = endpointSliceList.Items
361361

362+
tctx.Services[client.ObjectKey{
363+
Namespace: namespace,
364+
Name: backendService.Name,
365+
}] = &service
366+
362367
return nil
363368
}
364369

internal/provider/adc/translator/ingress.go

Lines changed: 25 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -117,11 +117,31 @@ func (t *Translator) TranslateIngress(tctx *provider.TranslateContext, obj *netw
117117
} else if backendService.Port.Name != "" {
118118
servicePortName = backendService.Port.Name
119119
}
120-
_ = servicePort
120+
121+
getService := tctx.Services[types.NamespacedName{
122+
Namespace: obj.Namespace,
123+
Name: backendService.Name,
124+
}]
125+
if getService == nil {
126+
continue
127+
}
128+
129+
var getServicePort *corev1.ServicePort
130+
for _, port := range getService.Spec.Ports {
131+
port := port
132+
if servicePort > 0 && port.Port == servicePort {
133+
getServicePort = &port
134+
break
135+
}
136+
if servicePortName != "" && port.Name == servicePortName {
137+
getServicePort = &port
138+
break
139+
}
140+
}
121141

122142
// convert the EndpointSlice to upstream nodes
123143
if len(endpointSlices) > 0 {
124-
upstream.Nodes = t.translateEndpointSliceForIngress(1, endpointSlices, servicePortName)
144+
upstream.Nodes = t.translateEndpointSliceForIngress(1, endpointSlices, getServicePort)
125145
}
126146

127147
// if there is no upstream node, create a placeholder node
@@ -171,16 +191,16 @@ func (t *Translator) TranslateIngress(tctx *provider.TranslateContext, obj *netw
171191
}
172192

173193
// translateEndpointSliceForIngress create upstream nodes from EndpointSlice
174-
func (t *Translator) translateEndpointSliceForIngress(weight int, endpointSlices []discoveryv1.EndpointSlice, portName string) adctypes.UpstreamNodes {
194+
func (t *Translator) translateEndpointSliceForIngress(weight int, endpointSlices []discoveryv1.EndpointSlice, servciePort *corev1.ServicePort) adctypes.UpstreamNodes {
175195
var nodes adctypes.UpstreamNodes
176196
if len(endpointSlices) == 0 {
177197
return nodes
178198
}
179199

180200
for _, endpointSlice := range endpointSlices {
181201
for _, port := range endpointSlice.Ports {
182-
// if the port name is specified, only use the matching port
183-
if portName != "" && *port.Name != portName {
202+
// if the port number is specified, only use the matching port
203+
if servciePort != nil && *port.Name != servciePort.Name {
184204
continue
185205
}
186206
for _, endpoint := range endpointSlice.Endpoints {

internal/provider/provider.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ type TranslateContext struct {
2424
EndpointSlices map[types.NamespacedName][]discoveryv1.EndpointSlice
2525
Secrets map[types.NamespacedName]*corev1.Secret
2626
PluginConfigs map[types.NamespacedName]*v1alpha1.PluginConfig
27+
Services map[types.NamespacedName]*corev1.Service
2728
}
2829

2930
func NewDefaultTranslateContext() *TranslateContext {

0 commit comments

Comments
 (0)