Skip to content

Commit

Permalink
updated grpc stuff for issue
Browse files Browse the repository at this point in the history
  • Loading branch information
scoyle391 committed Dec 16, 2019
1 parent e58cb7f commit c5e93fd
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 4 deletions.
6 changes: 4 additions & 2 deletions reference/core/ambassador.md
Original file line number Diff line number Diff line change
Expand Up @@ -231,11 +231,13 @@ If set, `cluster_idle_timeout_ms` specifies the timeout (in milliseconds) after

### gRPC HTTP/1.1 bridge (`enable_grpc_http11_bridge`)

Ambassador supports bridging HTTP/1.1 clients to backend gRPC servers. When an HTTP/1.1 connection is opened and the request content type is `application/grpc`, Ambassador will buffer the response and translate into gRPC requests. For more details on the translation process, see the [Envoy gRPC HTTP/1.1 bridge documentation](https://www.envoyproxy.io/docs/envoy/v1.11.2/configuration/http_filters/grpc_http1_bridge_filter.html). This setting can be enabled by setting `enable_grpc_http11_bridge: true`.
Ambassador supports bridging HTTP/1.1 clients to backend gRPC servers. When an HTTP/1.1 connection is opened and the request content type is `application/grpc`, Ambassador will buffer the response and translate into gRPC requests. For more details on the translation process, see the [Envoy gRPC HTTP/1.1 bridge documentation](https://www.envoyproxy.io/docs/envoy/v1.11.2/configuration/http_filters/grpc_http1_bridge_filter.html). This setting can be enabled by setting `enable_grpc_http11_bridge: true`. Read more about [gRPC and Ambassador](user-guide/grpc).

### gRPC-Web (`enable_grpc_web`)

gRPC-Web is a protocol built on gRPC that extends the benefits of gRPC to the browser. The gRPC-Web specification requires a server-side proxy to translate between gRPC-Web requests and gRPC backend services. Ambassador can serve as the service-side proxy for gRPC-Web when `enable_grpc_web: true` is set.
gRPC is a binary HTTP/2-based protocol that extends the benefits of gRPC to the browser; gRPC-Web wraps around gRPC for clients that cannot speak raw HTTP/2. Though connected, they are distinctly different.

The gRPC-Web specification requires a server-side proxy to translate between gRPC-Web requests and gRPC backend services. Ambassador can serve as the service-side proxy for gRPC-Web when `enable_grpc_web: true` is set. Find more on the gRPC Web client [GitHub](https://github.com/grpc/grpc-web).

### HTTP/1.0 support (`enable_http10`)

Expand Down
7 changes: 5 additions & 2 deletions user-guide/grpc.md
Original file line number Diff line number Diff line change
Expand Up @@ -200,7 +200,7 @@ spec:
hosts:
- "*"
secret: ambassador-cert
alpn_protocol: h2
alpn_protocols: h2
```

Next, you need to change the client code slightly and tell it to open a secure RPC channel with Ambassador.
Expand Down Expand Up @@ -308,9 +308,12 @@ gRPC services use [HTTP/2 headers](https://github.com/grpc/grpc/blob/master/doc/
headers:
:authority: subdomain.host.com
```

## Note

Some [Kubernetes ingress controllers](https://kubernetes.io/docs/concepts/services-networking/ingress/) do not support HTTP/2 fully. As a result, if you are running Ambassador with an ingress controller in front, you may find that gRPC requests fail even with correct Ambassador configuration.

A simple way around this is to use Ambassador with a `LoadBalancer` service, rather than an Ingress controller.

## gRPC-Web

gRPC must be configured to work with [gRPC Web](../../reference/core/ambassador#grpc-web-enable_grpc_web) if you want the same benefits in a browser.

0 comments on commit c5e93fd

Please sign in to comment.