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

Implement Secret Discovery Service #898

Closed
vaamarnath opened this issue Feb 18, 2019 · 10 comments
Closed

Implement Secret Discovery Service #898

vaamarnath opened this issue Feb 18, 2019 · 10 comments
Labels
help wanted Denotes an issue that needs help from a contributor. Must meet "help wanted" guidelines. kind/feature Categorizes issue or PR as related to a new feature. priority/important-longterm Important over the long term, but may not be staffed and/or may need multiple releases to complete.
Milestone

Comments

@vaamarnath
Copy link
Contributor

Implement Secret Discovery Service in Contour.

This enhancement request came out of the discussion on #862 for supporting rotating and invalidating certificates using SDS. More info about SDS is available here: https://www.envoyproxy.io/docs/envoy/latest/configuration/secret.

@khgandhi
Copy link

@vaamarnath we have a requirement to have SDS implementation in contour as well. Do you have a design that you can share with the details ?

@vaamarnath
Copy link
Contributor Author

@khgandhi The current requirement for SDS came in through #862. There is no design available for this issue at this point in time.

\cc @davecheney

@davecheney davecheney added this to the 0.11.0 milestone Mar 12, 2019
@davecheney davecheney added kind/feature Categorizes issue or PR as related to a new feature. help wanted Denotes an issue that needs help from a contributor. Must meet "help wanted" guidelines. priority/important-soon Must be staffed and worked on either currently, or very soon, ideally in time for the next release. blocked/needs-design Categorizes the issue or PR as blocked because it needs a design document. labels Mar 12, 2019
@bmadhavan
Copy link

@davecheney If you are ok, I can pick up this task. I can come up with a rough design doc and a list of possible changes in a couple of days.

@davecheney
Copy link
Contributor

@bmadhavan sure, feel free to discuss the design here or in a design document. Please note that I will be travelling until the 1st of April and may not be able to reply during that time.

@bmadhavan
Copy link

ok. Sure.

@bmadhavan
Copy link

@davecheney I have created an initial design draft for SDS support. Can you please take a look.

@davecheney
Copy link
Contributor

Due to the need to ship Contour 0.11 to address a security issue in Envoy 1.9.0 this has been bumped to the 0.12 milestone.

@davecheney davecheney added priority/important-longterm Important over the long term, but may not be staffed and/or may need multiple releases to complete. and removed priority/important-soon Must be staffed and worked on either currently, or very soon, ideally in time for the next release. labels Apr 9, 2019
@timh timh removed this from the 0.12.0 milestone Apr 10, 2019
davecheney added a commit that referenced this issue Apr 16, 2019
Updates #898

Remove the parts of the design about integrating SDS into LDS and CDS,
we'll do those at a later date. For now, just get this work started.

Signed-off-by: Dave Cheney <dave@cheney.net>
@davecheney davecheney removed the blocked/needs-design Categorizes the issue or PR as blocked because it needs a design document. label Apr 16, 2019
@davecheney
Copy link
Contributor

With #901 falling off the 0.12 milestone @vaamarnath and I have talked and the plan is to implement the basic SDS plumbing and we'll revisit the integration points with the rest of Contour later.

I was going to sit down and write down the steps to add SDS to internal/grpc but it turns out we already have 99% of the design from @bmadhavan in #960. I've polished that up and you can find here.

I'm not going to mark this issue as 0.12 as @vaamarnath nor I can commit to taking this one by the 0.12 deadline, but consider the design for adding SDS up for grabs.

Note to implementors: please work incrementally, one PR per high level design point. Please don't send one giant ass PR for the whole thing, that's not cool. You should also add some tests to internal/e2e which are really the func tests of internal/grpc.

Thanks

Dave

@mattalberts
Copy link

@vaamarnath @davecheney Thanks for the notes. I've been building up the full solution over the last few days, adding tests, and verifying functionality. I'll split up the change set into a few PRs, mirroring the suggestion to provide 1 per major design point.

mattalberts pushed a commit to mattalberts/contour that referenced this issue Apr 25, 2019
Addresses the first high-level design bullet point, creatign a gRPC
server for SDS by adding an SDS cache interface, implementing
FetchSecrets and StreamSecrets, and registering the server as an SDS
handler.

