aws / aws/containers-roadmap

[EKS] [request]: Auto Mode - Allow `TargetGroupName` in `TargetGroupBinding` for AWS Load Balancer Controller

Open
#2,621 1 comment 9 reactions 0 assignees View on GitHub
EKS EKS Auto Mode EKS Networking Proposed
Dominant language
Shell
Stars
5.4k
Forks
334
PR merge metrics
No merged PRs in 30d

Description

### Community Note

* Please vote on this issue by adding a 👍 [reaction](https://blog.github.com/2016-03-10-add-reactions-to-pull-requests-issues-and-comments/) to the original issue to help the community and maintainers prioritize this request
* Please do not leave "+1" or "me too" comments, they generate extra noise for issue followers and do not help prioritize the request
* If you are interested in working on this issue or have submitted a pull request, please leave a comment

**Tell us about your request**
What do you want us to build?

**Which service(s) is this request for?**
This request is to see whether it is possible to add the field `TargetGroupName` into the `TargetGroupBinding` CRD for the Auto Mode version of the AWS Load Balancer Controller.

This field already exists in the self-managed AWS Load Balancer Controller, as expected, for version [2.11](https://github.com/kubernetes-sigs/aws-load-balancer-controller/blob/release-2.11/helm/aws-load-balancer-controller/crds/crds.yaml) and above.

If you currently try and create a `TargetGroupBinding` with `TargetGroupName` it will fail as expected:
```
Error from server (BadRequest): error when creating "tgb-test.yaml": TargetGroupBinding in version "v1" cannot be handled as a TargetGroupBinding: strict decoding error: unknown field "spec.targetGroupName"
```

**Tell us about the problem you're trying to solve. What are you trying to do, and why is it hard?**
This is a QoL request to have the AWS Load Balancer Controller Auto Mode version match the upstream version. When dealing with multiple clusters and accounts where resources are consistent and deployed via Helm, it would be useful to specify by name rather than `TargetGroupARN`.

**Are you currently working around this issue?**
- Installing upstream version of AWS LBC in the Auto Mode cluster
- Specifying values manually in helm chart

**Additional context**
We can verify that `TargetGroupName` does not exist in the CRD by running `kubectl explain targetgroupbinding --api-version=eks.amazonaws.com/v1 --recursive=true`

```
$ kubectl explain targetgroupbinding --api-version=eks.amazonaws.com/v1 --recursive=true
GROUP: eks.amazonaws.com
KIND: TargetGroupBinding
VERSION: v1

DESCRIPTION:
TargetGroupBinding is the Schema for the TargetGroupBinding API

FIELDS:
apiVersion
kind
metadata
annotations
creationTimestamp
deletionGracePeriodSeconds
deletionTimestamp
finalizers <[]string>
generateName
generation
labels
managedFields <[]ManagedFieldsEntry>
apiVersion
fieldsType
fieldsV1
manager
operation
subresource
time
name
namespace
ownerReferences <[]OwnerReference>
apiVersion -required-
blockOwnerDeletion
controller
kind -required-
name -required-
uid -required-
resourceVersion
selfLink
uid
spec
networking
ingress <[]Object> -required-
from <[]Object> -required-
securityGroup
groupID -required-
ports <[]Object>
port
protocol
nodeSelector
matchExpressions <[]Object>
key -required-
operator -required-
values <[]string>
matchLabels
serviceRef -required-
name -required-
port -required-
targetGroupARN -required-
targetType -required-
status
observedGeneration
```

**Attachments**
If you think you might have additional information that you'd like to include via an attachment, please do - we'll take a look. (Remember to remove any personally-identifiable information.)

Contributor guide

Open the contributing guide

Research direction

Start with kubectl explain targetgroupbinding --api-version=eks.amazonaws.com/v1 --recursive=true, then compare the Auto Mode CRD with the upstream release-2.11 crds/crds.yaml referenced in the issue. Done means TargetGroupBinding accepts TargetGroupName and supports the requested name-based configuration consistently with the upstream controller.

Written by the indexing model from the issue text.

Assessment

Tech stack
aws, helm, kubernetes
Domain
cloud, devops, infrastructure
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.