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 support for TLS into tChannel #2018

Closed
mfateev opened this issue Jun 13, 2019 · 7 comments
Closed

Add support for TLS into tChannel #2018

mfateev opened this issue Jun 13, 2019 · 7 comments
Assignees

Comments

@mfateev
Copy link
Contributor

mfateev commented Jun 13, 2019

According to @prashantv tChannel can be extended to support custom net.Dialer. It already supports custom net.Listener.

Cadence then could use tls.Dial and tls.Listen to implement those. See this article for Go TLS overview.

@sagikazarmark
Copy link
Contributor

What's the ETA on this?

@samarabbas
Copy link
Contributor

@sagikazarmark we started working on it this sprint. We are able to prototype spinning up Cadence server with TLS listener but unfortunately this requires more support from underlying rpc stack (TChannel) so clients can pass through TLS Dialer to connect to Cadence.
At this point we are building TLS support in TChannel and YARPC stack first before we can bootstrap it to Cadence. At this point it is hard to provide an eta on this, but once TChannel and YARPC support is landed we can provide better eta from Cadence side.
Although our team is doing both the changes but we need to go through review process of rpc teams for these dependencies for them to be landed.

@sagikazarmark
Copy link
Contributor

@samarabbas Cool, thanks for the update. Are there any PRs in yarpc repos that we can follow? (Maybe reference them from here)

@samarabbas
Copy link
Contributor

Currently most of the prototype implementation is in my fork but I will link it from here as soon as I start creating PR.

@samarabbas
Copy link
Contributor

Created PR for tchannel-go changes needed for this.

@samarabbas
Copy link
Contributor

We heavily under estimated the work needed to enable TLS support. Although the work needed for down stream dependency (tchannel-go) is complete but it still requires significant work to de-couple Cadence dependency on ring-pop (which also uses tchannel-go) to enable TLS for incoming traffic. Unfortunately same host/port is used for ring-pop communication and enabling TLS starts causing issues with membership ring.

At this point, migration to grpc seems like the right path forward as we get TLS for free and is probably less work.

@demirkayaender
Copy link
Contributor

We moved to gRPC which supports TLS. Closing this as it's probably not needed any more.

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

No branches or pull requests

5 participants