Updates projectcontour#898
mattalberts pushed a commit to mattalberts/contour that referenced this issue Apr 25, 2019
Addresses the third high-level design bullet point, support sds in the
contour cli for debugging.

Updates: projectcontour#898
Signed-off-by: Matt Alberts <malberts@cloudflare.com>
mattalberts pushed a commit to mattalberts/contour that referenced this issue Apr 25, 2019
Addresses the non-goals of the high0level design for secret discovery,
converting auth.CommonTlsContext from TlsCertificates with inline bytes
for secret data to TlsCertificateSdsSecretConfigs for secret references
from the xDS gRPC server.

Updates: projectcontour#898
Signed-off-by: Matt Alberts <malberts@cloudflare.com>
mattalberts pushed a commit to mattalberts/contour that referenced this issue Apr 30, 2019
Addresses the first high-level design bullet point, creatign a gRPC
server for SDS by adding an SDS cache interface, implementing
FetchSecrets and StreamSecrets, and registering the server as an SDS
handler.

Updates projectcontour#898

Signed-off-by: Matt Alberts <malberts@cloudflare.com>
mattalberts pushed a commit to mattalberts/contour that referenced this issue Apr 30, 2019
Addresses the second high-level design bullet point, creating a
SecretCache to be used by Contour to internally identify any changes.
The cache is also registered as a reource type for the gRPC server,
allowing it to respond to requests.

Updates: projectcontour#898
Signed-off-by: Matt Alberts <malberts@cloudflare.com>
mattalberts pushed a commit to mattalberts/contour that referenced this issue Apr 30, 2019
Addresses the third high-level design bullet point, support sds in the
contour cli for debugging.

Updates: projectcontour#898
Signed-off-by: Matt Alberts <malberts@cloudflare.com>
mattalberts pushed a commit to mattalberts/contour that referenced this issue Apr 30, 2019
Addresses the non-goals of the high0level design for secret discovery,
converting auth.CommonTlsContext from TlsCertificates with inline bytes
for secret data to TlsCertificateSdsSecretConfigs for secret references
from the xDS gRPC server.

Updates: projectcontour#898
Signed-off-by: Matt Alberts <malberts@cloudflare.com>
mattalberts pushed a commit to mattalberts/contour that referenced this issue Apr 30, 2019
Addresses the first high-level design bullet point, creatign a gRPC
server for SDS by adding an SDS cache interface, implementing
FetchSecrets and StreamSecrets, and registering the server as an SDS
handler.

Updates projectcontour#898

Signed-off-by: Matt Alberts <malberts@cloudflare.com>
mattalberts pushed a commit to mattalberts/contour that referenced this issue Apr 30, 2019
Addresses the second high-level design bullet point, creating a
SecretCache to be used by Contour to internally identify any changes.
The cache is also registered as a reource type for the gRPC server,
allowing it to respond to requests.

Updates: projectcontour#898
Signed-off-by: Matt Alberts <malberts@cloudflare.com>
mattalberts pushed a commit to mattalberts/contour that referenced this issue Apr 30, 2019
Addresses the third high-level design bullet point, support sds in the
contour cli for debugging.

Updates: projectcontour#898
Signed-off-by: Matt Alberts <malberts@cloudflare.com>
mattalberts pushed a commit to mattalberts/contour that referenced this issue Apr 30, 2019
Addresses the non-goals of the high0level design for secret discovery,
converting auth.CommonTlsContext from TlsCertificates with inline bytes
for secret data to TlsCertificateSdsSecretConfigs for secret references
from the xDS gRPC server.

Updates: projectcontour#898
Signed-off-by: Matt Alberts <malberts@cloudflare.com>
mattalberts pushed a commit to mattalberts/contour that referenced this issue Apr 30, 2019
Addresses the second high-level design bullet point, creating a
SecretCache to be used by Contour to internally identify any changes.
The cache is also registered as a reource type for the gRPC server,
allowing it to respond to requests.

Updates: projectcontour#898
Signed-off-by: Matt Alberts <malberts@cloudflare.com>
mattalberts pushed a commit to mattalberts/contour that referenced this issue Apr 30, 2019
Addresses the third high-level design bullet point, support sds in the
contour cli for debugging.

