Description
Is your feature request related to a problem?
My team would like to be able to create services that are shared between multiple ingresses.
-
One use case would be blue/green deployment. Each service would have a targetgroup (created via targetgroup name).
The ingress can then point to either targetgroup with attributes and weights. -
Another use case would be for multitenanted services. We currently deploy a shared group of pods for multiple tenants each with their own ingress for url routing.
Currently each ingress will create it's own target group (with its own associated healthchecks) against the same shared set of pods.
Describe the solution you'd like
Create an AWS TargetGroup with one (1) or more Listeners without a Load Balancer solely with a K8S manifest that is being parsed by the AWS Load Balancer Controller.
The functionality is highly likely already there, what we need is a custom CRD being exposed called 'TargetGroup'.
Alternatively
Create a targetgroup for a service via an annotation.
The targetgroup should be created by a requested name.
Describe alternatives you've considered
-
Creating the TargetGroup with Terraform or CloudFormation, but this is suboptimal as then we have to manage not only K8s manifests for deployment, but also other infrastructure code (e.g. Terraform, cloud-formation).
-
Pointing multiple ingresses to a service. This creates multiple target groups for the same set of pods.
-
Using nginx-ingress (does not support ALB features)
Related to this closed issue: #3578