Skip to content

[elbv2] Add proxy_protocol_v2 target group attribute support to TargetGroup CRD #2886

@blackdog0403

Description

@blackdog0403

Is your feature request related to a problem?

The ACK ELBv2 TargetGroup CRD does not expose the proxy_protocol_v2.enabled Target Group Attribute. This attribute is available in the AWS API via ModifyTargetGroupAttributes but has no corresponding field in the TargetGroup CRD spec.

This impacts mesh gateways (e.g., Istio, Envoy, AWS App Mesh) that rely on Proxy Protocol v2 to pass client IP information through NLBs to backend mesh gateway pods. Without this field, the mesh gateway sees the NLB's IP instead of the original client IP, breaking:

  • IP-based access controls
  • Rate limiting per client
  • TLS certificate validation (SNI)
  • Security policies

Describe the solution you'd like

Add support for target group attributes (specifically proxy_protocol_v2.enabled) in the TargetGroup CRD spec. This could be implemented as either a generic attributes field or a dedicated spec field:

Option A — Generic attributes field:

apiVersion: elbv2.services.k8s.aws/v1alpha1
kind: TargetGroup
metadata:
  name: mesh-gateway-tg
spec:
  name: mesh-gateway-tg
  protocol: TCP
  port: 15001
  vpcID: vpc-0123456789abcdef
  targetType: ip
  attributes:
    - key: proxy_protocol_v2.enabled
      value: "true"

Option B — Dedicated field:

spec:
  proxyProtocolV2Enabled: true

Describe alternatives you've considered

Currently we have to manually call ModifyTargetGroupAttributes outside of ACK after resource creation. This breaks the declarative management model and may be reverted by ACK reconciliation on the next sync cycle.

AWS API Reference:

Metadata

Metadata

Assignees

No one assigned

    Labels

    kind/new-fieldCategorizes issue or PR as related to a new fieldservice/elbv2Indicates issues or PRs that are related to elbv2-controller.

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions