Is this feature request ( enable proxy protocol for AWS NLB in kubernetes) a low hanging fruit?


first I am not a developer but I am trying to learn some golang in my free time.
At work I am dealing with kubernetes, aws, terraform and other infrastructure related stuff.
But my level for go is pretty basic and I want to improve that.

I just wanted to know if this would be a low hanging fruit for someone as me:

Add PROXY protocol support for AWS Network Load Balancers

This is a feature request to enable the proxy protocol v2 for AWS Network Loadbalancer to kubernetes.

I think the aws loadbalancer is implemented here: aws_loadbalancer.go

I know how to create a Loadbalancer with nginx-ingress controller. You just have to set an annotation and it is taken care of.
This annotation check can be found in line 56:

func isNLB(annotations map[string]string) bool {
	if annotations[ServiceAnnotationLoadBalancerType] == "nlb" {
		return true
	return false

The annotation itself is defined in aws.go:

// ServiceAnnotationLoadBalancerType is the annotation used on the service
// to indicate what type of Load Balancer we want. Right now, the only accepted
// value is "nlb"
const ServiceAnnotationLoadBalancerType = ""

In the imports in aws_loadbalancer.go I can see that the elbv2 package is used.
I know the proxy protocol v2 has to be set on the target group.
And after taking look into that it seems like there is an option to enable this setting:

type TargetGroupAttribute

    // The following attribute is supported only by Network Load Balancers:
    //    * proxy_protocol_v2.enabled - Indicates whether Proxy Protocol version
    //    2 is enabled. The value is true or false. The default is false.
    Key *string `type:"string"`

Two main question:

  1. Would it be to much to ask for some guidance and pointing me into the right direction?
  2. There is already an annotation to enable proxy protocol for the nginx-ingress controller. Should this be coupled or decoupled with this setting?

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.