This repository was archived by the owner on Apr 30, 2025. It is now read-only.
Http2 backend support #289
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Adding support for protocol in route.registrar messages, and having the connections between gorouter and the backend use http2 if it is set in the registration message.
See routing-release issue for more context: [cloudfoundry/routing-release#200]
An explanation of the use cases your change solves
This is most important for cases where we need end to end http2 traffic to an app, e.g. supporting grpc endpoints with app running on CF.
Instructions to functionally test the behavior change using operator interfaces (BOSH manifest, logs, curl, and metrics)
This functionality is easiest to test with the other pieces of this change. To test in isolation deploy the branch of diego with the necessary executor changes, push an app which supports h2 and then publish a message on the nats bus manually with the appropriate protocol:
nats pub 'router.register' '{"host":"10.244.0.138","port":61004,"protocol":"http2","tls_port":61006,"uris":["h2c.mud-rabbit.capi.land"],"app":"dd33ca1b-829e-4eb4-9d8e-052c550ab0b8","private_instance_id":"bd460be2-5184-41ba-635b-9abb","private_instance_index":"0","server_cert_domain_san":"bd460be2-5184-41ba-635b-9abb","tags":{"app_id":"dd33ca1b-829e-4eb4-9d8e-052c550ab0b8","app_name":"h2c","component":"route-emitter","instance_id":"0","organization_id":"36f14cc0-5097-4f30-b2bb-14668cb085cd","organization_name":"org","process_id":"dd33ca1b-829e-4eb4-9d8e-052c550ab0b8","process_instance_id":"bd460be2-5184-41ba-635b-9abb","process_type":"web","source_id":"dd33ca1b-829e-4eb4-9d8e-052c550ab0b8","space_id":"dc467951-2878-4243-9f76-fd61573f4120","space_name":"cadet"}}'Make a request to the app and see that h2 is working. We instrumented the sample app to tell us which protocol was being used.
Traffic will be over http1.1 or will 500 if the app only supports h2.
TBD
I have viewed signed and have submitted the Contributor License Agreement
I have made this pull request to the
mainbranchI have run all the unit tests using
scripts/run-unit-tests-in-dockerfrom routing-release.(Optional) I have run Routing Acceptance Tests and Routing Smoke Tests on bosh lite
(Optional) I have run CF Acceptance Tests on bosh lite