You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
ArgoRollouts currently supports managing a single ALB Ingress object per Rollout object. This limitation poses a problem when a single Application is served using multiple ALB Ingress objects.
For example: Ingresses for an Internal and External network, when there are various EC2 / AWS Services that need to reach a service inside an EKS cluster.
Workarounds
An example workaround is to create multiple Rollout objects in an Application, one for each ALB Ingress object. This option puts the onus on the operator to ensure all of the Rollout objects are progressing/resumed together in the correct order, increasing the chance of human error.
This workaround also unnecessarily increases the overall Application Pod count by at least 1, since each additional Rollout creates a separate replicaset.
Another workaround is potentially using AnalysisTemplates to trigger child rollout objects, but this seems a bit too clunky.
The limitation was a deal-breaker for some of our internal organizations, and we have created a Multi-ALB patch to bridge the gap for now and to re-spark the idea to the community, which we have been running in production workloads for the past three months.
The logic is heavily modeled after the Multiple Nginx Ingress patch by @tperdue321 (Thank you!) rallyhealth#1
Components Modified
Traffic Routing: Updates ALB data type to include a list of additionalIngresses
SetWeight: SetWeight is now a stub function that calls SetWeightPerIngress which processes the additionalIngresses followed by the ingress
Returns errors encountered during any of the ingress weight modifications
VerifyWeight: VerifyWeight is now a stub function that calls VerifyWeightPerIngress which processes the additionalIngresses followed by the ingress
Returns errors encountered during any of the ingress weight verifications
Validators: Validates all available ingresses
Rollout CRD: Updated to include trafficRouting.alb.additionalIngresses field
Message from the maintainers:
Impacted by this bug? Give it a 👍. We prioritize the issues with the most 👍.
The text was updated successfully, but these errors were encountered:
Enhancement Proposal: Multiple ALB Ingress Support for Canary Traffic Management
Enable defining multiple AWS ALB Ingress objects within a single Rollout object, with all Ingresses progressing in unison for each canary step.
Related: #710
Summary
ArgoRollouts currently supports managing a single ALB Ingress object per Rollout object. This limitation poses a problem when a single Application is served using multiple ALB Ingress objects.
For example: Ingresses for an Internal and External network, when there are various EC2 / AWS Services that need to reach a service inside an EKS cluster.
Workarounds
An example workaround is to create multiple Rollout objects in an Application, one for each ALB Ingress object. This option puts the onus on the operator to ensure all of the Rollout objects are progressing/resumed together in the correct order, increasing the chance of human error.
This workaround also unnecessarily increases the overall Application Pod count by at least 1, since each additional Rollout creates a separate replicaset.
Another workaround is potentially using AnalysisTemplates to trigger child rollout objects, but this seems a bit too clunky.
Example Multi-ALB Patch
master...n888:argo-rollouts:master
The limitation was a deal-breaker for some of our internal organizations, and we have created a Multi-ALB patch to bridge the gap for now and to re-spark the idea to the community, which we have been running in production workloads for the past three months.
The logic is heavily modeled after the Multiple Nginx Ingress patch by @tperdue321 (Thank you!) rallyhealth#1
Components Modified
Traffic Routing
: Updates ALB data type to include a list of additionalIngressesSetWeight
: SetWeight is now a stub function that calls SetWeightPerIngress which processes theadditionalIngresses
followed by theingress
VerifyWeight
: VerifyWeight is now a stub function that calls VerifyWeightPerIngress which processes theadditionalIngresses
followed by theingress
Validators
: Validates all availableingresses
Rollout CRD
: Updated to includetrafficRouting.alb.additionalIngresses
fieldMessage from the maintainers:
Impacted by this bug? Give it a 👍. We prioritize the issues with the most 👍.
The text was updated successfully, but these errors were encountered: