Update JetBrains module readme for clarity
This commit is contained in:
parent
15fcf0e66a
commit
34346e7d68
@ -9,7 +9,7 @@ tags: [ide, jetbrains, parameter]
|
||||
|
||||
# JetBrains IDEs
|
||||
|
||||
This module adds JetBrains IDE integrations to your Coder workspaces, allowing users to launch IDEs directly from the dashboard or pre-configure specific IDEs for immediate use.
|
||||
This module adds JetBrains IDE buttons to launch IDEs directly from the dashboard by integrating with the JetBrains Toolbox.
|
||||
|
||||
```tf
|
||||
module "jetbrains" {
|
||||
@ -22,14 +22,12 @@ module "jetbrains" {
|
||||
```
|
||||
|
||||
> [!IMPORTANT]
|
||||
> This module requires Coder version 2.24+ and JetBrains Toolbox version 2.7 or higher.
|
||||
> This module requires Coder version 2.24+ and [JetBrains Toolbox](https://www.jetbrains.com/toolbox-app/) version 2.7 or higher.
|
||||
|
||||
> [!WARNING]
|
||||
> JetBrains recommends a minimum of 4 CPU cores and 8GB of RAM.
|
||||
> Consult the [JetBrains documentation](https://www.jetbrains.com/help/idea/prerequisites.html#min_requirements) to confirm other system requirements.
|
||||
|
||||

|
||||
|
||||
## Examples
|
||||
|
||||
### Pre-configured Mode (Direct App Creation)
|
||||
@ -43,7 +41,7 @@ module "jetbrains" {
|
||||
version = "1.0.0"
|
||||
agent_id = coder_agent.example.id
|
||||
folder = "/home/coder/project"
|
||||
default = ["GO", "IU"] # Pre-configure GoLand and IntelliJ IDEA
|
||||
default = ["PY", "IU"] # Pre-configure GoLand and IntelliJ IDEA
|
||||
}
|
||||
```
|
||||
|
||||
@ -57,7 +55,7 @@ module "jetbrains" {
|
||||
agent_id = coder_agent.example.id
|
||||
folder = "/home/coder/project"
|
||||
# Show parameter with limited options
|
||||
options = ["GO", "PY", "WS"] # Only these IDEs are available for selection
|
||||
options = ["IU", "PY"] # Only these IDEs are available for selection
|
||||
}
|
||||
```
|
||||
|
||||
@ -70,7 +68,7 @@ module "jetbrains" {
|
||||
version = "1.0.0"
|
||||
agent_id = coder_agent.example.id
|
||||
folder = "/home/coder/project"
|
||||
default = ["GO", "RR"]
|
||||
default = ["IU", "PY"]
|
||||
channel = "eap" # Use Early Access Preview versions
|
||||
major_version = "2025.2" # Specific major version
|
||||
}
|
||||
@ -88,96 +86,31 @@ module "jetbrains" {
|
||||
|
||||
# Custom IDE metadata (display names and icons)
|
||||
ide_config = {
|
||||
"GO" = {
|
||||
name = "GoLand"
|
||||
icon = "/custom/icons/goland.svg"
|
||||
build = "251.25410.140"
|
||||
"IU" = {
|
||||
name = "IntelliJ IDEA"
|
||||
icon = "/custom/icons/intellij.svg"
|
||||
build = "251.26927.53"
|
||||
}
|
||||
"PY" = {
|
||||
name = "PyCharm"
|
||||
icon = "/custom/icons/pycharm.svg"
|
||||
build = "251.23774.211"
|
||||
}
|
||||
"WS" = {
|
||||
name = "WebStorm"
|
||||
icon = "/icon/webstorm.svg"
|
||||
build = "251.23774.210"
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Air-Gapped and Offline Environments
|
||||
|
||||
This module supports air-gapped environments through automatic fallback mechanisms:
|
||||
|
||||
#### Option 1: Self-hosted JetBrains API Mirror
|
||||
|
||||
For organizations with internal JetBrains API mirrors:
|
||||
|
||||
```tf
|
||||
module "jetbrains" {
|
||||
count = data.coder_workspace.me.start_count
|
||||
source = "registry.coder.com/coder/jetbrains/coder"
|
||||
version = "1.0.0"
|
||||
agent_id = coder_agent.example.id
|
||||
folder = "/home/coder/project"
|
||||
|
||||
default = ["GO", "IU"]
|
||||
|
||||
# Custom API endpoints
|
||||
releases_base_link = "https://jetbrains-api.internal.company.com"
|
||||
download_base_link = "https://jetbrains-downloads.internal.company.com"
|
||||
}
|
||||
```
|
||||
|
||||
#### Option 2: Fully Air-Gapped (No Internet Access)
|
||||
|
||||
The module automatically falls back to static build numbers from `ide_config` when the JetBrains API is unreachable:
|
||||
|
||||
```tf
|
||||
module "jetbrains" {
|
||||
count = data.coder_workspace.me.start_count
|
||||
source = "registry.coder.com/coder/jetbrains/coder"
|
||||
version = "1.0.0"
|
||||
agent_id = coder_agent.example.id
|
||||
folder = "/home/coder/project"
|
||||
|
||||
default = ["GO", "IU"]
|
||||
|
||||
# Update these build numbers as needed for your environment
|
||||
ide_config = {
|
||||
"GO" = {
|
||||
name = "GoLand"
|
||||
icon = "/icon/goland.svg"
|
||||
build = "251.26927.50" # Static build number used when API is unavailable
|
||||
}
|
||||
"IU" = {
|
||||
name = "IntelliJ IDEA"
|
||||
icon = "/icon/intellij.svg"
|
||||
build = "251.26927.53" # Static build number used when API is unavailable
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
**How it works:**
|
||||
|
||||
- The module first attempts to fetch the latest build numbers from the JetBrains API
|
||||
- If the API is unreachable (network timeout, DNS failure, etc.), it automatically falls back to the build numbers specified in `ide_config`
|
||||
- This ensures the module works in both connected and air-gapped environments without configuration changes
|
||||
|
||||
### Single IDE for Specific Use Case
|
||||
|
||||
```tf
|
||||
module "jetbrains_goland" {
|
||||
module "jetbrains_pycharm" {
|
||||
count = data.coder_workspace.me.start_count
|
||||
source = "registry.coder.com/coder/jetbrains/coder"
|
||||
version = "1.0.0"
|
||||
agent_id = coder_agent.example.id
|
||||
folder = "/go/src/project"
|
||||
folder = "/workspace/project"
|
||||
|
||||
default = ["GO"] # Only GoLand
|
||||
default = ["PY"] # Only PyCharm
|
||||
|
||||
# Specific version for consistency
|
||||
major_version = "2025.1"
|
||||
@ -202,12 +135,13 @@ module "jetbrains_goland" {
|
||||
|
||||
All JetBrains IDEs with remote development capabilities:
|
||||
|
||||
- [GoLand (`GO`)](https://www.jetbrains.com/go/)
|
||||
- [WebStorm (`WS`)](https://www.jetbrains.com/webstorm/)
|
||||
- [IntelliJ IDEA Ultimate (`IU`)](https://www.jetbrains.com/idea/)
|
||||
- [PyCharm Professional (`PY`)](https://www.jetbrains.com/pycharm/)
|
||||
- [PhpStorm (`PS`)](https://www.jetbrains.com/phpstorm/)
|
||||
- [CLion (`CL`)](https://www.jetbrains.com/clion/)
|
||||
- [RubyMine (`RM`)](https://www.jetbrains.com/ruby/)
|
||||
- [GoLand (`GO`)](https://www.jetbrains.com/go/)
|
||||
- [IntelliJ IDEA Ultimate (`IU`)](https://www.jetbrains.com/idea/)
|
||||
- [PhpStorm (`PS`)](https://www.jetbrains.com/phpstorm/)
|
||||
- [PyCharm Professional (`PY`)](https://www.jetbrains.com/pycharm/)
|
||||
- [Rider (`RD`)](https://www.jetbrains.com/rider/)
|
||||
- [RubyMine (`RM`)](https://www.jetbrains.com/ruby/)
|
||||
- [RustRover (`RR`)](https://www.jetbrains.com/rust/)
|
||||
- [WebStorm (`WS`)](https://www.jetbrains.com/webstorm/)
|
||||
- [WebStorm (`WS`)](https://www.jetbrains.com/webstorm/)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user