My issue: To connect service on another namespace OpenShift
How I encountered the problem: Deployed Nginx Ingress Operator in OpenShift and configured ingress controller in the namespace (nginx-ingress) and trying to create ingress rule to connect service is running on another namespace (migration). I am getting 502 error.
Solutions I’ve tried: Tried various option.
My config:
Ingress object
kind: Ingress
apiVersion: networking.k8s.io/v1
metadata:
name: infra-dev-nginx-ingress
namespace: nginx-ingress
labels:
app: nginx-ingress
spec:
ingressClassName: nginx
rules:
- host: infra-dev-3es.nz
http:
paths:- path: /app
pathType: Prefix
backend:
service:
name: svc-externalname-app-nginx-ingress
port:
number: 8090
tls:
- path: /app
- hosts:
- infra-dev-3es.nz
secretName: tls-secret
- infra-dev-3es.nz
created external service on nginx-ingress namespace
apiVersion: v1
kind: Service
metadata:
name: svc-externalname-app-nginx-ingress
namespace: nginx-ingress
spec:
externalName: app-mockserver.migration.svc.cluster.local # running HTTP
ports:
- port: 8090
protocol: TCP
targetPort: 8090
sessionAffinity: None
type: ExternalName
created service on target (migration) namespace
apiVersion: v1
kind: Service
metadata:
name: app-mockserver
namespace: migration
spec:
internalTrafficPolicy: Cluster
ipFamilies:
- IPv4
ipFamilyPolicy: SingleStack
ports: - name: port-8090-8090
port: 8090
protocol: TCP
targetPort: 8090
selector:
app: app-mockserver
sessionAffinity: None
type: ClusterIP
ERROR
2025/03/05 21:35:51 [error] 799#799: *512 connect() failed (111: Connection refused) while connecting to upstream, client: 10.xxx.xx.xx, server: infra-dev-3es.nz, request: “GET /app HTTP/1.1”, upstream: “http://127.0.0.1:8181/app”, host: “infra-dev-3es.nz”
10.xxx.xx.xx - - [05/Mar/2025:21:35:51 +0000] “GET /app HTTP/1.1” 502 157 “-” “curl/8.5.0” “-”
Not sure where the upstream IP comes from?
Please let me know if I am doing anything wrong?