Skip to content

Support / clarify/ feature request for gRPC→gRPC traffic mirroring using mirror: true in HTTPProxy #7277

@roshan-meesho

Description

@roshan-meesho

Please describe the problem you have
We have a gRPC service (Go-based) running behind Contour using HTTPProxy with protocol: h2c serving grpc traffic.
We are trying to mirror this traffic to another gRPC backend (written in Rust in another VM) using the HTTPProxy mirror: true option.

Example:
        - name: xxxx
          port: 80
          slowStartPolicy:
            aggression: '0.1'
            minWeightPercent: 10
            window: 300s
        - name: xxx-mirror-rust
          mirror: true
          port: 80
          protocol: h2c
          weight: 1

and we have pointed that service xxx-mirror-rust to a externalname which is poiting to my hosted rust backend at a certain port.

What did we observe?

  • Mirroring works fine for HTTP applications serving http traffic.
  • For gRPC traffic, we consistently see 503 errors on the mirror service.
  • It seems gRPC → gRPC mirroring might not be supported yet or documented.

What do we expect?

  • Clarification on whether Contour supports gRPC mirroring on grpc traffic with mirror:true option as working for http traffic.
  • If not, request to add support or documentation for this use case.
  • Any known workarounds for sending gRPC mirror traffic to another gRPC backend.

Used Environment

  • Contour version: 1.27.0 & 1.28.0
  • Used HTTPProxy with protocol: h2c for both upstreams as grpc needs this annotations

Metadata

Metadata

Assignees

No one assigned

    Labels

    kind/featureCategorizes issue or PR as related to a new feature.lifecycle/needs-triageIndicates that an issue needs to be triaged by a project contributor.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions