Fix upstream/service collisions for multi-port Kubernetes Services #404
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.
What this PR does / why we need it:
Adds port to Kong service hostnames, in turn adding the port to the associated upstream name.
This prevents collisions and/or misdirected traffic when a Kubernetes Service exposes multiple ports, and Ingress rules use two or more of those ports. Previously, rules for different ports on the same Service would attempt to use the same Kong service/upstream hostname.
Which issue this PR fixes
Fixes #335
Special notes for your reviewer:
Tests cover Kong service generation only. I reviewed whether it would be useful to separately test
Parser.getUpstreams()
for this, but determined it unnecessary--we do not pass Kubernetes Services to it directly, but rather generate Kong services first and then get upstreams for each Kong service.