Skip to content

feat: Support Multiple ALB Ingresses - #2639

Merged
zachaller merged 43 commits into
argoproj:masterfrom
n888:master
Jul 18, 2023
Merged

feat: Support Multiple ALB Ingresses#2639
zachaller merged 43 commits into
argoproj:masterfrom
n888:master

Conversation

@n888

@n888 n888 commented Mar 6, 2023

Copy link
Copy Markdown
Contributor

Enhancement proposal: #2471

Changes:

  • Update the ALB datatype to have a field called AdditionalIngresses to allow for multiple additional ingresses instead of just just the one

  • This naming convention is modeled after AdditionalIngressAnnotations

  • Modify the SetWeight method to create a canary for each ingress and apply new weight to all canary ingresses

  • Update validations to validate all ingresses.

  • Designed to be fully backwards compatible

  • Modeled after the Nginx Multi Ingress patch: feat: support N nginx ingresses #2467

  • Open to all direction/comments/suggestions, Thank you

Checklist:

  • Either (a) I've created an enhancement proposal and discussed it with the community, (b) this is a bug fix, or (c) this is a chore.
  • The title of the PR is (a) conventional with a list of types and scopes found here, (b) states what changed, and (c) suffixes the related issues number. E.g. "fix(controller): Updates such and such. Fixes #1234".
  • I've signed my commits with DCO
  • I have written unit and/or e2e tests for my change. PRs without these are unlikely to be merged.
  • My builds are green. Try syncing with master if they are not.
  • My organization is added to USERS.md.

@github-actions

github-actions Bot commented Mar 6, 2023

Copy link
Copy Markdown
Contributor

Go Published Test Results

2 030 tests   2 030 ✔️  2m 39s ⏱️
   118 suites         0 💤
       1 files           0

Results for commit e39aff0.

♻️ This comment has been updated with latest results.

@github-actions

github-actions Bot commented Mar 6, 2023

Copy link
Copy Markdown
Contributor

E2E Tests Published Test Results

    4 files      4 suites   3h 35m 28s ⏱️
102 tests   84 ✔️   6 💤 12
434 runs  384 ✔️ 24 💤 26

For more details on these failures, see this check.

Results for commit e39aff0.

♻️ This comment has been updated with latest results.

@codecov

codecov Bot commented Mar 6, 2023

Copy link
Copy Markdown

Codecov Report

Patch coverage: 80.12% and project coverage change: +0.02 🎉

Comparison is base (8db151f) 81.65% compared to head (e39aff0) 81.68%.

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #2639      +/-   ##
==========================================
+ Coverage   81.65%   81.68%   +0.02%     
==========================================
  Files         133      133              
  Lines       20203    20309     +106     
==========================================
+ Hits        16497    16589      +92     
- Misses       2851     2862      +11     
- Partials      855      858       +3     
Impacted Files Coverage Δ
utils/ingress/ingress.go 96.36% <73.33%> (-1.69%) ⬇️
.../apis/rollouts/validation/validation_references.go 89.68% <75.67%> (-0.76%) ⬇️
rollout/trafficrouting/alb/alb.go 80.91% <80.65%> (+1.82%) ⬆️
rollout/controller.go 81.08% <86.36%> (+<0.01%) ⬆️

☔ View full report in Codecov by Sentry.
📢 Do you have feedback about the report comment? Let us know in this issue.

@zachaller

Copy link
Copy Markdown
Collaborator

Can we switch to dropping the additional portion of the spec and just making it plural ingresses can you also add docs and e2e tests.

@huynhsontung

huynhsontung commented Mar 25, 2023

Copy link
Copy Markdown
Contributor

@zachaller Do we want to keep the singular ingress field? We named it additionalIngresses to exist alongside with ingress. Removing ingress would make a breaking change on the spec. Having both ingress and ingresses would be confusing imo.

@zachaller

Copy link
Copy Markdown
Collaborator

@zachaller Do we want to keep the singular ingress field? We named it additionalIngresses to exist alongside with ingress. Removing ingress would make a breaking change on the spec. Having both ingress and ingresses would be confusing imo.

