Resolve host collisions in VirtualServer and Ingresses #1178
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Proposed changes
Previously, if a user deployed two Ingress resources with the same host, the Ingress controller would generate two NGINX servers with the same server_name. After the Ingress Controller reloaded NGINX, one virtual server would win that host, and the other one would be ignored by NGINX. No error was reported to the user in the events/status of the Ingress resources. In the IC logs, NGINX workers would report an error similar to this one
2020/07/31 22:23:57 [warn] 35#35: conflicting server name "cafe.example.com" on 0.0.0.0:80, ignored
The same problem occurred if a user deployed two VirtualServers with the same host or an Ingress and a VirtualServer with the same host.
This PR solves this problem: