Skip to content

Releases: kubernetes-sigs/aws-load-balancer-controller

v3.5.0

Choose a tag to compare

@wweiwei-li wweiwei-li released this 03 Aug 22:55
11eb202

Documentation

Thanks to all our contributors!πŸ’œπŸ’œπŸ’œ

⚠️ Action Required

Gateway API CRD Updates (All Gateway API users)

Who: All users running Gateway API resources (Gateway, HTTPRoute, GRPCRoute, TCPRoute, UDPRoute) with the AWS Load Balancer Controller.

Why: This release requires Gateway API CRDs v1.6.0. The controller is built against this version for conformance and feature support

Important: Update CRDs before upgrading the controller. If you upgrade the controller first, NLB Gateway (TCPRoute/UDPRoute/TLSRoute) will be automatically disabled until the CRDs are updated. Since the standard install no longer serves v1alpha2, you must update any existing v1alpha2 route manifests to gateway.networking.k8s.io/v1

Action: Apply v1.6 Gateway CRDs

kubectl apply -f https://github.com/kubernetes-sigs/gateway-api/releases/download/v1.6.0/standard-install.yaml

LBC Gateway CRD Updates (All Gateway API users)

Who: All users running Gateway API resources (Gateway, HTTPRoute, GRPCRoute, TCPRoute, UDPRoute) with the AWS Load Balancer Controller.

Why: This release adds v1 as the storage version for LBC-specific Gateway CRDs (LoadBalancerConfiguration, TargetGroupConfiguration, ListenerRuleConfiguration), with v1beta1 marked as deprecated. The controller reads v1 only, but existing v1beta1 resources are transparently converted to v1 by the API server β€” no immediate manifest changes required. However, v1beta1 will stop being served in a future release. We recommend updating your manifests to use gateway.k8s.aws/v1 at your earliest convenience.

Action: Apply the updated LBC Gateway CRDs:

kubectl apply -f https://raw.githubusercontent.com/kubernetes-sigs/aws-load-balancer-controller/refs/heads/main/config/crd/gateway/gateway-crds.yaml

πŸš€What's New

Gateway API v1 Graduation

This release graduates Gateway API support to v1 for L4 routes. TCPRoute and UDPRoute now use the stable gateway.networking.k8s.io/v1 API version (previously v1alpha2), and the controller passes Gateway API conformance v1.6.0. The AWS-vended Gateway API CRDs have been upgraded to v1 accordingly.

πŸ”§Enhancements and Fixes

Certificate Management

  • Fix ACM certificate creation for Ingresses with wildcard hosts β€” the character in hostname was breaking ACM tag validation Certificate list support for ECDSA/RSA use
  • Add certificate management controller flag to helm chart

Route Precedence

  • Unified cross-kind route precedence for HTTPRoute/GRPCRoute, single code path eliminates non-transitivity
  • Fix non-transitive rule precedence for routes without hostnames

Networking

  • Filter EndpointSlices by IP family for target group registration
  • Match hosted zones by longest suffix in GetHostedZoneID
  • Fix: ICMP Type/Code constants
  • Fix: render feature gates as parseable key-value pairs

Module & Build

  • Module path updated to sigs.k8s.io/aws-load-balancer-controller/v3. Users who are importing the code base will need to adjust their imports accordingly.

Helm

  • Correct enableEndpointSlices default in Helm values comment

πŸ“– Documentation Updates

  • Add guidance on migrating between services without downtime
  • Clarify scheme change replacement behavior
  • Fix Markdown formatting of blue/green guide
  • Fix stale contributor setup and invalid IAM role ARN examples
  • Fix doc annotation name
  • Fix admonition indentation for ipam-ipv4-pool-id annotation
  • Clarify WAF addon ownership and document IngressGroup security risks
  • Remove CloudFormation link

What's Changed

New Contributors

Full Changelog: v3.4.2...v3.5.0

v3.4.3

Choose a tag to compare

@zac-nixon zac-nixon released this 29 Jul 00:32
ad67198

Documentation

Thanks to all our contributors!πŸ’œπŸ’œπŸ’œ

⚠️ Action Required

[ALB Gateway Users] Double check your ALB rule limits, when using HTTP / GRPC route with multiple hostnames, a distinict rule per hostname is generated. Users who specify multiple hostnames per route will want to double check their ALB limits. 2c65734

CRD Updates

  • No CRD updates required for this release.

IAM Policy Updates

  • No IAM policy changes required for this release.

