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

Improve dependency injection for volume plugins #68638

Open
verult opened this Issue Sep 13, 2018 · 0 comments

Comments

Projects
None yet
2 participants
@verult
Contributor

verult commented Sep 13, 2018

/kind cleanup

Today many of in-tree volume plugin's dependencies are injected through the VolumeHost interface, but there are several pain points:

  • It's difficult to see a list of dependencies for each plugin.
  • Volume plugins have to embed nil checks for their VolumeHost dependencies directly in the code path that uses them. This makes plugins more prone to bugs.
  • If a particular dependency is missing, there is no way to explicitly configure whether initialization of the caller component (e.g. kubelet, controller manager) should fail, or just skip plugin initialization. For different caller situations either option is possible.
    • Today, returning an error in the volume plugin's Init() call when a dependency is missing causes the caller component to fail.

Investigate whether it makes sense to improve this dependency injection mechanism.

/sig storage
/priority important-longterm
/cc @saad-ali

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment