Skip to content

Instantly share code, notes, and snippets.

@bdpiprava
Forked from GaneshSPatil/plugin store
Last active November 6, 2017 05:15
Show Gist options
  • Save bdpiprava/7663a486dc46ac8fd1d65fb173d59e96 to your computer and use it in GitHub Desktop.
Save bdpiprava/7663a486dc46ac8fd1d65fb173d59e96 to your computer and use it in GitHub Desktop.
# GoCD Plugin Store
Installing plugin on GoCD Server has never been as easy task.
With GoCD Plugins store, installing and upgrading and deleting plugins and addons will be a one click operation.
## Current issues with plugin installation on GoCD Server:
* Manually need to copy plugin jar (Requires access to the machine :/)
* Needs a server restart
- in the cloud word, discovery and restart of server process running in cloud is very difficult. (on `docker swarm`, `DC/OS`, `Kubernetes` platforms)
* No automatic way to check Plugin compatibility with server
* No way to upgrade/downgrade bundled Plugin
* Not cleaning up unloaded plugin jars
- when two versions of same plugin is available, GoCD will load the firstly detected plugin jar and will ignore the other
* `plugin-descriptor.xsd` is not sufficient to make some decisions like which endpoint plugin is implementing(and which version).
## Plugin Store helps to:
- Easily `Install`, `Uninstall`, `Upgrade` or `Downgrade` a plugin with just one click
- No need to manually copy plugin jar
- No Server restart required
- List all the available GoCD plugins at one place on your Go Server!
- List plugins for current Go Server Version (No need to worry about compatibility anymore)
- Notification if new version of the installed plugin is available
- Download count of plugins
- Allows developer to easily upload or link their plugin on GoCD plugin store
## Capabilities of plugins' store:
- Standalone App which exposes endpoint to browse, list or download plugins.
- Understands multiple plugin storage providers. Can fetch a plugin from:
- Github Tags/Releases
- Gitlab Tags
- Maven Repository
- jcenter
At an abstract level, this is what @ketan, @bhupendra and I have discussed about the plugin store. Just want to share our understanding.
A POC of the same is available here
https://github.com/GaneshSPatil/gocd-plugin-store-poc
https://github.com/GaneshSPatil/gocd/tree/plugin-store-poc
Thanks,
Bhupendra/Ketan/Ganesh
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment