-
Notifications
You must be signed in to change notification settings - Fork 4.8k
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
spiffe: add support for spiffe bundle format #36190
base: main
Are you sure you want to change the base?
Conversation
CC @envoyproxy/api-shepherds: Your approval is needed for changes made to |
api/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.proto
Outdated
Show resolved
Hide resolved
api/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.proto
Outdated
Show resolved
Hide resolved
/wait |
api/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.proto
Outdated
Show resolved
Hide resolved
api/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.proto
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for the contribution. some new comments to the API to start the review. And please address the comment from @markdroth .
api/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.proto
Outdated
Show resolved
Hide resolved
06a982e
to
b360f38
Compare
/lgtm api |
Please merge main. |
b360f38
to
28b5308
Compare
/wait on CI |
ff1fb7e
to
38f5dee
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for the contribution and patience. And some comments are added.
source/extensions/transport_sockets/tls/cert_validator/spiffe/spiffe_validator.cc
Outdated
Show resolved
Hide resolved
source/extensions/transport_sockets/tls/cert_validator/spiffe/spiffe_validator.cc
Outdated
Show resolved
Hide resolved
source/extensions/transport_sockets/tls/cert_validator/spiffe/spiffe_validator.h
Outdated
Show resolved
Hide resolved
Please also check the CI :) |
Signed-off-by: Brian Sonnenberg <bsonnenberg@google.com>
07497e0
to
b390760
Compare
Looks like CI is failing? https://github.com/envoyproxy/envoy/actions/runs/11979451058/job/33401707343 |
/wait |
Signed-off-by: Brian Sonnenberg <bsonnenberg@google.com>
Signed-off-by: Brian Sonnenberg <bsonnenberg@google.com>
Signed-off-by: Brian Sonnenberg <bsonnenberg@google.com>
Signed-off-by: Brian Sonnenberg <bsonnenberg@google.com>
Signed-off-by: Brian Sonnenberg <bsonnenberg@google.com>
Signed-off-by: Brian Sonnenberg <bsonnenberg@google.com>
Signed-off-by: Brian Sonnenberg <bsonnenberg@google.com>
Signed-off-by: Brian Sonnenberg <bsonnenberg@google.com>
Signed-off-by: Brian Sonnenberg <bsonnenberg@google.com>
Signed-off-by: Brian Sonnenberg <bsonnenberg@google.com>
@wbpcode @alyssawilk @markdroth Finally have the CI passing. 😅 Would you folks mind taking another look? |
I'm still not thrilled that we're doing this instead of implementing the certificate provider framework, but at least this doesn't preclude us from doing that later. /lgtm api |
@wbpcode seems that latest comments were addressed, PTAL. |
Will take a look before tomorrow night. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for the update and the long time investment. It's much better now. I add some comments new but should be easy to address. Thanks again.
source/extensions/transport_sockets/tls/cert_validator/spiffe/spiffe_validator.h
Outdated
Show resolved
Hide resolved
source/extensions/transport_sockets/tls/cert_validator/spiffe/spiffe_validator.h
Outdated
Show resolved
Hide resolved
source/extensions/transport_sockets/tls/cert_validator/spiffe/spiffe_validator.cc
Outdated
Show resolved
Hide resolved
source/extensions/transport_sockets/tls/cert_validator/spiffe/spiffe_validator.cc
Outdated
Show resolved
Hide resolved
source/extensions/transport_sockets/tls/cert_validator/spiffe/spiffe_validator.cc
Outdated
Show resolved
Hide resolved
source/extensions/transport_sockets/tls/cert_validator/spiffe/spiffe_validator.cc
Outdated
Show resolved
Hide resolved
source/extensions/transport_sockets/tls/cert_validator/spiffe/spiffe_validator.cc
Outdated
Show resolved
Hide resolved
Signed-off-by: Brian Sonnenberg <bsonnenberg@google.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM overall now. Thanks so much for your update, It's near there, only some non-major comments are added.
And merry Christmas!!! 🎄
/wait
// json_object::iterate seems to always return ok(), so this check is | ||
// redundant... | ||
if (!status.ok() || !parsing_status.ok()) { | ||
return parsing_status; | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I agree the check may be redundant. But there is a two-symbolism and may have potential problem. If the parsing_status
is ok and status
is not ok because the implementation change, what will happen?
// json_object::iterate seems to always return ok(), so this check is | |
// redundant... | |
if (!status.ok() || !parsing_status.ok()) { | |
return parsing_status; | |
} | |
// json_object::iterate seems to always return ok(), so this check is | |
// redundant... | |
RETURN_IF_NOT_OK_REF(status); | |
RETURN_IF_NOT_OK_REF(parsing_status); |
ENVOY_LOG(error, "Failed to load SPIFFE bundle map from '{}': '{}'", | ||
trust_bundle_file_name_, new_trust_bundle.status()); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ENVOY_LOG(error, "Failed to load SPIFFE bundle map from '{}': '{}'", | |
trust_bundle_file_name_, new_trust_bundle.status()); | |
ENVOY_LOG(error, "Failed to load SPIFFE bundle map from '{}': '{}'", | |
trust_bundle_file_name_, new_trust_bundle.status().message()); |
if (!parse_result.ok()) { | ||
throw EnvoyException( | ||
fmt::format("Failed to load SPIFFE Bundle map: {}", parse_result.status())); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
if (!parse_result.ok()) { | |
throw EnvoyException( | |
fmt::format("Failed to load SPIFFE Bundle map: {}", parse_result.status())); | |
THROW_IF_NOT_OK_REF(parse_result); |
@@ -19,6 +24,7 @@ envoy_extension_cc_test( | |||
], | |||
data = [ | |||
"//test/common/tls/test_data:certs", | |||
"//test/extensions/transport_sockets/tls/cert_validator/spiffe:trust_bundles", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Seems you only move the generated file to this directory. Sorry for the chaos, maybe keep your previous design is better if we cannot split all these out from the tls/test_data
cleanly.
Commit Message: Adds alternative to "trust_domains" config for the spiffe validator—"trust_bundle_map".
Additional Description:
#35567
trust_bundle_map points to a local file containing a SPIFFE bundle map. A file watcher is set up to trigger refreshes to the SPIFFE data when this file is modified. SPIFFE refresh hint and sequence number are currently ignored.
Risk Level: medium
Testing: WIP
Docs Changes: TBD
Release Notes: TBD