feat: support Jetbrains Fleet
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
parent
3000812b15
commit
b81e97116f
2 changed files with 53 additions and 12 deletions
|
@ -43,6 +43,28 @@ write_files:
|
|||
permissions: "0644"
|
||||
content: |
|
||||
export DOCKER_HOST=unix:///run/user/$UID/podman/podman.sock
|
||||
%{ endif ~}
|
||||
%{ if remote_ide_setup == "fleet" ~}
|
||||
- path: /etc/systemd/system/fleet.service
|
||||
permissions: "0644"
|
||||
content: |
|
||||
[Unit]
|
||||
Description=Fleet
|
||||
After=network-online.target
|
||||
Wants=network-online.target
|
||||
|
||||
[Service]
|
||||
User=${username}
|
||||
ExecStart=/usr/local/bin/fleet launch workspace --version 1.19.111 -- --auth=accept-everyone --enableSmartMode --workspacePort 3500
|
||||
Restart=always
|
||||
RestartSec=10
|
||||
TimeoutStopSec=90
|
||||
KillMode=process
|
||||
|
||||
SyslogIdentifier=fleet
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
%{ endif ~}
|
||||
- path: /etc/systemd/system/coder-agent.service
|
||||
permissions: "0644"
|
||||
|
@ -66,7 +88,7 @@ write_files:
|
|||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
%{ if code_server_setup ~}
|
||||
%{ if remote_ide_setup == "code_server" ~}
|
||||
- path: /home/${username}/.config/code-server/config.yaml
|
||||
permissions: "0644"
|
||||
content: |
|
||||
|
@ -84,8 +106,11 @@ runcmd:
|
|||
- chown -R ${username}:${username} /home/${username}
|
||||
- sudo -u ${username} DBUS_SESSION_BUS_ADDRESS="unix:path=/run/user/1000/bus" systemctl --user start podman
|
||||
%{ endif ~}
|
||||
%{ if code_server_setup ~}
|
||||
%{ if remote_ide_setup == "code_server" ~}
|
||||
- dnf install -y $(curl -sL https://api.github.com/repos/coder/code-server/releases/latest | jq -r '.assets[].browser_download_url' | grep "amd64.rpm")
|
||||
- systemctl enable --now code-server@${username}
|
||||
%{ endif }
|
||||
%{ if remote_ide_setup == "fleet" ~}
|
||||
- systemctl enable --now fleet
|
||||
%{ endif }
|
||||
- chown -R ${username}:${username} /home/${username}
|
|
@ -177,21 +177,27 @@ data "coder_parameter" "volume_size" {
|
|||
}
|
||||
}
|
||||
|
||||
data "coder_parameter" "code_server" {
|
||||
name = "install_code_server"
|
||||
description = "Should Code Server be installed?"
|
||||
default = "true"
|
||||
data "coder_parameter" "remote_ide" {
|
||||
name = "install_remote_ide"
|
||||
description = "Which remote IDE should be installed"
|
||||
default = "code_server"
|
||||
type = "string"
|
||||
mutable = true
|
||||
|
||||
|
||||
option {
|
||||
name = "Install"
|
||||
value = "true"
|
||||
name = "None"
|
||||
value = "none"
|
||||
}
|
||||
|
||||
option {
|
||||
name = "Don't install"
|
||||
value = "false"
|
||||
name = "Code server"
|
||||
value = "code_server"
|
||||
}
|
||||
|
||||
option {
|
||||
name = "Jetbrains Fleet"
|
||||
value = "fleet"
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -228,7 +234,7 @@ resource "coder_agent" "dev" {
|
|||
|
||||
resource "coder_app" "code-server" {
|
||||
display_name = "code-server"
|
||||
count = data.coder_parameter.code_server.value ? 1 : 0
|
||||
count = data.coder_parameter.remote_ide.value == "code_server" ? 1 : 0
|
||||
agent_id = coder_agent.dev.id
|
||||
slug = "code-server"
|
||||
icon = "/icon/code.svg"
|
||||
|
@ -236,6 +242,16 @@ resource "coder_app" "code-server" {
|
|||
subdomain = var.use_subdomain
|
||||
}
|
||||
|
||||
resource "coder_app" "fleet" {
|
||||
display_name = "Jetbrains Fleet"
|
||||
count = data.coder_parameter.remote_ide.value == "fleet" ? 1 : 0
|
||||
agent_id = coder_agent.dev.id
|
||||
slug = "fleet"
|
||||
icon = "/icon/code.svg"
|
||||
url = "http://localhost:3500"
|
||||
subdomain = var.use_subdomain
|
||||
}
|
||||
|
||||
# Generate a dummy ssh key that is not accessible so Hetzner cloud does not spam the admin with emails.
|
||||
resource "tls_private_key" "rsa_4096" {
|
||||
algorithm = "RSA"
|
||||
|
@ -260,7 +276,7 @@ resource "hcloud_server" "root" {
|
|||
volume_path = "/dev/disk/by-id/scsi-0HC_Volume_${hcloud_volume.root.id}"
|
||||
init_script = base64encode(coder_agent.dev.init_script)
|
||||
coder_agent_token = coder_agent.dev.token
|
||||
code_server_setup = data.coder_parameter.code_server.value
|
||||
remote_ide_setup = data.coder_parameter.remote_ide.value
|
||||
install_podman_setup = data.coder_parameter.install_podman.value
|
||||
user_shell = data.coder_parameter.user_shell.value
|
||||
})
|
||||
|
|
Loading…
Reference in a new issue