Yes we will keep the singular ignress for backward compatability. There would be validation that only lets you use one or the other. You can take a look at the recent PR merged for nginx and also istio and other traffic routers use the plural form to mark multiple items supported. Then whenever we decide to break api we would probably drop the singular form.

@n888

n888 commented Mar 28, 2023

Copy link
Copy Markdown
Contributor Author

Thanks for the info @zachaller @huynhsontung, I will get on the ingresses change and e2e tests.

Signed-off-by: n888 <drifto@gmail.com>
Signed-off-by: n888 <drifto@gmail.com>
n888 added 2 commits April 9, 2023 11:52
Signed-off-by: n888 <drifto@gmail.com>
Signed-off-by: n888 <drifto@gmail.com>
Signed-off-by: n888 <drifto@gmail.com>
n888 added 7 commits April 11, 2023 17:17
Signed-off-by: n888 <drifto@gmail.com>
Signed-off-by: n888 <drifto@gmail.com>
Signed-off-by: n888 <drifto@gmail.com>
Signed-off-by: n888 <drifto@gmail.com>
…WeightMultiIngress

Signed-off-by: n888 <drifto@gmail.com>
n888 added 2 commits April 18, 2023 15:19
Signed-off-by: n888 <drifto@gmail.com>
n888 added 3 commits April 19, 2023 09:52
Signed-off-by: n888 <drifto@gmail.com>
Signed-off-by: n888 <drifto@gmail.com>
Signed-off-by: n888 <drifto@gmail.com>
n888 added 2 commits May 24, 2023 15:15
Signed-off-by: n888 <drifto@gmail.com>
Signed-off-by: n888 <drifto@gmail.com>
Signed-off-by: n888 <drifto@gmail.com>
n888 added 3 commits June 25, 2023 17:28
Signed-off-by: n888 <drifto@gmail.com>
Signed-off-by: n888 <drifto@gmail.com>
Signed-off-by: n888 <drifto@gmail.com>
@huynhsontung

Copy link
Copy Markdown
Contributor

@zachaller Any updates on the review process? It's been a while and this feature is quite critical for us as well.

@zachaller

Copy link
Copy Markdown
Collaborator

I will be focusing on open source here for a bit and this is one of my top priorities after I get some notification engine stuff done. I will also make sure this gets included in 1.6

huynhsontung and others added 4 commits July 10, 2023 15:34
Signed-off-by: Tung Huynh <tung75605@gmail.com>
Signed-off-by: Tung Huynh <tung75605@gmail.com>
Signed-off-by: Tung Huynh <tung75605@gmail.com>
Signed-off-by: n888 <drifto@gmail.com>
n888 and others added 4 commits July 11, 2023 10:37
fix: Rollout ALB status not updating
Signed-off-by: zachaller <zachaller@users.noreply.github.com>
Signed-off-by: zachaller <zachaller@users.noreply.github.com>
@sonarqubecloud

Copy link
Copy Markdown

Kudos, SonarCloud Quality Gate passed!    Quality Gate passed

Bug A 0 Bugs
Vulnerability A 0 Vulnerabilities
Security Hotspot A 0 Security Hotspots
Code Smell A 0 Code Smells

No Coverage information No Coverage information
No Duplication information No Duplication information

@zachaller

Copy link
Copy Markdown
Collaborator

Sorry for the long review time, thanks for the contributions!

@zachaller
zachaller merged commit 20e00e4 into argoproj:master Jul 18, 2023
@n888

n888 commented Jul 18, 2023

Copy link
Copy Markdown
Contributor Author

Thank you @zachaller @huynhsontung & Argo Team 💯

@thecosmicfrog

Copy link
Copy Markdown
Contributor

This is fantastic @n888 @zachaller @huynhsontung! As it happens, we are looking into Argo Rollouts for our canary rollout requirements and... you guessed it... we need support for multiple ALB ingresses. What excellent timing!

Can you advise when this feature will be released? We are using the Helm chart for installing the controller and CRDs. Thanks!

@zachaller

Copy link
Copy Markdown
Collaborator

It will be in 1.6, rc should come out this week hopefully.

@thecosmicfrog

Copy link
Copy Markdown
Contributor

Great, thanks @zachaller!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants