@ -9,6 +9,9 @@ terraform {
}
}
data " coder_workspace " " me " { }
data " coder_workspace_owner " " me " { }
# Add required var iables for your module s and remove any unneeded var iables
variable " agent_id " {
type = string
@ -36,6 +39,12 @@ variable "share" {
}
}
variable " subdomain " {
type = bool
description = " Determines whether JupyterLab will be accessed via it's own subdomain or whether it will be accessed via a path on Coder. "
default = true
}
variable " order " {
type = number
description = " The order determines the position of app in the UI presentation. The lowest order is shown first and apps with equal order are sorted by name (ascending order). "
@ -49,17 +58,26 @@ resource "coder_script" "jupyterlab" {
script = templatefile ( " ${ path . module } /run.sh " , {
LOG_PATH : var . log_path ,
PORT : var . port
BASE_URL : var . subdomain ? " http://localhost: ${ var . port } /@ ${ data . coder_workspace_owner . me . name } / ${ data . coder_workspace . me . name } /apps/jupyterlab " : " "
} )
run_on_start = true
}
resource " coder_app " " jupyterlab " {
agent_id = var . agent_id
slug = " jupyterlab "
slug = " jupyterlab " # sync with with end of subdomain URL
display_name = " JupyterLab "
url = " http://localhost: ${ var . port } "
url = var . subdomain ? " http://localhost: ${ var . port } /@ ${ data . coder_workspace_owner . me . name } / ${ data . coder_workspace . me . name } /apps/jupyterlab " : " http://localhost: ${ var . port } "
icon = " /icon/jupyter.svg "
subdomain = true
subdomain = var . subdomain
share = var . share
order = var . order
}
dynamic " healthcheck " {
for_each = var . subdomain ? toset ( [ true ] ) : toset ( [ ] )
content {
url = " http://localhost: ${ var . port } /@ ${ data . coder_workspace_owner . me . name } / ${ data . coder_workspace . me . name } /apps/jupyterlab "
interval = 6
threshold = 10
}
}