Bug 1820075 - Empty Address field in Ingress resource
Summary: Empty Address field in Ingress resource
Alias: None
Product: OpenShift Container Platform
Classification: Red Hat
Component: Networking
Version: 4.3.0
Hardware: Unspecified
OS: Unspecified
Target Milestone: ---
: 4.6.0
Assignee: Miciah Dashiel Butler Masters
QA Contact: Arvind iyengar
Depends On:
TreeView+ depends on / blocked
Reported: 2020-04-02 08:23 UTC by Maria Alonso
Modified: 2023-12-15 17:36 UTC (History)
6 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Last Closed: 2020-10-27 15:57:43 UTC
Target Upstream Version:

Attachments (Terms of Use)

System ID Private Priority Status Summary Last Updated
Github openshift cluster-openshift-controller-manager-operator pull 169 0 None closed Bug 1820075: Allow ingress-to-route to update ingress status 2021-02-15 04:15:09 UTC
Github openshift openshift-apiserver pull 129 0 None closed Bug 1820075: Delete policy for ingress-to-route-controller 2021-02-15 04:15:10 UTC
Github openshift openshift-controller-manager pull 130 0 None closed Bug 1820075: Reflect route status to ingress status 2021-02-15 04:15:09 UTC
Red Hat Product Errata RHBA-2020:4196 0 None None None 2020-10-27 15:58:12 UTC

Description Maria Alonso 2020-04-02 08:23:49 UTC
Description of problem:

 When creating an Ingress the 'Address' field is empty

Version-Release number of selected component (if applicable):


How reproducible:


Steps to Reproduce:
1. Create an ingress resource
2. oc get ingress

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:

Comment 1 Dan Mace 2020-04-06 12:20:09 UTC
Please provide a must-gather from the cluster where this problem is occurring.

Comment 3 Dan Mace 2020-04-13 13:00:50 UTC
Where in the provided must-gather output is the specific ingress resource the report is referring to?

Comment 4 Maria Alonso 2020-04-14 13:08:18 UTC
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
	  name: ingress1
	  namespace: test-ingress
	    - host: ingress-django-psql-example-test-ingress.apps.malonso-ocp43.ocp4.xyz
		  - path: /
		      serviceName: django-psql-example
		      servicePort: 8080


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
	Default backend:  default-http-backend:80 (<none>)
	  Host                                                                  Path  Backends
	  ----                                                                  ----  --------
		                                                                /   django-psql-example:8080 (
	Events:  <none>

Please let me know if you need more information



Comment 5 Dan Mace 2020-04-15 14:39:22 UTC

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

Comment 6 Maria Alonso 2020-04-22 21:38:53 UTC
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   <none>        8080/TCP   55m
	postgresql            ClusterIP   <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
	  creationTimestamp: "2020-04-22T21:30:03Z"
	  name: ingress1-b6rch
	  namespace: test-ingress
	  - 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
	  host: ingress-django-psql-example-test-ingress.apps.malonso-ocp42.ocp4.xyz
	  path: /
	    targetPort: 8080
	    kind: Service
	    name: django-psql-example
	    weight: 100
	  wildcardPolicy: None
	  - 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.



Comment 7 Miciah Dashiel Butler Masters 2020-04-29 13:17:50 UTC
Related Jira ticket: https://issues.redhat.com/browse/NE-27

Comment 8 Andrew McDermott 2020-05-19 14:58:52 UTC
Moving to 4.6.

Comment 9 Miciah Dashiel Butler Masters 2020-06-18 19:35:55 UTC
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.

Comment 10 Miciah Dashiel Butler Masters 2020-07-09 05:03:17 UTC
Work on this issue was preëmpted by other work.  I'll plan to work on it this upcoming sprint.

Comment 11 Miciah Dashiel Butler Masters 2020-07-30 08:28:50 UTC
We'll try to get to this issue this upcoming sprint.

Comment 12 Miciah Dashiel Butler Masters 2020-08-21 05:04:56 UTC
A fix is proposed but needs review.  We'll try to get it reviewed and merged this upcoming sprint.

Comment 13 Andrew McDermott 2020-09-10 11:58:19 UTC
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.

Comment 14 Miciah Dashiel Butler Masters 2020-09-11 19:24:33 UTC
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.

Comment 16 Arvind iyengar 2020-09-29 08:32:43 UTC
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

Comment 19 errata-xmlrpc 2020-10-27 15:57:43 UTC
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.


Note You need to log in before you can comment on or make changes to this bug.