[JetBrains] Preconfigured global settings on Host. #14566
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
JetBrains products have global settings which are applied to all projects on a machine. In remote scenario such settings should be preconfigured for different use cases, i.e. they can be specific to a project, image, user, team or entire organisation, and applied to each newly started Gitpod workspace. Unfortunately some global settings cannot be configured via env variables, properties or vm options, for instance proxy settings. Only via UI of JetBrains client.
This PR introduces a mid term workaround which enables users to preconfigure settings via JetBrains Client in predefined locations. In long term we hope JetBrains to find own way to enable users to configure and share global settings for different use cases. If you are using this workaround please leave your use case on #6576.
Preconfigured global settings are applied by Gitpod before very first start of JetBrains backend by copying into
/workspace/.config/JetBrains(-latest)?/RemoteDev-{productCode}/{project}/options
location from locations and according order specified in the table below. A user have to manually find global settings generated by JetBrains backend under this location, put under Git or copy to Docker image, and maintain them up-to-date.A user can also leverage .dotflies to share global settings for own account among all workspaces. A dotfile install script should copy settings from a dotfile repo to predefined locations as specified below. Dotfiles are guaranteed to apply before any JetBrains product startup.
~/.gitpod/jetbrains/options
Example:
/home/gitpod/.gitpod/jetbrains/options
~/.gitpod/jetbrains/{product}/options
Example:
/home/gitpod/.gitpod/jetbrains/intellij/options
/{project}/.gitpod/jetbrains/options
Example:
/workspace/gitpod/.gitpod/jetbrains/options
/{project}/.gitpod/jetbrains/{product}/options
Example:
/workspace/gitpod/.gitpod/jetbrains/intellij/options
For an example see https://github.com/akosyakov/parcel-demo/tree/jb-proxy-test applying proxy settings via Docker image.
Related Issue(s)
Fixes #
How to test
Release Notes
Documentation
Werft options:
If enabled this will build
install/preview
Valid options are
all
,workspace
,webapp
,ide
,jetbrains
,vscode
,ssh