Skip to content

add support for ALPN protocols in listener ssl context#1294

Merged
rshriram merged 3 commits intoistio:masterfrom
mdhume:add_alpn
Nov 6, 2017
Merged

add support for ALPN protocols in listener ssl context#1294
rshriram merged 3 commits intoistio:masterfrom
mdhume:add_alpn

Conversation

@mdhume
Copy link
Copy Markdown
Contributor

@mdhume mdhume commented Nov 1, 2017

What this PR does / why we need it:
Copying over the PR changes from istio/pilot git repo - istio/old_pilot_repo#1664
Also addressed the PR comments left in the previous PR

@rshriram @ijsnellf This PR adds the param "alpn_protocols" for listener ssl context as documented here - https://www.envoyproxy.io/envoy/configuration/listeners/ssl.html#config-listener-ssl-context
Currently grpc-java clients require that the proxy return a selected alpn_protocol else it errors out.
The discussion on this issue is detailed here - https://groups.google.com/forum/#!topic/istio-users/MYRflKPQRkA
I am intentionally leaving the cluster ssl context untouched here.

NONE

@istio-testing
Copy link
Copy Markdown
Collaborator

Hi @mdhume. Thanks for your PR.

I'm waiting for a istio member to verify that this patch is reasonable to test. If it is, they should reply with /ok-to-test on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work. Regular contributors should join the org to skip this step.

I understand the commands that are listed here.

Details

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@rkpagadala
Copy link
Copy Markdown
Contributor

/ok-to-test

@rshriram
Copy link
Copy Markdown
Member

rshriram commented Nov 1, 2017

Thanks for resubmitting the PR @mdhume .. We just merged a lot of repos. So there is some churn. But we should be good to go by EOD.

@googlebot
Copy link
Copy Markdown
Collaborator

So there's good news and bad news.

👍 The good news is that everyone that needs to sign a CLA (the pull request submitter and all commit authors) have done so. Everything is all good there.

😕 The bad news is that it appears that one or more commits were authored by someone other than the pull request submitter. We need to confirm that they're okay with their commits being contributed to this project. Please have them confirm that here in the pull request.

Note to project maintainer: This is a terminal state, meaning the cla/google commit status will not change from this State. It's up to you to confirm consent of the commit author(s) and merge this pull request when appropriate.

@googlebot googlebot added cla: no Set by the Google CLA bot to indicate the author of a PR has not signed the Google CLA. and removed cla: yes labels Nov 1, 2017
@mdhume mdhume changed the title [DNM] add support for ALPN protocols in listener ssl context add support for ALPN protocols in listener ssl context Nov 2, 2017
@rshriram
Copy link
Copy Markdown
Member

rshriram commented Nov 2, 2017

Hi, could you tweak the e2e tests in pilot/test/gRPC or something to have the Alpn case covered?

@mdhume
Copy link
Copy Markdown
Contributor Author

mdhume commented Nov 2, 2017

@rshriram sure will look into it...will see if I can add a ccheck for the presence of the alpn protocols.

@rshriram
Copy link
Copy Markdown
Member

rshriram commented Nov 2, 2017

Or just use a client that sends alpn

@mdhume
Copy link
Copy Markdown
Contributor Author

mdhume commented Nov 3, 2017

@rshriram The go grpc client does send ALPN protocols by default for TLS - https://github.com/grpc/grpc-go/blob/master/credentials/credentials.go#L38 and https://github.com/grpc/grpc-go/blob/master/credentials/credentials.go#L174-L178 . It does not have the additional check to see whether the server has returned a specific ALPN protocol like grpc-java does. Is that sufficient or do we need to add a check to see if envoy is returning a selected ALPN protocol? I did do some tcpdump tests and I could see a protocol being returned in the Server Hello step.

@rshriram
Copy link
Copy Markdown
Member

rshriram commented Nov 6, 2017

I think that is fine..

@istio-testing
Copy link
Copy Markdown
Collaborator

istio-testing commented Nov 6, 2017

@mdhume: The following test failed, say /retest to rerun them all:

Test name Commit Details Rerun command
prow/auto-merge_master.sh 3d7a9b5 link /test auto-merge_master
Details

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@rshriram rshriram added cla: human-approved and removed cla: no Set by the Google CLA bot to indicate the author of a PR has not signed the Google CLA. do-not-merge/release-note-label-needed labels Nov 6, 2017
@rshriram rshriram merged commit 977aeaf into istio:master Nov 6, 2017
@mdhume
Copy link
Copy Markdown
Contributor Author

mdhume commented Nov 8, 2017

@rshriram Thanks for helping getting this merged. Can you share which Istio release version this fix will be part of?

@rshriram
Copy link
Copy Markdown
Member

rshriram commented Nov 8, 2017 via email

@mdhume
Copy link
Copy Markdown
Contributor Author

mdhume commented Nov 8, 2017

@rshriram Sure for local testing we will compile from master and test it out. Would it be possible to get this cherry picked for a version prior to the 0.3 release? I checked out 0.2.11 and 0.2.12 and neither seems to have it yet. We have a team waiting on us for this fix and we were hoping to roll this out by next week preferably.

@rshriram
Copy link
Copy Markdown
Member

rshriram commented Nov 8, 2017

I don't own the release process. @linsun ??

@linsun
Copy link
Copy Markdown
Member

linsun commented Nov 8, 2017

@mdhume if this fix is important for you to include it in 0.2, please submit a PR for the release-0.2 branch with a justification on user's impact. Once it is merged, it will be included in the next 0.2.x release.

@mdhume
Copy link
Copy Markdown
Contributor Author

mdhume commented Nov 8, 2017

@linsun sure will do that, thanks!

@mdhume
Copy link
Copy Markdown
Contributor Author

mdhume commented Nov 9, 2017

@linsun sorry I'm a little confused. It seems like the release-0.2 branch in istio/istio repo does not have the pilot folder. Should I be submitting the PR to the old pilot repo instead?

@mdhume
Copy link
Copy Markdown
Contributor Author

mdhume commented Nov 10, 2017

@rshriram @linsun Sorry to bother. Should I be sending the PR to the old pilot repo? The new one does not seem to have a pilot folder in the branch release-0.2 - https://github.com/istio/istio/tree/release-0.2

@linsun
Copy link
Copy Markdown
Member

linsun commented Nov 10, 2017

@rkpagadala could you pls advise since you are oncall this week?

@rkpagadala
Copy link
Copy Markdown
Contributor

Yes. Please submit against the old pilot repo

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 this pull request may close these issues.

6 participants