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 https and h2c to app-protocol for better HTTP/2 support, and deprecate app-ssl #6205

Closed
ItalyPaleAle opened this issue Apr 7, 2023 · 3 comments · Fixed by #6213
Closed
Assignees
Milestone

Comments

@ItalyPaleAle
Copy link
Contributor

In what area(s)?

/area runtime

Describe the proposal

Currently, Dapr can be configured to use 2 values for app-protcol:

  • grpc
  • http
    • Uses HTTPS if app-ssl is true

The app-ssl flag, which is probably misnamed (#6158), only applies to the HTTP app channel, and is ignored if the protocol is gRPC.

We can simplify this and instead add https as a protocol.

Why:

  • This will make it easier for people to discover that we support HTTPS, which is something we should encourage since it enables using HTTP/2 (which can lead to much better perf)
  • It's clearer since gRPC isn't impacted by app-ssl
  • I have recently talked to a user who explained that now that we support HTTP/2, they were able to use HTTP for their app channel and at the same time use gRPC proxying to target the same app. This would be possible by setting app-channel to https. Fixes Can --app-protocol support both HTTP and grpc? #4291

We can also support h2c for the app channel, which is HTTP/2 Cleartext. This needs to be explicitly set for the protocol negotiation to work correctly.

We will maintain the app-ssl flag for backwards compatibility, but deprecated. When app-channel is set to http and app-ssl is enabled, we will switch the protocol to https

@yaron2
Copy link
Member

yaron2 commented Apr 7, 2023

+1

@ItalyPaleAle ItalyPaleAle self-assigned this Apr 7, 2023
@ItalyPaleAle ItalyPaleAle added this to the v1.11 milestone Apr 7, 2023
@ItalyPaleAle
Copy link
Contributor Author

Looks like I was wrong on this:

The app-ssl flag [...] only applies to the HTTP app channel, and is ignored if the protocol is gRPC.

gRPC seems to be using that too.

Should we keep app-ssl (maybe renaming to app-tls) or introduce another protocol grpcs? I am also hoping to introduce h2c as protocol (HTTP/2 without TLS).

@daixiang0
Copy link
Member

Agree.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants