Update template v2
This commit is contained in:
@@ -15,9 +15,8 @@ data "coder_provisioner" "me" {}
|
||||
data "coder_workspace" "me" {}
|
||||
data "coder_workspace_owner" "me" {}
|
||||
|
||||
# 環境變數:GitHub token for Copilot
|
||||
variable "github_token" {
|
||||
description = "GitHub token for Copilot authentication (optional)"
|
||||
description = "GitHub token for Copilot (optional)"
|
||||
type = string
|
||||
sensitive = true
|
||||
default = ""
|
||||
@@ -26,34 +25,31 @@ variable "github_token" {
|
||||
resource "coder_agent" "main" {
|
||||
arch = data.coder_provisioner.me.arch
|
||||
os = "linux"
|
||||
|
||||
startup_script = <<-EOT
|
||||
set -e
|
||||
#!/bin/bash
|
||||
set +e
|
||||
|
||||
# 初始化使用者目錄
|
||||
if [ ! -f ~/.init_done ]; then
|
||||
cp -rT /etc/skel ~ || true
|
||||
cp -rT /etc/skel ~ 2>/dev/null || true
|
||||
touch ~/.init_done
|
||||
fi
|
||||
|
||||
# 確保必要目錄存在
|
||||
mkdir -p ~/.config ~/.cache ~/.local/share
|
||||
|
||||
# 安裝 VSCode Server extensions(可選)
|
||||
# code-server --install-extension github.copilot
|
||||
# code-server --install-extension ms-vscode.cpptools
|
||||
# 確保 code-server 運行中
|
||||
# codercom/enterprise-base 已預裝 code-server
|
||||
# Coder agent 會自動管理 code-server 進程
|
||||
EOT
|
||||
|
||||
# Git 認證配置
|
||||
env = {
|
||||
GIT_AUTHOR_NAME = coalesce(data.coder_workspace_owner.me.full_name, data.coder_workspace_owner.me.name)
|
||||
GIT_AUTHOR_EMAIL = "${data.coder_workspace_owner.me.email}"
|
||||
GIT_AUTHOR_EMAIL = data.coder_workspace_owner.me.email
|
||||
GIT_COMMITTER_NAME = coalesce(data.coder_workspace_owner.me.full_name, data.coder_workspace_owner.me.name)
|
||||
GIT_COMMITTER_EMAIL = "${data.coder_workspace_owner.me.email}"
|
||||
# GitHub Copilot 認證
|
||||
GIT_COMMITTER_EMAIL = data.coder_workspace_owner.me.email
|
||||
GITHUB_TOKEN = var.github_token != "" ? var.github_token : ""
|
||||
}
|
||||
|
||||
# 監控指標
|
||||
metadata {
|
||||
display_name = "CPU Usage"
|
||||
key = "0_cpu_usage"
|
||||
@@ -97,9 +93,7 @@ resource "coder_agent" "main" {
|
||||
metadata {
|
||||
display_name = "Load Average (Host)"
|
||||
key = "6_load_host"
|
||||
script = <<EOT
|
||||
echo "`cat /proc/loadavg | awk '{ print $1 }'` `nproc`" | awk '{ printf "%0.2f", $1/$2 }'
|
||||
EOT
|
||||
script = "echo \"$$(cat /proc/loadavg | awk '{ print $$1 }') $$(nproc)\" | awk '{ printf \"%0.2f\", $$1/$$2 }'"
|
||||
interval = 60
|
||||
timeout = 1
|
||||
}
|
||||
@@ -107,32 +101,38 @@ resource "coder_agent" "main" {
|
||||
metadata {
|
||||
display_name = "Swap Usage (Host)"
|
||||
key = "7_swap_host"
|
||||
script = <<EOT
|
||||
free -b | awk '/^Swap/ { printf("%.1f/%.1f", $3/1024.0/1024.0/1024.0, $2/1024.0/1024.0/1024.0) }'
|
||||
EOT
|
||||
script = "free -b | awk '/^Swap/ { printf(\"%.1f/%.1f\", $$3/1024.0/1024.0/1024.0, $$2/1024.0/1024.0/1024.0) }'"
|
||||
interval = 10
|
||||
timeout = 1
|
||||
}
|
||||
}
|
||||
|
||||
# See https://registry.coder.com/modules/coder/code-server
|
||||
module "code-server" {
|
||||
# code-server 應用配置
|
||||
resource "coder_app" "code_server" {
|
||||
count = data.coder_workspace.me.start_count
|
||||
source = "registry.coder.com/coder/code-server/coder"
|
||||
version = "~> 1.0"
|
||||
|
||||
agent_id = coder_agent.main.id
|
||||
agent_os = "linux"
|
||||
folder = "/home/coder"
|
||||
slug = "code-server"
|
||||
display_name = "code-server"
|
||||
icon = "/icon/code.svg"
|
||||
url = "http://localhost:13337"
|
||||
subdomain = false
|
||||
share = "owner"
|
||||
|
||||
healthcheck {
|
||||
url = "http://localhost:13337/health"
|
||||
interval = 3
|
||||
threshold = 10
|
||||
}
|
||||
}
|
||||
|
||||
# See https://registry.coder.com/modules/coder/jetbrains
|
||||
module "jetbrains" {
|
||||
# JetBrains IDE 支援(可選)
|
||||
resource "coder_app" "jetbrains" {
|
||||
count = data.coder_workspace.me.start_count
|
||||
source = "registry.coder.com/coder/jetbrains/coder"
|
||||
version = "~> 1.1"
|
||||
agent_id = coder_agent.main.id
|
||||
agent_name = "main"
|
||||
folder = "/home/coder"
|
||||
tooltip = "You need to [install JetBrains Toolbox](https://coder.com/docs/user-guides/workspace-access/jetbrains/toolbox) to use this app."
|
||||
slug = "jetbrains"
|
||||
display_name = "JetBrains Toolbox"
|
||||
icon = "/icon/jetbrains.svg"
|
||||
url = "http://localhost:5037"
|
||||
subdomain = false
|
||||
share = "owner"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user