Skip to content

Proxy-protocol is not actually supported on GKE using the default LoadBalancer service. #12829

Open
@mzglinski

Description

@mzglinski

What happened

The ingress-nginx deployment documentation for GKE (https://kubernetes.github.io/ingress-nginx/deploy/#gce-gke) states that "Proxy-protocol is supported in GCE check the Official Documentations on how to enable.". When you check the GCE documentation and try to follow the instructions, you will realize that enabling Proxy protocol on an existing Passthrough load balancer is impossible, which is the type of LB created by default.
However, when checking the GKE LoadBalancer Service parameters documentation (https://cloud.google.com/kubernetes-engine/docs/concepts/service-load-balancer-parameters), there is no annotation available to enable proxy protocol for the default LoadBalancer service.

This creates confusion for users trying to enable proxy protocol on GKE, as the documentation suggests it's supported but provides no clear way to enable it.

What you expected to happen

The documentation should either:

  1. Clearly specify how to enable proxy protocol on GKE (if it is actually supported)
  2. Remove or correct the statement about proxy protocol support if it's not actually supported
  3. Clarify if there are specific requirements or limitations for proxy protocol support on GKE

How to reproduce

  1. Deploy ingress-nginx on GKE using the documented method
  2. Try to enable proxy protocol by following the official documentation on the created passthrough load balancer
  3. Discover that it's not possible to modify an existing load balancer

Environment

  • Kubernetes version: 1.31.5-gke.1023000 (GKE)
  • Ingress-NGINX version: v4.12.0
  • Cloud provider: Google Kubernetes Engine (GKE)

/kind documentation
/remove-kind feature

Metadata

Metadata

Assignees

No one assigned

    Labels

    help wantedDenotes an issue that needs help from a contributor. Must meet "help wanted" guidelines.kind/documentationCategorizes issue or PR as related to documentation.lifecycle/frozenIndicates that an issue or PR should not be auto-closed due to staleness.priority/backlogHigher priority than priority/awaiting-more-evidence.triage/acceptedIndicates an issue or PR is ready to be actively worked on.

    Type

    No type

    Projects

    Status

    No status

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions