Description of problem: When creating an Ingress the 'Address' field is empty Version-Release number of selected component (if applicable): 4.x How reproducible: Always Steps to Reproduce: 1. Create an ingress resource 2. oc get ingress 3. Actual results: 'Address' field is empty Expected results: Address field to be filled with the IP allocated by the Ingress controller to satisfy this Ingress Additional info:
Please provide a must-gather from the cluster where this problem is occurring.
Where in the provided must-gather output is the specific ingress resource the report is referring to?
Hi Dan, To reproduce this you can follow these steps: 1 - create test project and test app $ oc new-project test-ingress $ oc new-app django-psql-example 2 - create ingress resource oc create -f << EOF kind: Ingress apiVersion: networking.k8s.io/v1beta1 metadata: name: ingress1 namespace: test-ingress spec: rules: - host: ingress-django-psql-example-test-ingress.apps.malonso-ocp43.ocp4.xyz http: paths: - path: / backend: serviceName: django-psql-example servicePort: 8080 EOF 3 - Check created ingress1 ingress resource, you can see that 'Address' field is empty: $ oc get ingress NAME HOSTS ADDRESS PORTS AGE ingress1 ingress-django-psql-example-test-ingress.apps.malonso-ocp43.ocp4.xyz 80 91s $ oc describe ingress ingress1 Name: ingress1 Namespace: test-ingress Address: Default backend: default-http-backend:80 (<none>) Rules: Host Path Backends ---- ---- -------- ingress-django-psql-example-test-ingress.apps.malonso-ocp43.ocp4.xyz / django-psql-example:8080 (10.129.2.13:8080) Annotations: Events: <none> Please let me know if you need more information Regards María
María, Something I forgot to ask: despite the missing status information on the Ingress resource, does the Ingress actually work? The Kubernetes Ingress resource is implemented in OpenShift by a Route resource created to match (as closely as possible) the Ingress resource. In your example, I would expect a corresponding Route named something like "test-ingress/ingress1-<hash>". If your Ingress is actually broken in this case, can you also please provide the YAML of that Route resource, and also the YAML of the service to which your Ingress refers (test-ingress/django-psql-example)? OpenShift doesn't currently reflect the underlying Route status back to the Ingress resource. This has come up before in another related context[1]. Although I think we agree that OpenShift _should_ reflect the status back to the Ingress, it never has (even since v3) and so I'm not sure if we'll be prioritizing the change any time soon. But, I do want to clarify the problem (Route broken vs. Ingress resource not reflecting status) to help us prioritize. I hope that all makes sense. Thanks! [1] https://bugzilla.redhat.com/show_bug.cgi?id=1565069
Hi Dan, Sorry for the delay. Yes, the Ingress works, but 'Address' field is empty: $ oc create -f - << EOF > kind: Ingress > apiVersion: networking.k8s.io/v1beta1 > metadata: > name: ingress1 > namespace: test-ingress > spec: > rules: > - host: ingress-django-psql-example-test-ingress.apps.malonso-ocp42.ocp4.xyz > http: > paths: > - path: / > backend: > serviceName: django-psql-example > servicePort: 8080 > EOF $ oc get route NAME HOST/PORT PATH SERVICES PORT TERMINATION WILDCARD django-psql-example django-psql-example-test-ingress.apps.malonso-ocp42.ocp4.xyz django-psql-example <all> None ingress1-b6rch ingress-django-psql-example-test-ingress.apps.malonso-ocp42.ocp4.xyz / django-psql-example 8080 None $ oc get svc NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE django-psql-example ClusterIP 172.30.152.239 <none> 8080/TCP 55m postgresql ClusterIP 172.30.222.104 <none> 5432/TCP 55m $ oc get ingress NAME HOSTS ADDRESS PORTS AGE ingress1 ingress-django-psql-example-test-ingress.apps.malonso-ocp42.ocp4.xyz 80 3m41s $ oc get route ingress1-b6rch -o yaml apiVersion: route.openshift.io/v1 kind: Route metadata: creationTimestamp: "2020-04-22T21:30:03Z" name: ingress1-b6rch namespace: test-ingress ownerReferences: - apiVersion: extensions/v1beta1 controller: true kind: Ingress name: ingress1 uid: fd5ee979-f8bb-4329-b390-4905d2d2ed07 resourceVersion: "1028822" selfLink: /apis/route.openshift.io/v1/namespaces/test-ingress/routes/ingress1-b6rch uid: 082e08fc-199c-4eb5-be80-4eac216a9737 spec: host: ingress-django-psql-example-test-ingress.apps.malonso-ocp42.ocp4.xyz path: / port: targetPort: 8080 to: kind: Service name: django-psql-example weight: 100 wildcardPolicy: None status: ingress: - conditions: - lastTransitionTime: "2020-04-22T21:30:03Z" status: "True" type: Admitted host: ingress-django-psql-example-test-ingress.apps.malonso-ocp42.ocp4.xyz routerCanonicalHostname: apps.malonso-ocp42.ocp4.xyz routerName: default wildcardPolicy: None Please let me know if you need further information. Regards María
Related Jira ticket: https://issues.redhat.com/browse/NE-27
Moving to 4.6.
We have been working on a fix but were not able to get it finished this sprint. We will fix the issue in the upcoming sprint.
Work on this issue was preëmpted by other work. I'll plan to work on it this upcoming sprint.
We'll try to get to this issue this upcoming sprint.
A fix is proposed but needs review. We'll try to get it reviewed and merged this upcoming sprint.
I’m adding UpcomingSprint, because I was occupied by fixing bugs with higher priority/severity, developing new features with higher priority, or developing new features to improve stability at a macro level. I will revisit this bug next sprint.
The propose fix is blocked on sorting out RBAC in https://github.com/openshift/cluster-openshift-controller-manager-operator/pull/169. We'll continue to work on this in the upcoming sprint.
Tested in "4.6.0-0.nightly-2020-09-28-212756" release version. With this payload, it is observed that the "address" field is now getting populated with the Router domain details: ------ $ oc get clusterversion NAME VERSION AVAILABLE PROGRESSING SINCE STATUS version 4.6.0-0.nightly-2020-09-28-212756 True False 4h13m Cluster version is 4.6.0-0.nightly-2020-09-28-212756 $ oc get ingress NAME CLASS HOSTS ADDRESS PORTS AGE ingress-route <none> service-unsecure-test1.internalapps.aiyengar-oc46-2909.qe.devcluster.openshift.com apps.aiyengar-oc46-2909.qe.devcluster.openshift.com,internalapps.aiyengar-oc46-2909.qe.devcluster.openshift.com 80 133m ------
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory (OpenShift Container Platform 4.6 GA Images), and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHBA-2020:4196