Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add CATs for HTTP/2 and gRPC apps #473

Merged
merged 5 commits into from
Sep 10, 2021
Merged

Add CATs for HTTP/2 and gRPC apps #473

merged 5 commits into from
Sep 10, 2021

Conversation

Gerg
Copy link
Member

@Gerg Gerg commented Jul 15, 2021

Are you submitting this PR against the develop branch?

Yes

What is this change about?

Add CATs for HTTP/2 and gRPC routing for applications.

Please provide contextual information.

Root issue: cloudfoundry/routing-release#200

This is part of a larger effort to add HTTP/2 support for app routing.

What version of cf-deployment have you run this cf-acceptance-test change against?

v16.17.0 on a bosh lite and v16.18.0 on a full (GCP) deployment

Please check all that apply for this PR:

  • introduces a new test --- Are you sure everyone should be running this test?
  • changes an existing test
  • requires an update to a CATs integration-config

Did you update the README as appropriate for this change?

  • YES
  • N/A

If you are introducing a new acceptance test, what is your rationale for including it CATs rather than your own acceptance test suite?

HTTP/2 support is core functionality for Cloud Foundry. Its implementation spans multiple releases (at least capi-release, diego-release, and routing-release).

How should this change be described in cf-acceptance-tests release notes?

Add tests for HTTP/2 and gRPC routing.

How many more (or fewer) seconds of runtime will this change introduce to CATs?

+ ginkgo
Running Suite: CATS
===================
Random Seed: 1626389364
Will run 2 of 213 specs

Running CATs with CF CLI version  cf version 7.2.0+be4a5ce2b.2020-12-10

SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
------------------------------
• [SLOW TEST:64.028 seconds]
[HTTP/2 routing]
/home/pivotal/workspace/cf-acceptance-tests/cats_suite_helpers/cats_suite_helpers.go:129
  HTTP/2 Routing
  /home/pivotal/workspace/cf-acceptance-tests/cats_suite_helpers/cats_suite_helpers.go:135
    when a destination only supports HTTP/2
    /home/pivotal/workspace/cf-acceptance-tests/http2_routing/http2_routing.go:27
      routes traffic to that destination over HTTP/2
      /home/pivotal/workspace/cf-acceptance-tests/http2_routing/http2_routing.go:28
------------------------------
• [SLOW TEST:88.267 seconds]
[HTTP/2 routing]
/home/pivotal/workspace/cf-acceptance-tests/cats_suite_helpers/cats_suite_helpers.go:129
  HTTP/2 Routing
  /home/pivotal/workspace/cf-acceptance-tests/cats_suite_helpers/cats_suite_helpers.go:135
    when a destination serves gRPC
    /home/pivotal/workspace/cf-acceptance-tests/http2_routing/http2_routing.go:56
      successfully routes the gRPC traffic (requires HTTP/2 for all hops)
      /home/pivotal/workspace/cf-acceptance-tests/http2_routing/http2_routing.go:57
------------------------------
SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
Ran 2 of 213 Specs in 196.551 seconds
SUCCESS! -- 2 Passed | 0 Failed | 0 Pending | 211 Skipped

What is the level of urgency for publishing this change?

  • Urgent - unblocks current or future work
  • Slightly Less than Urgent

We are still working on finalizing and releasing the underlying implementation -- hence the draft PR. We would love to hear any feedback y'all have.

Tag your pair, your PM, and/or team!

@belinda-liu @ctlong @evanfarrar

ctlong and others added 3 commits July 12, 2021 22:58
- Will be used for upcoming test for end-to-end HTTP/2 routing
- Serves h2c (HTTP/2 over cleartext) traffic and will error if sent non
HTTP/2 traffic

[cloudfoundry/routing-release#200]

Co-authored-by: Greg Cobb <gcobb@vmware.com>
- Add new suite for HTTP/2 CATs
- Currently passing using spike from
  cloudfoundry/routing-release#200 (comment)
- Likely to change with full implementation
- Extract `GetRouteGuid` v3 helper from multiple_app_ports test

[cloudfoundry/routing-release#200]

Co-authored-by: Carson Long <lcarson@vmware.com>
Co-authored-by: Belinda Liu <lbelinda@vmware.com>
- Includes a new gRPC test app
- Updates vendor with dependencies needed for making gRPC requests
- Currently proto files are copied into the helpers directory from the
assets/grpc/test directory as a work-around to import issues.
- This test will only pass on environment that have true end-to-end
HTTP/2 (including load balancer ingress and egress). Be careful.

[cloudfoundry/routing-release#200]

Co-authored-by: Greg Cobb <gcobb@vmware.com>
@cf-gitbot
Copy link

We have created an issue in Pivotal Tracker to manage this:

https://www.pivotaltracker.com/story/show/178906291

The labels on this github issue will be updated when the story is started.

@Gerg
Copy link
Member Author

Gerg commented Jul 15, 2021

Also, let us know if you want us to exclude the go mod vendor'd files from the PR.

@Gerg Gerg marked this pull request as ready for review July 27, 2021 21:01
These tests were previously written against a spike implementation. We
now have a complete implementation with a slightly different field on
the API to configure end-to-end HTTP/2 for route destinations.

[cloudfoundry/routing-release#200]

Co-authored-by: Michael Oleske <moleske@vmware.com>
- HTTP/2 test suite was no longer passing due to incorrect start
commands. Not sure if this was due to a change in the golang buildpacks.
- Fix by removing explicit start commands from `cf push` in HTTP/2 tests
- Unify pattern for how we push the HTTP/2 and gRPC sample apps
- Update gRPC go.mod file

[cloudfoundry/routing-release#200]

Authored-by: Greg Cobb <gcobb@pivotal.io>
@weymanf
Copy link
Contributor

weymanf commented Sep 9, 2021

@davewalter All the components we need for http2 has made it through the cf-deployment pipeline. Can we have this merged? We probably want to test this on fresh-cats but that would require some LB changes if it's not already L4. We can help with that if y'all like. But there should be a plan-patch coming soon in the BBL to swap GCP to use http2.

@davewalter davewalter merged commit 996cda1 into develop Sep 10, 2021
CF Acceptance Tests automation moved this from To do to Done Sep 10, 2021
@davewalter davewalter deleted the http2_routing branch September 10, 2021 22:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
No open projects
Development

Successfully merging this pull request may close these issues.

None yet

6 participants