Skip to content
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

[BUG] ALBs for Ingress might be recreated while updating corresponding IngressClass's spec.parameters #2731

Closed
M00nF1sh opened this issue Jul 22, 2022 · 0 comments · Fixed by #2750
Labels
kind/bug Categorizes issue or PR as related to a bug. priority/critical-urgent Highest priority. Must be actively worked on as someone's top priority right now.

Comments

@M00nF1sh
Copy link
Collaborator

M00nF1sh commented Jul 22, 2022

Describe the bug
Users using the default provided "alb" IngressClass and are currently with controller installed by HelmChart with version 1.3.1-1.3.3 could be impacted when upgrade to version 1.4.0-1.4.2.

Since when upgrading the chart, there is a change that will configure the default IngressClass alb to reference a newly added IngressClassParams named alb, but the alb IngressClassParams is created after the alb IngressClass modification.
Current mitigation is set --set ingressClassParams.create=false if you were upgrading from HelmChart with version 1.3.1-1.3.3

If the IngressGroup's spec.parameters was updated, the ALBs for Ingresses might be recreated due to a race condition.
When updating the IngressGroup's spec.parameters referencing a "non-exists" IngressClassParams, the controller will treat the Ingress using that IngressGroup was invalid, thus remove the rules/ALB for that Ingress.

Steps to reproduce
Create ALBs using a IngressClass, update the IngressClass to reference an un-exists IngressClassParams.

Expected outcome
The AWSLoadBalancerController should stop reconcile and ask users to correct configuration errors if a previously managed Ingresses's IngressClass was changed to be in an invalid state, instead of just treat the Ingress as invalid.
This is necessary since even if the IngressClassParam is created before the IngressClass modification(but within a tiny period), the Controller might receive the IngressClassParam creation event after the IngressClass modification.

Environment

  • AWS Load Balancer controller version
  • Kubernetes version
  • Using EKS (yes/no), if so version?

Additional Context:

@M00nF1sh M00nF1sh added kind/bug Categorizes issue or PR as related to a bug. priority/critical-urgent Highest priority. Must be actively worked on as someone's top priority right now. labels Jul 22, 2022
@M00nF1sh M00nF1sh changed the title [BUG] ALBs for Ingress might be recreated when updating IngressGroup's spec.parameters [BUG] ALBs for Ingress might be recreated when updating corresponding IngressClass's spec.parameters Jul 22, 2022
@M00nF1sh M00nF1sh changed the title [BUG] ALBs for Ingress might be recreated when updating corresponding IngressClass's spec.parameters [BUG] ALBs for Ingress might got recreated when updating corresponding IngressClass's spec.parameters Jul 22, 2022
@M00nF1sh M00nF1sh changed the title [BUG] ALBs for Ingress might got recreated when updating corresponding IngressClass's spec.parameters [BUG] ALBs for Ingress might be recreated while updating corresponding IngressClass's spec.parameters Jul 22, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/bug Categorizes issue or PR as related to a bug. priority/critical-urgent Highest priority. Must be actively worked on as someone's top priority right now.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant