60 lines
1.3 KiB
HCL
60 lines
1.3 KiB
HCL
# main.tf (無 Docker provider 版,單容器 VSCode)
|
||
terraform {
|
||
required_providers {
|
||
coder = {
|
||
source = "coder/coder"
|
||
}
|
||
}
|
||
}
|
||
|
||
provider "coder" {}
|
||
|
||
# 基本 workspace 資料
|
||
data "coder_workspace" "me" {}
|
||
|
||
# 取得使用者名稱
|
||
data "coder_workspace_owner" "me" {}
|
||
|
||
# 自動建立使用者 config 目錄與預設設定(使用 dir,無 shell)
|
||
resource "coder_agent" "main" {
|
||
os = "linux"
|
||
arch = "amd64"
|
||
|
||
dir = "/projects/${data.coder_workspace_owner.me.name}"
|
||
|
||
# 預設 VSCode 設定檔
|
||
env = {
|
||
CODE_SERVER_CONFIG = <<EOF
|
||
{
|
||
"workbench.colorTheme": "Default Dark+"
|
||
}
|
||
EOF
|
||
}
|
||
|
||
# 登出自動存檔
|
||
shutdown_script = <<EOF
|
||
#!/bin/bash
|
||
code-server --sync-settings || true
|
||
echo "Saved for ${data.coder_workspace_owner.me.name}"
|
||
EOF
|
||
}
|
||
|
||
# 磁碟監控(使用 coder_metadata 資源)
|
||
resource "coder_metadata" "disk_usage" {
|
||
resource_id = coder_agent.main.id
|
||
|
||
item {
|
||
key = "disk"
|
||
value = "10GB"
|
||
}
|
||
}
|
||
|
||
# VSCode Web App(連到 Coder server 的 code-server)
|
||
resource "coder_app" "code-server" {
|
||
agent_id = coder_agent.main.id
|
||
slug = "vscode"
|
||
display_name = "VSCode Web"
|
||
url = "http://localhost:6800/?folder=/projects/${data.coder_workspace_owner.me.name}"
|
||
icon = "/icon/code.svg"
|
||
subdomain = true
|
||
} |