Gateway API updates

  • No Gateway API CRD updates required for this release.

πŸ”§ Enhancements and Fixes

[Rule precedence] - When using HTTP / GRPC route with multiple hostnames, a distinict rule per hostname is generated.
[Validation Fix] - Fixed a bug that let invalid protocol types get ignored, rather than throwing a validation error.
[Process Crash] - Fixed a bug that caused a NPE when an invalid pod health condition was present.

What's Changed

Full Changelog: v3.4.2...v3.4.3

v3.4.2

Choose a tag to compare

@shraddhabang shraddhabang released this 13 Jul 22:16
22f6cd7

v3.4.2 Release Notes

πŸ“š Quick Links

v3.4.2 (requires Kubernetes 1.22+)

Image: public.ecr.aws/eks/aws-load-balancer-controller:v3.4.2

Documentation

Thanks to all our contributors!πŸ’œπŸ’œπŸ’œ

⚠️ Action Required

CRD Updates

  • No CRD updates required for this release.

IAM Policy Updates

  • No IAM policy changes required for this release.

Gateway API updates

  • No Gateway API CRD updates required for this release.

πŸ”’ Security Fix

  • Cross-Kind Route Precedence Fix (PR #4818): Fixed a vulnerability where ALB listener rule priority was determined by route kind rather than route specificity when HTTPRoute and GRPCRoute share a hostname on the same Gateway listener. Previously, HTTPRoute would always receive a lower ALB priority number (evaluated first) than a specific GRPCRoute, allowing cross-namespace traffic interception. The controller now uses a unified precedence comparator that orders rules by hostname specificity β†’ path type β†’ path length β†’ method constraint β†’ header count β†’ creation timestamp, regardless of route kind.

    Affected configurations: Shared Gateways with AllowedRoutes.Namespaces.From: All (or a namespace selector admitting multiple tenants) where both HTTPRoute and GRPCRoute attach to the same HTTPS listener with the same hostname.

    Workaround for unpatched versions: Restrict Gateway listener AllowedRoutes.Namespaces.From to Same or use a restrictive namespace Selector.

πŸ”§ Enhancements and Fixes

  • [Security fix] Unified cross-kind route precedence for HTTPRoute/GRPCRoute β€” specific routes now correctly outrank catch-all routes regardless of kind (#4818)
  • [Bug fix] Fix e2e test gRPC service name mismatch in cross-kind precedence test (#4830)
  • [Enhancement] Upgrade Go toolchain from 1.26.4 to 1.26.5 β€” fixes CVE-2026-39822 and CVE-2026-42505

Documentation Updates

  • Add guidance on migrating between services without downtime (#4819)

🌟 Complete Change Log

  • fix(gateway): Unified cross-kind route precedence for HTTPRoute/GRPCRoute by @shraddhabang in #4818
  • fix(e2e): Use correct gRPC service name in cross-kind precedence test by @shraddhabang in #4830
  • docs: add guidance on migrating between services without downtime by @Thiru-2004-varul in #4819

New Contributors

Full Changelog: v3.4.1...v3.4.2

v3.4.1

Choose a tag to compare

@shraddhabang shraddhabang released this 07 Jul 22:09
bc83310

Caution

⚠️ Security Notice: This release contains a known vulnerability. Please upgrade to v3.4.2 or later.

A cross-kind route precedence vulnerability allows a namespace-scoped user to hijack gRPC traffic on shared Gateways by creating a catch-all HTTPRoute. This affects configurations where AllowedRoutes.Namespaces.From: All is used with both HTTPRoute and GRPCRoute on the same listener with the same hostname

Fix: Upgrade to v3.4.2
Workaround: Restrict AllowedRoutes.Namespaces.From to Same or use a restrictive namespace Selector.
Details: PR #4818


v3.4.1 Release Notes

πŸ“š Quick Links

v3.4.1 (requires Kubernetes 1.22+)

Image: public.ecr.aws/eks/aws-load-balancer-controller:v3.4.1

Documentation

Thanks to all our contributors!πŸ’œπŸ’œπŸ’œ

⚠️ Action Required

CRD Updates

Action : Please apply the latest CRD definitions

  • kubectl apply -k "github.com/aws/eks-charts/stable/aws-load-balancer-controller/crds?ref=master"

IAM Policy Updates

  • No IAM policy changes required for this release.

Gateway API updates

  • No Gateway API CRD updates required for this release.

πŸš€ What's New

Ingress Features

  • ECDSA/RSA Certificate Auto-Discovery (PR #4490): The controller now supports automatic discovery of both ECDSA and RSA certificates from ACM when building the certificate list for Ingress resources. This enables dual-certificate configurations for optimized TLS performance across different client types.
    Gateway API Features
  • Shared Hostname for HTTPRoute and GRPCRoute (PR #4794): HTTPRoute and GRPCRoute resources can now share the same hostname on a Gateway listener. The overlapping hostname restriction between HTTP and gRPC routes has been removed, enabling mixed protocol configurations on the same domain.

πŸ”§ Enhancements and Fixes

  • [Bug fix] Filter EndpointSlices by IP family for target group registration β€” prevents IPv4 addresses from being registered to IPv6 target groups (#4783)
  • [Bug fix] Match hosted zones by longest suffix in GetHostedZoneID β€” fixes DNS validation for deeply nested subdomains and wildcard SANs (#4785)
  • [Bug fix] Fix non-transitive rule precedence for routes without hostnames β€” catch-all routes no longer intermittently sort above host-specific rules (#4809)
  • [Bug fix] Fix ICMP Type/Code constants (#4799)
  • [Bug fix] Fix render feature gates as parseable key-value pairs (#4757)
  • [Enhancement] Add enableCertificateManagement controller flag to Helm chart (#4726)

Documentation Updates

  • Correct enableEndpointSlices default value in Helm values comment (#4806)
  • Clarify WAF addon ownership and document IngressGroup security risks (#4797)
  • Fix stale contributor setup and invalid IAM role ARN examples (#4791)
  • Fix doc annotation name (#4787)

🌟 Complete Change Log

  • [fix] filter EndpointSlices by IP family for target group registration by @shuqz in #4783
  • [fix] doc annotation name by @shuqz in #4787
  • refactor ipv6 testing by @zac-nixon in #4788
  • add ipv6 annotations to cert generation tests by @zac-nixon in #4790
  • Match Route53 hosted zones by longest suffix in GetHostedZoneID by @nbr in #4785
  • Fix feature gates string representation by @immanuwell in #4757
  • add source nat setting so udp tests pass on ipv6 cluster by @zac-nixon in #4795
  • skip service quic tests when using ipv6 by @zac-nixon in #4796
  • Clarify WAF addon ownership and document IngressGroup security risks by @wweiwei-li in #4797
  • fix: ICMP Type/Code constants by @wweiwei-li in #4799
  • docs: fix stale contributor setup and invalid IAM role ARN examples by @immanuwell in #4791
  • Auto discovery default certificate and certificate list by @abeowlu in #4490
  • [Gateway API]remove overlapping check in httpRoute and GRPCRoute by @shuqz in #4794
  • fix(cert_management): add default-pca-arn controller flag to helm chart by @the-technat in #4726
  • Fix non-transitive rule precedence for routes without hostnames by @sergeylanzman in #4809
  • Fix incorrect enableEndpointSlices default in Helm values.yaml comment by @BobDu in #4806
  • cut v3.4.1 release by @shraddhabang in #4813

New Contributors

Full Changelog: v3.4.0...v3.4.1

v3.4.0

Choose a tag to compare

@shuqz shuqz released this 03 Jun 01:27
3f1e970

πŸ“š Quick Links

v3.4.0 (requires Kubernetes 1.22+)

Documentation

Image: public.ecr.aws/eks/aws-load-balancer-controller:v3.4.0
Thanks to all our contributors! 😊

πŸŽ‰ Ingress to Gateway Migration Tool

We are excited to introduce the Ingress to Gateway Migration Tool, the biggest addition in this release! This tooling helps you migrate AWS Load Balancer Controller (LBC) Ingress resources to Gateway API resources, step by step. The migration is designed to be safe and non-disruptive β€” new ALBs are created alongside your existing ones, so current workloads keep running throughout the entire process.

Two tools are provided to help you migrate with confidence:s

  • lbc-migrate CLI: Translates your Ingress manifests (annotations, rules, and IngressGroups) into equivalent Gateway API YAML. Supports cluster scraping (--from-cluster), file input (-f), directory input (--input-dir), single-Ingress and multi-namespace scoping, and per-namespace output splitting.
  • Migration Console: A local, in-cluster web UI that compares the AWS resource stack produced by both the Ingress and Gateway controllers, field by field. This lets you verify equivalence before applying your Gateway manifests for real.

To get started, see the Migration Guide for the end-to-end walkthrough.

We encourage you to try it out and welcome any feedback via GitHub Issues.

⚠️ Gateway API Behavior Change

Only one L4 route per listener is eligible for traffic when using an NLB Gateway

  • Change: When multiple L4 (TCP/UDP/TLS) routes target the same listener, the controller only forwards traffic to the oldest route. (#4745).
  • Impact: If you currently attach more than one TCP/UDP/TLS route to the same listener, only the oldest route will continue serving traffic after upgrading. Review your L4 route configurations and consolidate to a single route per listener to avoid unexpected traffic changes.

πŸ”§ Enhancements and Fixes

  • Regex path reconcile loop: Ignore the top-level RegexValues field that AWS mirrors in DescribeRules responses, preventing an unnecessary ModifyRule on every reconcile (#4749)
  • Service reconciler nil check: Return early in the service reconciler when the load balancer is nil (#4751)
  • TGC health check for ALB target groups: Fixed an error when updating health check settings in TargetGroupConfiguration for Gateway API ALB target groups (#4741)
  • NLB weighted target groups: Allow weight 0 for NLB weighted target groups, with a guard requiring at least one non-zero weight (#4738)
  • Capacity units validation: Validate CapacityUnits on capacity reservation annotations instead of silently dropping parse errors (which reset the reservation to 0) (#4750)
  • Checkpoint early-exit race: Ensure pods with pending readiness gates are always reconciled, fixing a checkpoint early-exit race with same-IP re-registration (#4737)
  • Retryable error wrapping: Wrap the last retryable error with a timeout error for clearer failure reporting (#4761)
  • Readiness gate efficiency: The TargetGroupBinding controller now watches pod events instead of requeueing on a fixed timer when using readiness gates, responding faster while avoiding unnecessary requeues (#4678)
  • Unit-test workflow permissions: Declare contents: read on the unit-test workflow to pin the default GITHUB_TOKEN to read-only (#4736)
  • Webhooks upgraded to v1: Admission webhooks were upgraded from v1beta1 to v1. Applied automatically on upgrade β€” no action needed (#4743)
  • Listener rule tag reconcile: Reconcile listener rule tags for all matched rules (#4772)

🌟 Complete Change Log

  • [feat i2g]support split by namespace output by @shuqz in #4733
  • [feat i2g] Fix user tag propagation to ListenerRuleConfigurations in lbc-migrate by @shuqz in #4735
  • [feat i2g] Add IngressPlanAnnotation feature gate for dry-run plan by @shuqz in #4734
  • fix checkpoint early-exit by @wweiwei-li in #4737
  • [fix]allow weight zero in NLB target group by @shuqz in #4738
  • Watch pod events for updating TargetGroupBindings with ReadinessGates by @cezarsa in #4678
  • [feat i2g] multi-ingress TGC with RouteConfigurations by @shuqz in #4742
  • upgrade webhooks to v1 by @zac-nixon in #4743
  • Fix error when updating health check settings in TGC for Gateway API ALB target groups by @shraddhabang in #4741
  • reject multiple l4 routes for same listener by @zac-nixon in #4745
  • fix: return early in service reconciler when lb is nil by @wweiwei-li in #4751
  • Validate load balancer capacity units annotations by @immanuwell in #4750
  • [feat i2g] bug fix by @shuqz in #4746
  • [feat i2g]setup e2e test for migration tool by @shuqz in #4739
  • ci(test): declare contents: read on the unit-test workflow by @arpitjain099 in #4736
  • [feat i2g]add in-cluster console for model comparison by @shuqz in #4728
  • fix: ignore top-level RegexValues mirrored by AWS in DescribeRules response by @pataraktw in #4749
  • [feat i2g] add e2e tests for ingress2gateway migration tool by @shuqz in #4771
  • [feat i2g] docs: migration guide, lbc-migrate reference, and in-cluster console by @shuqz in #4759
  • Add multiple ingress test that sorts rules based on priority by @jupdec in #4756
  • Reconcile listener rule tags for all matched rules by @andreybutenko in #4772
  • cut v3.4.0 release by @shuqz in #4776

New Contributors

Full Changelog: v3.3.0...v3.4.0

v3.3.0

Choose a tag to compare

@shraddhabang shraddhabang released this 05 May 20:58
46816a2

v3.3.0 Release Notes

πŸ“š Quick Links

v3.3.0 (requires Kubernetes 1.22+)

Image: public.ecr.aws/eks/aws-load-balancer-controller:v3.3.0

Documentation

Thanks to all our contributors!πŸ’œπŸ’œπŸ’œ

⚠️ Action Required

CRD Updates

Action: Please apply the latest CRD definitions

  • kubectl apply -k "github.com/aws/eks-charts/stable/aws-load-balancer-controller/crds?ref=master"

IAM Policy Updates

If you enable the EnableCertificateManagement feature gate, attach the additional IAM policy for ACM and Route53 permissions to your controller's IAM role. See the documentation for details.

Gateway API updates

  • Installation of LBC Gateway API specific CRDs: kubectl apply -f https://raw.githubusercontent.com/kubernetes-sigs/aws-load-balancer-controller/refs/heads/main/config/crd/gateway/gateway-crds.yaml
  • If using only ALB Gateway
    • Standard Gateway API CRDs: kubectl apply -f https://github.com/kubernetes-sigs/gateway-api/releases/download/v1.5.0/standard-install.yaml
  • If using NLB Gateway
    • Experimental Gateway API CRDs: kubectl apply -f https://github.com/kubernetes-sigs/gateway-api/releases/download/v1.5.0/experimental-install.yaml [Required: Used for L4 Routes]

πŸš€ What's New

Ingress Features

  • ACM Certificate Management (Feature Gate: EnableCertificateManagement): The controller can now automatically create and manage TLS certificates in ACM using hostnames from Ingress resources. It supports both Amazon-issued certificates with DNS validation via Route53 and private certificates via AWS Private CA. Enable with --feature-gates=EnableCertificateManagement=true and the create-acm-cert: "true" annotation. See the Certificate Management documentation for setup, IAM policy requirements, and ingress group behavior.

πŸ”§ Enhancements and Fixes

  • [Bug fix] Fix ENI resolution when pod has an IPv6 address (#4706)
  • [Bug fix] Fix frontend NLB listener and target group tagging (#4700)
  • [Bug fix] Add externalId into cache key for cross-account TGB (#4714)
  • [Bug fix] ACM cert management bug fixes and doc improvements
  • [Enhancement] Gateway API auto-detection improvements and LBC-specific CRD handling in Helm

Documentation Updates

  • ACM Certificate Management guide with ingress group behavior, security considerations, and IAM policy scoping
  • Updated the gateway api installation docs to include the AWS vended CRD as pre-requisites

What's Changed

New Contributors

Full Changelog: v3.2.2...v3.3.0

v3.2.2

Choose a tag to compare

@zac-nixon zac-nixon released this 18 Apr 00:32
32e047b

v3.2.2 Release Notes

πŸ“š Quick Links

v3.2.2 (requires Kubernetes 1.22+)

Image: public.ecr.aws/eks/aws-load-balancer-controller:v3.2.2

Documentation

Thanks to all our contributors!πŸ’œπŸ’œπŸ’œ

⚠️ Action Required

CRD Updates

Action : Please apply the latest CRD definitions

  • kubectl apply -k "github.com/aws/eks-charts/stable/aws-load-balancer-controller/crds?ref=master"

What's Changed

New Contributors

Full Changelog: v3.2.1...v3.2.2

v3.2.1

Choose a tag to compare

@zac-nixon zac-nixon released this 06 Apr 19:20

Same release as https://github.com/kubernetes-sigs/aws-load-balancer-controller/releases/tag/v3.2.0, but fixes ListenerSet permissions for Gateway API users installing via Helm.

v3.2.0

Choose a tag to compare

@zac-nixon zac-nixon released this 06 Apr 16:25
0fb5e3b

v3.2.0 Release Notes

πŸ“š Quick Links

v3.2.0 (requires Kubernetes 1.22+)

Image: public.ecr.aws/eks/aws-load-balancer-controller:v3.2.0

Documentation

Thanks to all our contributors!πŸ’œπŸ’œπŸ’œ

⚠️ Action Required

CRD Updates

Action : Please apply the latest CRD definitions

  • kubectl apply -k "github.com/aws/eks-charts/stable/aws-load-balancer-controller/crds?ref=master"

Gateway API updates

🚨 This release moves the Gateway API version from 1.3 to 1.5. For NLB Gateway users, this means that TLSRoute has been moved to the v1 API and is no longer served in the Alpha API version. It is recommended to install the experimental version of the TLSRoute to ensure zero downtime upgrades. 🚨

🚨Deprecations

  • --aws-vpc-tag-key is now deprecated and ignored. All tags from --aws-vpc-tags are always used for VPC lookup. This flag will be removed in a future release.

🚨Breaking Changes

  • If you were passing multiple tags via --aws-vpc-tags but your VPC only matched a subset of them, the controller will now fail to find the VPC since all tags are used as filters. Update your VPC tags or your --aws-vpc-tags value to ensure they match.

πŸš€ What's New

Gateway API Features

  • Update to Gateway API v1.5.0
  • Autodetect Gateway resources. No more feature flag flipping! The feature flags are still available to turn off the Gateway API feature.
  • Introduce ListenerSet resources

Ingress Features

  • Add Frontend NLB attributes annotation

πŸ”§ Enhancements and Fixes

  • [Bug fix] Fixed subnet resolution when subnets having conflicting name tags.
  • [Bug fix] Fixed multi tag VPC look ups.
  • [Bug fix] Normalize ingress DNS name to lower case.
  • [Bug fix] Prevent nil pointer when assigning endpoints to WAF / Shield clients.
  • [Enhancement] Configurable re-queue time for Target Group Bindings.
  • [Enhancement] Automatically skip aws: system tags during tag reconcilation.
  • [Enhancement] Backfill concurrency controls in Helm chart.
  • [Enhancement] Adding namespace selectors to Service and Ingress webhooks.

Documentation Updates

  • Add cert expiry best practices
  • Add more AGA examples
  • Update label selector documentation

What's Changed

New Contributors

Full Changelog: v3.1.0...v3.2.0

v3.1.0

Choose a tag to compare

@shraddhabang shraddhabang released this 24 Feb 18:54
250024d

πŸ“š Quick Links

v3.1.0 (requires Kubernetes 1.22+)

Image: public.ecr.aws/eks/aws-load-balancer-controller:v3.1.0

Documentation

Thanks to all our contributors!πŸ’œπŸ’œπŸ’œ

⚠️ Action Required

CRD Updates

Action : Please apply the latest CRD definitions

  • kubectl apply -k "github.com/aws/eks-charts/stable/aws-load-balancer-controller/crds?ref=master"

If using Gateway API feature

  • Installation of LBC Gateway API specific CRDs: kubectl apply -f https://raw.githubusercontent.com/kubernetes-sigs/aws-load-balancer-controller/refs/heads/main/config/crd/gateway/gateway-crds.yaml
  • Standard Gateway API CRDs: kubectl apply -f https://github.com/kubernetes-sigs/gateway-api/releases/download/v1.3.0/standard-install.yaml [REQUIRED]
  • Experimental Gateway API CRDs: kubectl apply -f https://github.com/kubernetes-sigs/gateway-api/releases/download/v1.3.0/experimental-install.yaml [OPTIONAL: Used for L4 Routes]

πŸš€ What's New

Gateway API Enhancements

  • [ALB Gateway] Port defaulting for scheme - Fixed redirect port handling to comply with Gateway API spec. When port is not specified in HTTPRequestRedirectFilter, the controller correctly defaults to well-known ports (80 for http, 443 for https) based on the redirect scheme.
  • [ALB Gateway] Improved regex handling - Corrected regex value handling in Gateway API route matching
  • [Gateway] Status hostname normalization - Gateway status hostnames are now normalized to lowercase for consistency

AWS Global Accelerator Controller

  • [AGA] Cross-namespace reference support - AGA resources can now reference resources across namespaces, enabling more flexible multi-tenant architectures

πŸ”§ Enhancements and Fixes

  • [NLB Gateway] TLS passthrough listener - Fixed TLS listener construction to respect TLS mode configuration. NLB Gateways now support passthrough, termination, and re-encryption modes as defined in Gateway API spec. Note: SNI-based routing is not supported due to AWS NLB dataplane limitations.
  • [Ingress] Rule optimizer - Fixed incorrect removal of regex-based listener rules that could cause routing failures
  • [HelmUpgrade] Webhook certificate regeneration - Fixed certificate regeneration issues during Helm upgrades. Reintroduce the keepTLSSecret parameter with improved logic that maintains cert-manager compatibility.
  • [Gateway] NPE on invalid parameters - Added null pointer protection and enhanced debugging for invalid parameter references

Documentation Updates

  • Updated service.beta.kubernetes.io/aws-load-balancer-type annotation documentation
  • Moved QUIC documentation to L4 section for better organization
  • Updated Helm chart information

Changelog since v3.0.0

New Contributors

Full Changelog: v3.0.0...v3.1.0