Hey,
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 = "service.beta.kubernetes.io/aws-load-balancer-type"
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:
// 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:
- Would it be to much to ask for some guidance and pointing me into the right direction?
- There is already an annotation to enable proxy protocol for the nginx-ingress controller. Should this be coupled or decoupled with this setting?