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
|
# 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
|
```tf
|
||||||
module "jetbrains" {
|
module "jetbrains" {
|
||||||
@ -22,14 +22,12 @@ module "jetbrains" {
|
|||||||
```
|
```
|
||||||
|
|
||||||
> [!IMPORTANT]
|
> [!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]
|
> [!WARNING]
|
||||||
> JetBrains recommends a minimum of 4 CPU cores and 8GB of RAM.
|
> 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.
|
> Consult the [JetBrains documentation](https://www.jetbrains.com/help/idea/prerequisites.html#min_requirements) to confirm other system requirements.
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
## Examples
|
## Examples
|
||||||
|
|
||||||
### Pre-configured Mode (Direct App Creation)
|
### Pre-configured Mode (Direct App Creation)
|
||||||
@ -43,7 +41,7 @@ module "jetbrains" {
|
|||||||
version = "1.0.0"
|
version = "1.0.0"
|
||||||
agent_id = coder_agent.example.id
|
agent_id = coder_agent.example.id
|
||||||
folder = "/home/coder/project"
|
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
|
agent_id = coder_agent.example.id
|
||||||
folder = "/home/coder/project"
|
folder = "/home/coder/project"
|
||||||
# Show parameter with limited options
|
# 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"
|
version = "1.0.0"
|
||||||
agent_id = coder_agent.example.id
|
agent_id = coder_agent.example.id
|
||||||
folder = "/home/coder/project"
|
folder = "/home/coder/project"
|
||||||
default = ["GO", "RR"]
|
default = ["IU", "PY"]
|
||||||
channel = "eap" # Use Early Access Preview versions
|
channel = "eap" # Use Early Access Preview versions
|
||||||
major_version = "2025.2" # Specific major version
|
major_version = "2025.2" # Specific major version
|
||||||
}
|
}
|
||||||
@ -88,96 +86,31 @@ module "jetbrains" {
|
|||||||
|
|
||||||
# Custom IDE metadata (display names and icons)
|
# Custom IDE metadata (display names and icons)
|
||||||
ide_config = {
|
ide_config = {
|
||||||
"GO" = {
|
"IU" = {
|
||||||
name = "GoLand"
|
name = "IntelliJ IDEA"
|
||||||
icon = "/custom/icons/goland.svg"
|
icon = "/custom/icons/intellij.svg"
|
||||||
build = "251.25410.140"
|
build = "251.26927.53"
|
||||||
}
|
}
|
||||||
"PY" = {
|
"PY" = {
|
||||||
name = "PyCharm"
|
name = "PyCharm"
|
||||||
icon = "/custom/icons/pycharm.svg"
|
icon = "/custom/icons/pycharm.svg"
|
||||||
build = "251.23774.211"
|
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
|
### Single IDE for Specific Use Case
|
||||||
|
|
||||||
```tf
|
```tf
|
||||||
module "jetbrains_goland" {
|
module "jetbrains_pycharm" {
|
||||||
count = data.coder_workspace.me.start_count
|
count = data.coder_workspace.me.start_count
|
||||||
source = "registry.coder.com/coder/jetbrains/coder"
|
source = "registry.coder.com/coder/jetbrains/coder"
|
||||||
version = "1.0.0"
|
version = "1.0.0"
|
||||||
agent_id = coder_agent.example.id
|
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
|
# Specific version for consistency
|
||||||
major_version = "2025.1"
|
major_version = "2025.1"
|
||||||
@ -202,12 +135,13 @@ module "jetbrains_goland" {
|
|||||||
|
|
||||||
All JetBrains IDEs with remote development capabilities:
|
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/)
|
- [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/)
|
- [Rider (`RD`)](https://www.jetbrains.com/rider/)
|
||||||
|
- [RubyMine (`RM`)](https://www.jetbrains.com/ruby/)
|
||||||
- [RustRover (`RR`)](https://www.jetbrains.com/rust/)
|
- [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