feat(jetbrains-gateway): add releases_base_link/download_base_link variables (#333)
This commit is contained in:
@@ -14,7 +14,7 @@ This module adds a JetBrains Gateway Button to open any workspace with a single
|
|||||||
```tf
|
```tf
|
||||||
module "jetbrains_gateway" {
|
module "jetbrains_gateway" {
|
||||||
source = "registry.coder.com/modules/jetbrains-gateway/coder"
|
source = "registry.coder.com/modules/jetbrains-gateway/coder"
|
||||||
version = "1.0.21"
|
version = "1.0.23"
|
||||||
agent_id = coder_agent.example.id
|
agent_id = coder_agent.example.id
|
||||||
agent_name = "example"
|
agent_name = "example"
|
||||||
folder = "/home/coder/example"
|
folder = "/home/coder/example"
|
||||||
@@ -32,7 +32,7 @@ module "jetbrains_gateway" {
|
|||||||
```tf
|
```tf
|
||||||
module "jetbrains_gateway" {
|
module "jetbrains_gateway" {
|
||||||
source = "registry.coder.com/modules/jetbrains-gateway/coder"
|
source = "registry.coder.com/modules/jetbrains-gateway/coder"
|
||||||
version = "1.0.21"
|
version = "1.0.23"
|
||||||
agent_id = coder_agent.example.id
|
agent_id = coder_agent.example.id
|
||||||
agent_name = "example"
|
agent_name = "example"
|
||||||
folder = "/home/coder/example"
|
folder = "/home/coder/example"
|
||||||
@@ -46,7 +46,7 @@ module "jetbrains_gateway" {
|
|||||||
```tf
|
```tf
|
||||||
module "jetbrains_gateway" {
|
module "jetbrains_gateway" {
|
||||||
source = "registry.coder.com/modules/jetbrains-gateway/coder"
|
source = "registry.coder.com/modules/jetbrains-gateway/coder"
|
||||||
version = "1.0.21"
|
version = "1.0.23"
|
||||||
agent_id = coder_agent.example.id
|
agent_id = coder_agent.example.id
|
||||||
agent_name = "example"
|
agent_name = "example"
|
||||||
folder = "/home/coder/example"
|
folder = "/home/coder/example"
|
||||||
@@ -61,7 +61,7 @@ module "jetbrains_gateway" {
|
|||||||
```tf
|
```tf
|
||||||
module "jetbrains_gateway" {
|
module "jetbrains_gateway" {
|
||||||
source = "registry.coder.com/modules/jetbrains-gateway/coder"
|
source = "registry.coder.com/modules/jetbrains-gateway/coder"
|
||||||
version = "1.0.21"
|
version = "1.0.23"
|
||||||
agent_id = coder_agent.example.id
|
agent_id = coder_agent.example.id
|
||||||
agent_name = "example"
|
agent_name = "example"
|
||||||
folder = "/home/coder/example"
|
folder = "/home/coder/example"
|
||||||
@@ -72,6 +72,24 @@ module "jetbrains_gateway" {
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### Custom base link
|
||||||
|
|
||||||
|
Due to the highest priority of the `ide_download_link` parameter in the `(jetbrains-gateway://...` within IDEA, the pre-configured download address will be overridden when using [IDEA's offline mode](https://www.jetbrains.com/help/idea/fully-offline-mode.html). Therefore, it is necessary to configure the `download_base_link` parameter for the `jetbrains_gateway` module to change the value of `ide_download_link`.
|
||||||
|
|
||||||
|
```tf
|
||||||
|
module "jetbrains_gateway" {
|
||||||
|
source = "registry.coder.com/modules/jetbrains-gateway/coder"
|
||||||
|
version = "1.0.23"
|
||||||
|
agent_id = coder_agent.example.id
|
||||||
|
agent_name = "example"
|
||||||
|
folder = "/home/coder/example"
|
||||||
|
jetbrains_ides = ["GO", "WS"]
|
||||||
|
releases_base_link = "https://releases.internal.site/"
|
||||||
|
download_base_link = "https://download.internal.site/"
|
||||||
|
default = "GO"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
## Supported IDEs
|
## Supported IDEs
|
||||||
|
|
||||||
This module and JetBrains Gateway support the following JetBrains IDEs:
|
This module and JetBrains Gateway support the following JetBrains IDEs:
|
||||||
|
|||||||
@@ -146,9 +146,29 @@ variable "jetbrains_ides" {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
variable "releases_base_link" {
|
||||||
|
type = string
|
||||||
|
description = ""
|
||||||
|
default = "https://data.services.jetbrains.com"
|
||||||
|
validation {
|
||||||
|
condition = can(regex("^https?://.+$", var.releases_base_link))
|
||||||
|
error_message = "The releases_base_link must be a valid HTTP/S address."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
variable "download_base_link" {
|
||||||
|
type = string
|
||||||
|
description = ""
|
||||||
|
default = "https://download.jetbrains.com"
|
||||||
|
validation {
|
||||||
|
condition = can(regex("^https?://.+$", var.download_base_link))
|
||||||
|
error_message = "The download_base_link must be a valid HTTP/S address."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
data "http" "jetbrains_ide_versions" {
|
data "http" "jetbrains_ide_versions" {
|
||||||
for_each = var.latest ? toset(var.jetbrains_ides) : toset([])
|
for_each = var.latest ? toset(var.jetbrains_ides) : toset([])
|
||||||
url = "https://data.services.jetbrains.com/products/releases?code=${each.key}&latest=true&type=${var.channel}"
|
url = "${var.releases_base_link}/products/releases?code=${each.key}&latest=true&type=${var.channel}"
|
||||||
}
|
}
|
||||||
|
|
||||||
locals {
|
locals {
|
||||||
@@ -158,7 +178,7 @@ locals {
|
|||||||
name = "GoLand",
|
name = "GoLand",
|
||||||
identifier = "GO",
|
identifier = "GO",
|
||||||
build_number = var.jetbrains_ide_versions["GO"].build_number,
|
build_number = var.jetbrains_ide_versions["GO"].build_number,
|
||||||
download_link = "https://download.jetbrains.com/go/goland-${var.jetbrains_ide_versions["GO"].version}.tar.gz"
|
download_link = "${var.download_base_link}/go/goland-${var.jetbrains_ide_versions["GO"].version}.tar.gz"
|
||||||
version = var.jetbrains_ide_versions["GO"].version
|
version = var.jetbrains_ide_versions["GO"].version
|
||||||
},
|
},
|
||||||
"WS" = {
|
"WS" = {
|
||||||
@@ -166,7 +186,7 @@ locals {
|
|||||||
name = "WebStorm",
|
name = "WebStorm",
|
||||||
identifier = "WS",
|
identifier = "WS",
|
||||||
build_number = var.jetbrains_ide_versions["WS"].build_number,
|
build_number = var.jetbrains_ide_versions["WS"].build_number,
|
||||||
download_link = "https://download.jetbrains.com/webstorm/WebStorm-${var.jetbrains_ide_versions["WS"].version}.tar.gz"
|
download_link = "${var.download_base_link}/webstorm/WebStorm-${var.jetbrains_ide_versions["WS"].version}.tar.gz"
|
||||||
version = var.jetbrains_ide_versions["WS"].version
|
version = var.jetbrains_ide_versions["WS"].version
|
||||||
},
|
},
|
||||||
"IU" = {
|
"IU" = {
|
||||||
@@ -174,7 +194,7 @@ locals {
|
|||||||
name = "IntelliJ IDEA Ultimate",
|
name = "IntelliJ IDEA Ultimate",
|
||||||
identifier = "IU",
|
identifier = "IU",
|
||||||
build_number = var.jetbrains_ide_versions["IU"].build_number,
|
build_number = var.jetbrains_ide_versions["IU"].build_number,
|
||||||
download_link = "https://download.jetbrains.com/idea/ideaIU-${var.jetbrains_ide_versions["IU"].version}.tar.gz"
|
download_link = "${var.download_base_link}/idea/ideaIU-${var.jetbrains_ide_versions["IU"].version}.tar.gz"
|
||||||
version = var.jetbrains_ide_versions["IU"].version
|
version = var.jetbrains_ide_versions["IU"].version
|
||||||
},
|
},
|
||||||
"PY" = {
|
"PY" = {
|
||||||
@@ -182,7 +202,7 @@ locals {
|
|||||||
name = "PyCharm Professional",
|
name = "PyCharm Professional",
|
||||||
identifier = "PY",
|
identifier = "PY",
|
||||||
build_number = var.jetbrains_ide_versions["PY"].build_number,
|
build_number = var.jetbrains_ide_versions["PY"].build_number,
|
||||||
download_link = "https://download.jetbrains.com/python/pycharm-professional-${var.jetbrains_ide_versions["PY"].version}.tar.gz"
|
download_link = "${var.download_base_link}/python/pycharm-professional-${var.jetbrains_ide_versions["PY"].version}.tar.gz"
|
||||||
version = var.jetbrains_ide_versions["PY"].version
|
version = var.jetbrains_ide_versions["PY"].version
|
||||||
},
|
},
|
||||||
"CL" = {
|
"CL" = {
|
||||||
@@ -190,7 +210,7 @@ locals {
|
|||||||
name = "CLion",
|
name = "CLion",
|
||||||
identifier = "CL",
|
identifier = "CL",
|
||||||
build_number = var.jetbrains_ide_versions["CL"].build_number,
|
build_number = var.jetbrains_ide_versions["CL"].build_number,
|
||||||
download_link = "https://download.jetbrains.com/cpp/CLion-${var.jetbrains_ide_versions["CL"].version}.tar.gz"
|
download_link = "${var.download_base_link}/cpp/CLion-${var.jetbrains_ide_versions["CL"].version}.tar.gz"
|
||||||
version = var.jetbrains_ide_versions["CL"].version
|
version = var.jetbrains_ide_versions["CL"].version
|
||||||
},
|
},
|
||||||
"PS" = {
|
"PS" = {
|
||||||
@@ -198,7 +218,7 @@ locals {
|
|||||||
name = "PhpStorm",
|
name = "PhpStorm",
|
||||||
identifier = "PS",
|
identifier = "PS",
|
||||||
build_number = var.jetbrains_ide_versions["PS"].build_number,
|
build_number = var.jetbrains_ide_versions["PS"].build_number,
|
||||||
download_link = "https://download.jetbrains.com/webide/PhpStorm-${var.jetbrains_ide_versions["PS"].version}.tar.gz"
|
download_link = "${var.download_base_link}/webide/PhpStorm-${var.jetbrains_ide_versions["PS"].version}.tar.gz"
|
||||||
version = var.jetbrains_ide_versions["PS"].version
|
version = var.jetbrains_ide_versions["PS"].version
|
||||||
},
|
},
|
||||||
"RM" = {
|
"RM" = {
|
||||||
@@ -206,7 +226,7 @@ locals {
|
|||||||
name = "RubyMine",
|
name = "RubyMine",
|
||||||
identifier = "RM",
|
identifier = "RM",
|
||||||
build_number = var.jetbrains_ide_versions["RM"].build_number,
|
build_number = var.jetbrains_ide_versions["RM"].build_number,
|
||||||
download_link = "https://download.jetbrains.com/ruby/RubyMine-${var.jetbrains_ide_versions["RM"].version}.tar.gz"
|
download_link = "${var.download_base_link}/ruby/RubyMine-${var.jetbrains_ide_versions["RM"].version}.tar.gz"
|
||||||
version = var.jetbrains_ide_versions["RM"].version
|
version = var.jetbrains_ide_versions["RM"].version
|
||||||
}
|
}
|
||||||
"RD" = {
|
"RD" = {
|
||||||
@@ -214,7 +234,7 @@ locals {
|
|||||||
name = "Rider",
|
name = "Rider",
|
||||||
identifier = "RD",
|
identifier = "RD",
|
||||||
build_number = var.jetbrains_ide_versions["RD"].build_number,
|
build_number = var.jetbrains_ide_versions["RD"].build_number,
|
||||||
download_link = "https://download.jetbrains.com/rider/JetBrains.Rider-${var.jetbrains_ide_versions["RD"].version}.tar.gz"
|
download_link = "${var.download_base_link}/rider/JetBrains.Rider-${var.jetbrains_ide_versions["RD"].version}.tar.gz"
|
||||||
version = var.jetbrains_ide_versions["RD"].version
|
version = var.jetbrains_ide_versions["RD"].version
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user