Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[che-dev] Request for review: plugin broker refactoring

Hi all,

I'm happy to finally be able to share a first step in refactoring the plugin broker [1], and would appreciate if folks familiar with Go and/or the plugin brokers could review the PR [2] as it is quite a large change. Ideally I would like to get this merged for the next release.

The PR in general just moves and separates out the code that was previously intertwined in the 'unified' plugin broker, and instead splits responsibility into two categories:

1. Manipulating plugin meta.yamls into Che plugins and adding requirements for running sidecars.
2. Downloading plugin extensions into the workspace `/plugins` volume.

Full details are listed in the PR and commit messages, but in short, this PR's main benefits are

1. We can begin work on potentially running the 'metadata' broker separate from workspace starts, either as an independent service or as a part of the plugin registry. 2. (Hopefully -- David could confirm) use components of the broker as a library instead of in a Pod. 3. Begin improving the download process, notably by removing our current flow of redownloading all plugins in the workspace on every start. 4. Use the same plugin brokering flow for both ephemeral and non-ephemeral workspaces (currently, the broker has to run, in full, twice for ephemeral workspaces). 5. It significantly simplifies the brokers code base (net -1500 lines in a small project). 6. It removes one volume mount from workspace starts (as the metadata broker does not need a /plugins volume.

There is an additional PR for including the new brokers in the Che server [3], which can allow testing the refactor by running the CI image `eclipseche/che-server:15386` and specifying

CHE_WORKSPACE_PLUGIN__BROKER_METADATA_IMAGE=amisevsk/che-metadata-plugin-broker:dev
CHE_WORKSPACE_PLUGIN__BROKER_ARTIFACTS_IMAGE=amisevsk/che-artifacts-plugin-broker:dev


Looking forward to any feedback,

Angel


[1] - https://github.com/eclipse/che/issues/14494
[2] - https://github.com/eclipse/che-plugin-broker/pull/80
[3] - https://github.com/eclipse/che/pull/15386



Back to the top