-
Notifications
You must be signed in to change notification settings - Fork 40
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
Explore options for Windows support and impact on plugin refactor #865
Comments
Note: this spike is timeboxed to 1 day. |
This thread has some notes about issues when external parties build external plugins for a go project using go plugins - it especially seems to be referring to vendoring problems referenced in this go issue This thread suggests considering using
|
The GitHub issue for go plugins lacking Windows support - the last comment is |
Currently external plugins are included by placing the shared library (.so) files (compiled with Notes from check-in:
|
@sgnn7's initial POC that works on OSX |
Seems like we can use gRPC go-plugin for cross-platform plugin handling. We'd need to pass locations of sockets to plugins rather than net.Conn but that should be majority of the changes needed. We probably could also wrap current plugins in some library code that could make current style of plugins compatible with the gRPC system. There may be a need for codegen to automate majority of the work here. |
Extra option to consider: Golang interpreters Users provide us with |
Simple PoC of stdlib-based interpreter-based provider plugin: https://github.com/cyberark/secretless-broker/pull/868/files |
Nice work @sgnn7 and @doodlesbykumbi! |
Note: in further discussions yaegi will require close collaboration with plugin authors to ensure Secretless core has the libraries the plugin will need, and there could be real difficulty with supporting plugins that require different versions of the same library |
Overview
We have been asked to verify that based on our current understanding, the plugins that are written based on this interface will not have to be thrown out based on future work to expand support to plugins that can run on Windows. If we discover that additional research is needed to answer this question, we'll need to regroup and determine when to schedule that research.
There are two concerns prompting this spike:
buildmode=plugin
have to be changed to be runnable in Windows, and by how muchWe had the following ideas for addressing this in the feature proposal:
buildmode=plugin
to make it windows compatiblebuildmode=c-shared
The outcome of this short spike is to document our current understanding of the impact of each potential solution and the risk to the current effort from these potential future changes.
Definition of done
buildmode=c-shared
support will have on Secretless core and on external connector plugins written to the standard in Secretless has a public plugin API for service connectors #693buildmode=plugin
The text was updated successfully, but these errors were encountered: