-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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
Update plugin brokers to v3.4.0 and enable plugin merging #17785
Conversation
To test the changes, the following workspaces will result in plugins being merged:
|
❌ E2E Happy path tests failed ❗ See Details
Tested with Eclipse Che Multiuser User on K8S (minikube v1.1.1) ℹ️ |
08ccea5
to
5d7a2a5
Compare
Just rebased against master to fix happy path test. |
❌ E2E Happy path tests failed ❗ See Details
Tested with Eclipse Che Multiuser User on K8S (minikube v1.1.1) ℹ️ |
There is some issue with used plugin broker:
Manual testing is needed to retrieve plugin broker logs |
I suspect the happy path tests are failing because the Che instance is installing with brokers v3.3.0 set in the configmap. They are always overridden in the operator; this should be addressed by eclipse-che/che-operator#429 |
❌ E2E Happy path tests failed ❗ See Details
Tested with Eclipse Che Multiuser User on K8S (minikube v1.1.1) ℹ️ |
[crw-ci-test] |
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.
I think che-operator changes should be pulled into happy path test and hope the latest run will pass
...che/workspace/infrastructure/kubernetes/wsplugins/brokerphases/BrokerEnvironmentFactory.java
Outdated
Show resolved
Hide resolved
❌ E2E Happy path tests failed ❗ See Details
Tested with Eclipse Che Multiuser User on K8S (minikube v1.1.1) ℹ️ |
2e47e0c
to
9bf5f6f
Compare
@sleshchenko I've added a property + devfile attribute to control merging, PTAL. I set the default behavior for merging plugins to disabled for now, since the next release is coming so soon. We should enable it by default in the next snapshot. |
✅ E2E Happy path tests succeed 🎉 See Details
Tested with Eclipse Che Multiuser User on K8S (minikube v1.1.1) |
Added docs PR eclipse-che/che-docs#1576 |
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.
👍
...org/eclipse/che/workspace/infrastructure/kubernetes/wsplugins/SidecarToolingProvisioner.java
Outdated
Show resolved
Hide resolved
...-core-api-workspace-shared/src/main/java/org/eclipse/che/api/workspace/shared/Constants.java
Outdated
Show resolved
Hide resolved
...-core-api-workspace-shared/src/main/java/org/eclipse/che/api/workspace/shared/Constants.java
Outdated
Show resolved
Hide resolved
...org/eclipse/che/workspace/infrastructure/kubernetes/wsplugins/SidecarToolingProvisioner.java
Outdated
Show resolved
Hide resolved
* This attribute enables or disables merging plugins while provisioning a workspace. When | ||
* enabled, the plugin broker will be configured to attempt to merge plugins where possible (when | ||
* two or more plugins share the same image and do not have conflicting settings). Should be | ||
* set/read from {@link WorkspaceConfig#getAttributes}. |
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.
* set/read from {@link WorkspaceConfig#getAttributes}. | |
* set/read from {@link Devfile#getAttributes}. |
?
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.
P.S. I'm Ok with leaving as is as well just to be consistent in that file... But eventually, all these WorkspaceConfig#getAttributes should be changed to Devfile#getAttributes
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.
Done, except for WORKSPACE_TOOLING_EDITOR_ATTRIBUTE
which seems to be a legacy attribute.
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.
I also noticed the editorFree
attribute is in org.eclipse.che.api.workspace.server.devfile.Constants
instead of this file, which I think is maybe a mistake?
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.
I may be wrong but there was some time when Devfile lived in a separate maven module and workspace was not aware of that. So, I assume that now editorFree can be moved here but it's not the purpose of this PR...
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.
LGTM apart from 1 comment.
# If set to true, the plugin brokers will attempt to merge plugins when possible (i.e. they run in | ||
# the same sidecar image and do not have conflicting settings). This value is the default setting | ||
# used when the devfile does not specify otherwise, via the "mergePlugins" attribute. | ||
che.workspace.plugin_broker.default_merge_plugins=false |
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.
Is this set to false
by default because of minimizing the possible changes in the behavior? If I understood the changes in the plugin broker, it should be fairly conservative about when it actually does merge the plugins or not.
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.
I set it to false
because the intention was to merge this for the coming release -- I didn't want to risk introducing a regression with no time to fix it. My basic plan was
7.19.0
: merging available, can be enabled by setting attribute in devfile7.20.0
: merging available and default, can be disabled by setting attribute in devfile
I generally try to get changes that can impact the default flow + workspace startup in earlier in a sprint so we can catch any unforeseen issues before releasing, so this is kind of a workaround.
✅ E2E Happy path tests succeed 🎉 See Details
Tested with Eclipse Che Multiuser User on K8S (minikube v1.1.1) |
Add attribute 'mergePlugins' to devfile to manually enable/disable plugin merging in the plugin broker. Default value when no property is present is controlled by property che.workspace.plugin_broker.default_merge_plugins Add a small note to the plugin broker images config lines in che.properties to make it clear that the Che Operator overrides the properties by default. Signed-off-by: Angel Misevski <amisevsk@redhat.com>
ba5c321
to
0d0bd0b
Compare
Merged #17870 and squashed + rebased this PR on master. |
❌ E2E Happy path tests failed ❗ See Details
Tested with Eclipse Che Multiuser User on K8S (minikube v1.1.1) ℹ️ |
[crw-ci-test] |
❌ E2E Happy path tests failed ❗ See Details
Tested with Eclipse Che Multiuser User on K8S (minikube v1.1.1) ℹ️ |
[crw-ci-test] |
✅ E2E Happy path tests succeed 🎉 See Details
Tested with Eclipse Che Multiuser User on K8S (minikube v1.1.1) |
What does this PR do?
Update plugin brokers to v3.4.0 to pick up changes from eclipse-che/che-plugin-broker#111 and enable merging plugins.
Note: This PR depends on eclipse-che/che-operator#429. If a Che server with these changes is deployed, workspace start will fail unless the v3.4.0 brokers are used (as the commandline argument is not recognized)
What issues does this PR fix or reference?
Required for #15373
Release Notes
The plugin broker, which downloads Theia plugins while workspaces are starting up, now has the capability to merge plugins that run in the same sidecar container.
Docs PR
eclipse-che/che-docs#1576