-
Notifications
You must be signed in to change notification settings - Fork 288
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
refactor secdist: get rid of DefaultSecdistProvider component #573
base: develop
Are you sure you want to change the base?
Conversation
05215b5
to
8b8ad6a
Compare
… 'default-secdist-provider'
8b8ad6a
to
4cc9c6d
Compare
|
||
const auto provider_name = | ||
config["provider"].As<std::string>("default-secdist-provider"); |
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.
Wow! You've done much more than we were expecting!
Unfortunately, in our internal codebase we already have a lot of custom providers. It is almost impossible for us, to make a migration in one go - hundreds of services should be adjusted and changed simultaneously.
Could you please split this PR into multiple?
First PR should preserve the provider
config parameter and the SecdistProvider
hierarchy. The DefaultSecdistProvider
component should remain in code but not used in userver static configs. provider
option should become empty by default, and in that case the whole functionality is implemented by the Secdist itself. That way we could merge the PR without affecting the services, remove the default-secdist-provider
usage in hundreds of services.
After that, the DefaultSecdistProvider
could be removed by a separate PR. And after that, we can take a second look on new hierarchy of providers (however, I think that it is fine to leave the provider
to customize the Secdist in complicated cases).
This PR solves the issue #547
The main changes are made in the directory:
core/{include/userver,src}/storages/secdist/
components::DefaultSecdistProvider
component has been removed.components::SecdistComponentBase
- base component for all secret distributors. The default implementation of this class iscomponents::Secdist
- ready-to-use component.storages::secdist::SecdistProviderBase
class are now used to store the secdist configuration.Thus it is still possible to implement your own secret distributor by implementing the base classes
components::SecdistComponentBase
andstorages::secdist::SecdistProviderBase
.