Updates: projectcontour#898
Signed-off-by: Matt Alberts <malberts@cloudflare.com>
mattalberts pushed a commit to mattalberts/contour that referenced this issue Apr 30, 2019
Addresses the non-goals of the high0level design for secret discovery,
converting auth.CommonTlsContext from TlsCertificates with inline bytes
for secret data to TlsCertificateSdsSecretConfigs for secret references
from the xDS gRPC server.

Updates: projectcontour#898
Signed-off-by: Matt Alberts <malberts@cloudflare.com>
mattalberts pushed a commit to mattalberts/contour that referenced this issue Apr 30, 2019
Addresses the second high-level design bullet point, creating a
SecretCache to be used by Contour to internally identify any changes.
The cache is also registered as a reource type for the gRPC server,
allowing it to respond to requests.

Updates: projectcontour#898
Signed-off-by: Matt Alberts <malberts@cloudflare.com>
mattalberts pushed a commit to mattalberts/contour that referenced this issue Apr 30, 2019
Addresses the third high-level design bullet point, support sds in the
contour cli for debugging.

Updates: projectcontour#898
Signed-off-by: Matt Alberts <malberts@cloudflare.com>
mattalberts pushed a commit to mattalberts/contour that referenced this issue Apr 30, 2019
Addresses the non-goals of the high0level design for secret discovery,
converting auth.CommonTlsContext from TlsCertificates with inline bytes
for secret data to TlsCertificateSdsSecretConfigs for secret references
from the xDS gRPC server.

Updates: projectcontour#898
Signed-off-by: Matt Alberts <malberts@cloudflare.com>
mattalberts pushed a commit to mattalberts/contour that referenced this issue Apr 30, 2019
Addresses the third high-level design bullet point, support sds in the
contour cli for debugging.

Updates: projectcontour#898
Signed-off-by: Matt Alberts <malberts@cloudflare.com>
mattalberts pushed a commit to mattalberts/contour that referenced this issue Apr 30, 2019
Addresses the non-goals of the high0level design for secret discovery,
converting auth.CommonTlsContext from TlsCertificates with inline bytes
for secret data to TlsCertificateSdsSecretConfigs for secret references
from the xDS gRPC server.

Updates: projectcontour#898
Signed-off-by: Matt Alberts <malberts@cloudflare.com>
mattalberts pushed a commit to mattalberts/contour that referenced this issue Apr 30, 2019
Addresses the non-goals of the high0level design for secret discovery,
converting auth.CommonTlsContext from TlsCertificates with inline bytes
for secret data to TlsCertificateSdsSecretConfigs for secret references
from the xDS gRPC server.

Updates: projectcontour#898
Signed-off-by: Matt Alberts <malberts@cloudflare.com>
@stevesloka stevesloka added this to the 0.12.0 milestone May 1, 2019
@vaamarnath vaamarnath removed their assignment May 4, 2019
@davecheney davecheney removed this from the 0.12.0 milestone May 6, 2019
mattalberts pushed a commit to mattalberts/contour that referenced this issue May 6, 2019
Addresses the non-goals of the high0level design for secret discovery,
converting auth.CommonTlsContext from TlsCertificates with inline bytes
for secret data to TlsCertificateSdsSecretConfigs for secret references
from the xDS gRPC server.

Updates: projectcontour#898
Signed-off-by: Matt Alberts <malberts@cloudflare.com>
mattalberts pushed a commit to mattalberts/contour that referenced this issue May 6, 2019
Addresses the non-goals of the high0level design for secret discovery,
converting auth.CommonTlsContext from TlsCertificates with inline bytes
for secret data to TlsCertificateSdsSecretConfigs for secret references
from the xDS gRPC server.

Updates: projectcontour#898
Signed-off-by: Matt Alberts <malberts@cloudflare.com>
@davecheney
Copy link
Contributor

I think this issue is now complete, at least wrt. the 0.12 milestone. Thank you to @vaamarnath @mattalberts and @stevesloka for pushing this forward.

@davecheney davecheney added this to the 0.12.0 milestone May 7, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
help wanted Denotes an issue that needs help from a contributor. Must meet "help wanted" guidelines. kind/feature Categorizes issue or PR as related to a new feature. priority/important-longterm Important over the long term, but may not be staffed and/or may need multiple releases to complete.
Projects
None yet
Development

No branches or pull requests

7 participants