-
Notifications
You must be signed in to change notification settings - Fork 883
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(trafficrouting): support ingresses with multiple service ports in TrafficRouting.ALB spec #3551
base: master
Are you sure you want to change the base?
feat(trafficrouting): support ingresses with multiple service ports in TrafficRouting.ALB spec #3551
Conversation
226d0fe
to
db15088
Compare
Go Published Test Results2 205 tests 2 205 ✅ 2m 58s ⏱️ Results for commit 1554b99. ♻️ This comment has been updated with latest results. |
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #3551 +/- ##
==========================================
+ Coverage 83.88% 83.99% +0.10%
==========================================
Files 163 163
Lines 18560 18609 +49
==========================================
+ Hits 15569 15630 +61
+ Misses 2119 2112 -7
+ Partials 872 867 -5 ☔ View full report in Codecov by Sentry. |
E2E Tests Published Test Results 4 files 4 suites 3h 24m 52s ⏱️ For more details on these failures, see this check. Results for commit 1554b99. ♻️ This comment has been updated with latest results. |
4b6e4b1
to
ac50687
Compare
ac50687
to
7dcf17c
Compare
Quality Gate passedIssues Measures |
Great thanks @ArenSH . We were waiting for this feature for a long time to use it in our 30+ services. Possibility to use multi-port will unblock onboarding of ArgoRollouts for our system. Hope to see these feature in next ArgoRollout release :) |
7dcf17c
to
8d54526
Compare
Quality Gate passedIssues Measures |
94c9ac9
to
8b93239
Compare
8b93239
to
c7a9095
Compare
c7a9095
to
1554b99
Compare
1554b99
to
e861faf
Compare
Published E2E Test Results 4 files 4 suites 3h 10m 3s ⏱️ For more details on these failures, see this check. Results for commit c00419a. ♻️ This comment has been updated with latest results. |
Published Unit Test Results2 327 tests 2 327 ✅ 3m 3s ⏱️ Results for commit c00419a. ♻️ This comment has been updated with latest results. |
Is anyone reviewing this PR? We are interested in the functionality and would love to see it included as soon as possible 🙏 |
bf024a7
to
0179f8b
Compare
Quality Gate passedIssues Measures |
@zachaller @alexmt I'm not very experienced with github process, so please let me know if anything left to be done from my side. |
0179f8b
to
7e714e0
Compare
@ArenSH Could you take a look at the conflicts this PR looks pretty good I want to test a few things out with it though. |
…ow specifing multiple ports per ingress Signed-off-by: Armen Shakhbazian <armen.shakhbazian@gmail.com>
…fficRouting.ALB.ServicePorts and adjust existing ones Signed-off-by: Armen Shakhbazian <armen.shakhbazian@gmail.com>
…afficRouting.ALB.ServicePorts Signed-off-by: Armen Shakhbazian <armen.shakhbazian@gmail.com>
…Routing.ALB docs Signed-off-by: Armen Shakhbazian <armen.shakhbazian@gmail.com>
…improve coverage Signed-off-by: Armen Shakhbazian <armen.shakhbazian@gmail.com>
7e714e0
to
c00419a
Compare
Quality Gate passedIssues Measures |
@zachaller sorry, was away and had no access to laptop. I've rebased the branch from master and fixed the conflicts. |
Overview
This request introduces new
.ServicePorts
field forTrafficRouting.ALB
to manage ingresses with multiple ports.Implementation details
There were several options to add ability to manage ingresses with multiple ports:
Change behavior and format of .Ingresses field (❌)
Instead of a list of strings, the format of
.Ingresses
could've been changed to a list of{name: string, servicePorts: []int32}
objects. This option is the best one from the consistency and user experience point of view. Unfortunately, it is not possible to implement without introducing braking changes. Even if the controller adjusted to accept both formats (list of strings and list of objects), older clients will fail to interact with the new controller or will overwrite and corrupt.Ingresses
field on attempt to change it.Use new api version, like v1alpha2 (❌)
This is a major change, and it should be made by maintainers of the project, not a contributor like me.
Add new .ServicePorts field (✅)
Although it adds a bit more confusion to users (having to make sense of ingress/ingresses/servicePort/servicePorts fields), it is the least invasive one. This field is optional and allows specifying multiple ports for some ingresses (other ones will fall back to
.ServicePort
value)Changes
The
.ServicePorts
fields slightly changes behavior and validation ofALBTrafficRouting
:.ServicePort
is now optional field. The validation will check that for all referenced ingresses there is either an entry in.ServicePorts
list or.ServicePort
is specified as fallback..Ingress
can be specified using.ServicePorts
..Ingresses
list must have service ports specified either with an entry in.ServicePorts
or with.ServicePort
..ServicePorts
must refer to ingress specified in.Ingresses
list (or to.Ingress
if.Ingresses
is nil)To avoid confusion, it is recommended to use
.Ingress
+.ServicePort
only for a single ingress with a single port. In all other cases.Ingresses
+.ServicePorts
is preferred.Links:
Checklist:
"fix(controller): Updates such and such. Fixes #1234"
.