From 24e67a3c2bfa66ac194287a02b96590854e6ddee Mon Sep 17 00:00:00 2001 From: dan-claude-bot Date: Sat, 18 Jul 2026 20:20:49 +0000 Subject: [PATCH] =?UTF-8?q?fix(templates):=20pin=20HOME=3D/root=20on=20the?= =?UTF-8?q?=20seed's=20rig=20install=20=E2=80=94=20runcmd=20has=20no=20$HO?= =?UTF-8?q?ME?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Measured live on the first e2e mint: cloud-init runs runcmd as root but with NO $HOME in the environment, and rig's installer (set -u) reads $HOME for its DEST — the mint died with 'HOME: unbound variable'. The seed line now pins HOME=/root explicitly, with the scar documented next to it in every tenant template. Co-Authored-By: Claude Fable 5 --- templates/claude/user-data.yaml | 5 ++++- templates/codex/user-data.yaml | 5 ++++- templates/grok/user-data.yaml | 5 ++++- templates/staging/user-data.yaml | 5 ++++- 4 files changed, 16 insertions(+), 4 deletions(-) diff --git a/templates/claude/user-data.yaml b/templates/claude/user-data.yaml index fbee359..f5ae844 100644 --- a/templates/claude/user-data.yaml +++ b/templates/claude/user-data.yaml @@ -27,4 +27,7 @@ runcmd: # honest edge as rig's own unpinned box install, until rig#32 ships a # release flow). The pin covers both the installer fetched AND the tree # it installs, so a branch under review is testable end to end. - - curl -fsSL https://raw.githubusercontent.com/@RIG_REPO@/@RIG_REF@/install.sh | RIG_REPO="@RIG_REPO@" RIG_REF="@RIG_REF@" bash + # HOME=/root: cloud-init runs runcmd as root but with NO $HOME in the + # environment, and the rig installer (set -u) reads $HOME for its DEST — + # measured live: the mint died with "HOME: unbound variable" without it. + - curl -fsSL https://raw.githubusercontent.com/@RIG_REPO@/@RIG_REF@/install.sh | HOME=/root RIG_REPO="@RIG_REPO@" RIG_REF="@RIG_REF@" bash diff --git a/templates/codex/user-data.yaml b/templates/codex/user-data.yaml index 7a443c1..aaedfe8 100644 --- a/templates/codex/user-data.yaml +++ b/templates/codex/user-data.yaml @@ -27,4 +27,7 @@ runcmd: # honest edge as rig's own unpinned box install, until rig#32 ships a # release flow). The pin covers both the installer fetched AND the tree # it installs, so a branch under review is testable end to end. - - curl -fsSL https://raw.githubusercontent.com/@RIG_REPO@/@RIG_REF@/install.sh | RIG_REPO="@RIG_REPO@" RIG_REF="@RIG_REF@" bash + # HOME=/root: cloud-init runs runcmd as root but with NO $HOME in the + # environment, and the rig installer (set -u) reads $HOME for its DEST — + # measured live: the mint died with "HOME: unbound variable" without it. + - curl -fsSL https://raw.githubusercontent.com/@RIG_REPO@/@RIG_REF@/install.sh | HOME=/root RIG_REPO="@RIG_REPO@" RIG_REF="@RIG_REF@" bash diff --git a/templates/grok/user-data.yaml b/templates/grok/user-data.yaml index 4f67b07..24b4178 100644 --- a/templates/grok/user-data.yaml +++ b/templates/grok/user-data.yaml @@ -27,4 +27,7 @@ runcmd: # honest edge as rig's own unpinned box install, until rig#32 ships a # release flow). The pin covers both the installer fetched AND the tree # it installs, so a branch under review is testable end to end. - - curl -fsSL https://raw.githubusercontent.com/@RIG_REPO@/@RIG_REF@/install.sh | RIG_REPO="@RIG_REPO@" RIG_REF="@RIG_REF@" bash + # HOME=/root: cloud-init runs runcmd as root but with NO $HOME in the + # environment, and the rig installer (set -u) reads $HOME for its DEST — + # measured live: the mint died with "HOME: unbound variable" without it. + - curl -fsSL https://raw.githubusercontent.com/@RIG_REPO@/@RIG_REF@/install.sh | HOME=/root RIG_REPO="@RIG_REPO@" RIG_REF="@RIG_REF@" bash diff --git a/templates/staging/user-data.yaml b/templates/staging/user-data.yaml index 4cec701..444c35d 100644 --- a/templates/staging/user-data.yaml +++ b/templates/staging/user-data.yaml @@ -28,4 +28,7 @@ runcmd: # honest edge as rig's own unpinned box install, until rig#32 ships a # release flow). The pin covers both the installer fetched AND the tree # it installs, so a branch under review is testable end to end. - - curl -fsSL https://raw.githubusercontent.com/@RIG_REPO@/@RIG_REF@/install.sh | RIG_REPO="@RIG_REPO@" RIG_REF="@RIG_REF@" bash + # HOME=/root: cloud-init runs runcmd as root but with NO $HOME in the + # environment, and the rig installer (set -u) reads $HOME for its DEST — + # measured live: the mint died with "HOME: unbound variable" without it. + - curl -fsSL https://raw.githubusercontent.com/@RIG_REPO@/@RIG_REF@/install.sh | HOME=/root RIG_REPO="@RIG_REPO@" RIG_REF="@RIG_REF@" bash