Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.

Bug 2108708

Summary: Ingress operator creates a "default" ingresscontroller on HyperShift
Product: OpenShift Container Platform Reporter: Miciah Dashiel Butler Masters <mmasters>
Component: NetworkingAssignee: David Vossel <dvossel>
Networking sub component: router QA Contact: Hongan Li <hongli>
Status: CLOSED ERRATA Docs Contact:
Severity: medium    
Priority: medium CC: mmasters
Version: 4.12   
Target Milestone: ---   
Target Release: 4.12.0   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2023-01-17 19:53:06 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Miciah Dashiel Butler Masters 2022-07-19 18:29:22 UTC
Description of problem:

The ingress operator creates a "default" ingresscontroller when one does not exist.  When using an external control-plane (as in the case of HyperShift or ROCS), the "default" ingresscontroller is created through other means, so the ingress operator should not create it.  


OpenShift release version:

OpenShift 4.12 and earlier, when using HyperShift.


Cluster Platform:

All supported platforms.


How reproducible:

Consistently.


Steps to Reproduce (in detail):
1. Install a new cluster with infrastructures.config.openshift.io/cluster configured with status.controlPlaneTopology set to "External".
2. Delete the default ingresscontroller: oc -n openshift-ingress-operator delete ingresscontrollers/default


Actual results:

The ingress operator creates a default ingresscontroller.  If the user deletes the default ingresscontroller, the operator recreates it.  


Expected results:

The ingress operator should not create or recreate the "default" ingresscontroller when  controlPlaneTopology is set to "External".


Impact of the problem:

The ingress operator and HyperShift controllers race to create the ingresscontroller.  If the ingress operator wins, then the default ingresscontroller might not be configured correctly.

Comment 3 Hongan Li 2022-09-06 10:54:55 UTC
verified with 4.12.0-0.nightly-2022-09-05-090751 and passed.

$ oc get infrastructure cluster -oyaml
<---snip--->
status:
  apiServerInternalURI: https://a1262226f7c4749c98d6acee2600b144-4a6cfe231a09a8e7.elb.us-east-2.amazonaws.com:6443
  apiServerURL: https://a1262226f7c4749c98d6acee2600b144-4a6cfe231a09a8e7.elb.us-east-2.amazonaws.com:6443
  controlPlaneTopology: External
  etcdDiscoveryDomain: hypershift-ci-17665.qe.devcluster.openshift.com
  infrastructureName: hypershift-ci-17665
  infrastructureTopology: SingleReplica

## check the ingress-operator log
$ oc -n clusters-hypershift-ci-17665 logs ingress-operator-5ddf98d8f-pg6v9 -c ingress-operator | grep skipp
2022-09-06T09:31:46.040Z	INFO	operator.init	ingress-operator/start.go:197	skipping default ingress controller creation

Comment 6 errata-xmlrpc 2023-01-17 19:53:06 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 (Moderate: OpenShift Container Platform 4.12.0 bug fix and security update), 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/RHSA-2022:7399