Skip to content

Commit b3c1248

Browse files
Fix opencode bootstrap timing across templates
1 parent 521c9f6 commit b3c1248

6 files changed

Lines changed: 87 additions & 113 deletions

File tree

workspaces/AdvancedHostDANGER/main.tf

Lines changed: 18 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -218,12 +218,12 @@ PULSECFG
218218
sudo ln -sf "$path" /home/coder/.local/bin/jupyter-lab || true
219219
fi
220220
done
221+
sudo chown -R "$USER:$USER" /home/coder/.local || true
221222
222223
mkdir -p ~/Projects
223224
if [ -n "$${DEFAULT_REPO_PATH:-}" ]; then
224225
mkdir -p "$DEFAULT_REPO_PATH"
225226
fi
226-
vscode_bootstrap_marker="$HOME/.vscode_bootstrap_done"
227227
python3 - <<'PY'
228228
import json
229229
import os
@@ -255,27 +255,14 @@ ${join(",\n", formatlist(" \"%s\"", local.vscode_extensions))}
255255
}
256256
VSCODEEXT
257257
fi
258-
if [ ! -f "$vscode_bootstrap_marker" ]; then
259-
vscode_extensions=(
260-
${join("\n", formatlist(" \"%s\"", local.vscode_extensions))}
261-
)
262-
installed_any="false"
263-
if command -v code >/dev/null 2>&1; then
264-
for ext in "$${vscode_extensions[@]}"; do
265-
code --install-extension "$ext" --force >/dev/null 2>&1 || true
266-
done
267-
installed_any="true"
268-
fi
269-
if command -v code-server >/dev/null 2>&1; then
270-
for ext in "$${vscode_extensions[@]}"; do
271-
code-server --install-extension "$ext" --force >/dev/null 2>&1 || true
272-
done
273-
installed_any="true"
274-
fi
275-
if [ "$installed_any" = "true" ]; then
276-
touch "$vscode_bootstrap_marker"
277-
fi
258+
mkdir -p ~/.opencode ~/.config/opencode
259+
if [ ! -f ~/.opencode/opencode.json ]; then
260+
cat > ~/.opencode/opencode.json <<'JSONCFG'
261+
{}
262+
JSONCFG
278263
fi
264+
ln -sf ~/.opencode/opencode.json ~/.opencode/config.json || true
265+
ln -sf ~/.opencode/opencode.json ~/.config/opencode/opencode.json || true
279266
280267
# Inicializar /etc/skel la primera vez
281268
if [ ! -f ~/.init_done ]; then
@@ -915,7 +902,16 @@ resource "docker_container" "workspace" {
915902
entrypoint = [
916903
"sh",
917904
"-c",
918-
replace(coder_agent.main.init_script, "/localhost|127\\.0\\.0\\.1/", "host.docker.internal")
905+
<<-EOT
906+
set -e
907+
mkdir -p /home/coder/.opencode /home/coder/.config/opencode
908+
if [ ! -f /home/coder/.opencode/opencode.json ]; then
909+
printf '{}' > /home/coder/.opencode/opencode.json
910+
fi
911+
ln -sf /home/coder/.opencode/opencode.json /home/coder/.opencode/config.json || true
912+
ln -sf /home/coder/.opencode/opencode.json /home/coder/.config/opencode/opencode.json || true
913+
${replace(coder_agent.main.init_script, "/localhost|127\\.0\\.0\\.1/", "host.docker.internal")}
914+
EOT
919915
]
920916

921917
env = [

workspaces/Developer/main.tf

Lines changed: 10 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -277,7 +277,6 @@ PULSECFG
277277
if [ -n "$${DEFAULT_REPO_PATH:-}" ]; then
278278
mkdir -p "$DEFAULT_REPO_PATH"
279279
fi
280-
vscode_bootstrap_marker="$HOME/.vscode_bootstrap_done"
281280
python3 - <<'PY'
282281
import json
283282
import os
@@ -309,27 +308,6 @@ ${join(",\n", formatlist(" \"%s\"", local.vscode_extensions))}
309308
}
310309
VSCODEEXT
311310
fi
312-
if [ ! -f "$vscode_bootstrap_marker" ]; then
313-
vscode_extensions=(
314-
${join("\n", formatlist(" \"%s\"", local.vscode_extensions))}
315-
)
316-
installed_any="false"
317-
if command -v code >/dev/null 2>&1; then
318-
for ext in "$${vscode_extensions[@]}"; do
319-
code --install-extension "$ext" --force >/dev/null 2>&1 || true
320-
done
321-
installed_any="true"
322-
fi
323-
if command -v code-server >/dev/null 2>&1; then
324-
for ext in "$${vscode_extensions[@]}"; do
325-
code-server --install-extension "$ext" --force >/dev/null 2>&1 || true
326-
done
327-
installed_any="true"
328-
fi
329-
if [ "$installed_any" = "true" ]; then
330-
touch "$vscode_bootstrap_marker"
331-
fi
332-
fi
333311
mkdir -p ~/.opencode ~/.config/opencode
334312
if [ ! -f ~/.opencode/opencode.json ]; then
335313
cat > ~/.opencode/opencode.json <<'JSONCFG'
@@ -1119,7 +1097,16 @@ resource "docker_container" "workspace" {
11191097
entrypoint = [
11201098
"sh",
11211099
"-c",
1122-
replace(coder_agent.main.init_script, "/localhost|127\\.0\\.0\\.1/", "host.docker.internal")
1100+
<<-EOT
1101+
set -e
1102+
mkdir -p /home/coder/.opencode /home/coder/.config/opencode
1103+
if [ ! -f /home/coder/.opencode/opencode.json ]; then
1104+
printf '{}' > /home/coder/.opencode/opencode.json
1105+
fi
1106+
ln -sf /home/coder/.opencode/opencode.json /home/coder/.opencode/config.json || true
1107+
ln -sf /home/coder/.opencode/opencode.json /home/coder/.config/opencode/opencode.json || true
1108+
${replace(coder_agent.main.init_script, "/localhost|127\\.0\\.0\\.1/", "host.docker.internal")}
1109+
EOT
11231110
]
11241111

11251112
env = [

workspaces/DeveloperAndroid/main.tf

Lines changed: 17 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -259,7 +259,6 @@ PULSECFG
259259
if [ -n "$${DEFAULT_REPO_PATH:-}" ]; then
260260
mkdir -p "$DEFAULT_REPO_PATH"
261261
fi
262-
vscode_bootstrap_marker="$HOME/.vscode_bootstrap_done"
263262
python3 - <<'PY'
264263
import json
265264
import os
@@ -291,27 +290,14 @@ ${join(",\n", formatlist(" \"%s\"", local.vscode_extensions))}
291290
}
292291
VSCODEEXT
293292
fi
294-
if [ ! -f "$vscode_bootstrap_marker" ]; then
295-
vscode_extensions=(
296-
${join("\n", formatlist(" \"%s\"", local.vscode_extensions))}
297-
)
298-
installed_any="false"
299-
if command -v code >/dev/null 2>&1; then
300-
for ext in "$${vscode_extensions[@]}"; do
301-
code --install-extension "$ext" --force >/dev/null 2>&1 || true
302-
done
303-
installed_any="true"
304-
fi
305-
if command -v code-server >/dev/null 2>&1; then
306-
for ext in "$${vscode_extensions[@]}"; do
307-
code-server --install-extension "$ext" --force >/dev/null 2>&1 || true
308-
done
309-
installed_any="true"
310-
fi
311-
if [ "$installed_any" = "true" ]; then
312-
touch "$vscode_bootstrap_marker"
313-
fi
293+
mkdir -p ~/.opencode ~/.config/opencode
294+
if [ ! -f ~/.opencode/opencode.json ]; then
295+
cat > ~/.opencode/opencode.json <<'JSONCFG'
296+
{}
297+
JSONCFG
314298
fi
299+
ln -sf ~/.opencode/opencode.json ~/.opencode/config.json || true
300+
ln -sf ~/.opencode/opencode.json ~/.config/opencode/opencode.json || true
315301
316302
# KasmVNC busca startkde; en Plasma moderno es startplasma-x11
317303
if [ -x /usr/bin/startplasma-x11 ] && [ ! -x /usr/bin/startkde ]; then
@@ -875,7 +861,16 @@ resource "docker_container" "workspace" {
875861
entrypoint = [
876862
"sh",
877863
"-c",
878-
replace(coder_agent.main.init_script, "/localhost|127\\.0\\.0\\.1/", "host.docker.internal")
864+
<<-EOT
865+
set -e
866+
mkdir -p /home/coder/.opencode /home/coder/.config/opencode
867+
if [ ! -f /home/coder/.opencode/opencode.json ]; then
868+
printf '{}' > /home/coder/.opencode/opencode.json
869+
fi
870+
ln -sf /home/coder/.opencode/opencode.json /home/coder/.opencode/config.json || true
871+
ln -sf /home/coder/.opencode/opencode.json /home/coder/.config/opencode/opencode.json || true
872+
${replace(coder_agent.main.init_script, "/localhost|127\\.0\\.0\\.1/", "host.docker.internal")}
873+
EOT
879874
]
880875

881876
env = [

workspaces/Maker/main.tf

Lines changed: 17 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -207,7 +207,6 @@ PULSECFG
207207
if [ -n "$${DEFAULT_REPO_PATH:-}" ]; then
208208
mkdir -p "$DEFAULT_REPO_PATH"
209209
fi
210-
vscode_bootstrap_marker="$HOME/.vscode_bootstrap_done"
211210
python3 - <<'PY'
212211
import json
213212
import os
@@ -239,27 +238,14 @@ ${join(",\n", formatlist(" \"%s\"", local.vscode_extensions))}
239238
}
240239
VSCODEEXT
241240
fi
242-
if [ ! -f "$vscode_bootstrap_marker" ]; then
243-
vscode_extensions=(
244-
${join("\n", formatlist(" \"%s\"", local.vscode_extensions))}
245-
)
246-
installed_any="false"
247-
if command -v code >/dev/null 2>&1; then
248-
for ext in "$${vscode_extensions[@]}"; do
249-
code --install-extension "$ext" --force >/dev/null 2>&1 || true
250-
done
251-
installed_any="true"
252-
fi
253-
if command -v code-server >/dev/null 2>&1; then
254-
for ext in "$${vscode_extensions[@]}"; do
255-
code-server --install-extension "$ext" --force >/dev/null 2>&1 || true
256-
done
257-
installed_any="true"
258-
fi
259-
if [ "$installed_any" = "true" ]; then
260-
touch "$vscode_bootstrap_marker"
261-
fi
241+
mkdir -p ~/.opencode ~/.config/opencode
242+
if [ ! -f ~/.opencode/opencode.json ]; then
243+
cat > ~/.opencode/opencode.json <<'JSONCFG'
244+
{}
245+
JSONCFG
262246
fi
247+
ln -sf ~/.opencode/opencode.json ~/.opencode/config.json || true
248+
ln -sf ~/.opencode/opencode.json ~/.config/opencode/opencode.json || true
263249
264250
# KasmVNC busca startkde; en Plasma moderno es startplasma-x11
265251
if [ -x /usr/bin/startplasma-x11 ] && [ ! -x /usr/bin/startkde ]; then
@@ -819,7 +805,16 @@ resource "docker_container" "workspace" {
819805
entrypoint = [
820806
"sh",
821807
"-c",
822-
replace(coder_agent.main.init_script, "/localhost|127\\.0\\.0\\.1/", "host.docker.internal")
808+
<<-EOT
809+
set -e
810+
mkdir -p /home/coder/.opencode /home/coder/.config/opencode
811+
if [ ! -f /home/coder/.opencode/opencode.json ]; then
812+
printf '{}' > /home/coder/.opencode/opencode.json
813+
fi
814+
ln -sf /home/coder/.opencode/opencode.json /home/coder/.opencode/config.json || true
815+
ln -sf /home/coder/.opencode/opencode.json /home/coder/.config/opencode/opencode.json || true
816+
${replace(coder_agent.main.init_script, "/localhost|127\\.0\\.0\\.1/", "host.docker.internal")}
817+
EOT
823818
]
824819

825820
env = [

workspaces/Minimal/main.tf

Lines changed: 17 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -194,7 +194,6 @@ resource "coder_agent" "main" {
194194
sudo chown "$USER:$USER" /home/coder || true
195195
196196
mkdir -p ~/Projects
197-
vscode_bootstrap_marker="$HOME/.vscode_bootstrap_done"
198197
python3 - <<'PY'
199198
import json
200199
import os
@@ -226,27 +225,14 @@ ${join(",\n", formatlist(" \"%s\"", local.vscode_extensions))}
226225
}
227226
VSCODEEXT
228227
fi
229-
if [ ! -f "$vscode_bootstrap_marker" ]; then
230-
vscode_extensions=(
231-
${join("\n", formatlist(" \"%s\"", local.vscode_extensions))}
232-
)
233-
installed_any="false"
234-
if command -v code >/dev/null 2>&1; then
235-
for ext in "$${vscode_extensions[@]}"; do
236-
code --install-extension "$ext" --force >/dev/null 2>&1 || true
237-
done
238-
installed_any="true"
239-
fi
240-
if command -v code-server >/dev/null 2>&1; then
241-
for ext in "$${vscode_extensions[@]}"; do
242-
code-server --install-extension "$ext" --force >/dev/null 2>&1 || true
243-
done
244-
installed_any="true"
245-
fi
246-
if [ "$installed_any" = "true" ]; then
247-
touch "$vscode_bootstrap_marker"
248-
fi
228+
mkdir -p ~/.opencode ~/.config/opencode
229+
if [ ! -f ~/.opencode/opencode.json ]; then
230+
cat > ~/.opencode/opencode.json <<'JSONCFG'
231+
{}
232+
JSONCFG
249233
fi
234+
ln -sf ~/.opencode/opencode.json ~/.opencode/config.json || true
235+
ln -sf ~/.opencode/opencode.json ~/.config/opencode/opencode.json || true
250236
251237
# Asegurar permisos de pipx para el usuario actual
252238
sudo mkdir -p /opt/pipx /opt/pipx/bin
@@ -522,7 +508,16 @@ resource "docker_container" "workspace" {
522508
entrypoint = [
523509
"sh",
524510
"-c",
525-
replace(coder_agent.main.init_script, "/localhost|127\\.0\\.0\\.1/", "host.docker.internal")
511+
<<-EOT
512+
set -e
513+
mkdir -p /home/coder/.opencode /home/coder/.config/opencode
514+
if [ ! -f /home/coder/.opencode/opencode.json ]; then
515+
printf '{}' > /home/coder/.opencode/opencode.json
516+
fi
517+
ln -sf /home/coder/.opencode/opencode.json /home/coder/.opencode/config.json || true
518+
ln -sf /home/coder/.opencode/opencode.json /home/coder/.config/opencode/opencode.json || true
519+
${replace(coder_agent.main.init_script, "/localhost|127\\.0\\.0\\.1/", "host.docker.internal")}
520+
EOT
526521
]
527522

528523
env = [

workspaces/ProxmoxVM/main.tf

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ provider "coder" {}
1414
provider "proxmox" {
1515
endpoint = var.proxmox_api_url
1616
api_token = "${var.proxmox_api_token_id}=${var.proxmox_api_token_secret}"
17-
insecure = true
17+
insecure = var.proxmox_insecure
1818

1919
# SSH is needed for file uploads to Proxmox
2020
ssh {
@@ -42,6 +42,12 @@ variable "proxmox_api_token_secret" {
4242
sensitive = true
4343
}
4444

45+
variable "proxmox_insecure" {
46+
description = "Disable TLS verification for the Proxmox API"
47+
type = bool
48+
default = true
49+
}
50+
4551

4652
variable "proxmox_host" {
4753
description = "Proxmox node IP or DNS for SSH"
@@ -280,4 +286,4 @@ module "cursor" {
280286
source = "registry.coder.com/coder/cursor/coder"
281287
version = "1.3.0"
282288
agent_id = coder_agent.dev.id
283-
}
289+
}

0 commit comments

Comments
 (0)