From 836eea6fc6035c2bf0c5235487b768446079862f Mon Sep 17 00:00:00 2001 From: Nic O'Connor Date: Mon, 13 Jul 2026 16:08:53 -0400 Subject: [PATCH] bin/install.sh: add packer installation --- README.md | 16 ++++++++-------- bin/install.sh | 16 ++++++++++++++++ 2 files changed, 24 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index ebee5cd..23df411 100644 --- a/README.md +++ b/README.md @@ -41,14 +41,14 @@ Already have a clone? Just run it directly: linked release binaries into `~/.local/bin`: jq, kubectl, helm, k9s, kubectx/kubens, stern, yq, OpenTofu, terragrunt, task (go-task, the Taskfile runner), the 1Password CLI `op` for secrets storage, the - opencode coding agent, and zarf (DevSecOps for Offline and Airgapped - Kubernetes). kind is installed - only when full (non-rootless) Docker is available — it doesn't work - against rootless Docker, so it is skipped on Kasm. No sudo, nothing - outside `$HOME`, so tools persist across Kasm redeploys with no - reinstall. Idempotent: each tool records its version under - `~/.local/bin/.versions` and is skipped when the pinned version is - already present. `zsh/zshrc` puts `~/.local/bin` on `PATH`. + opencode coding agent, zarf (DevSecOps for Offline and Airgapped + Kubernetes), and packer (HashiCorp's infrastructure build tool). + kind is installed only when full (non-rootless) Docker is available — + it doesn't work against rootless Docker, so it is skipped on Kasm. + No sudo, nothing outside `$HOME`, so tools persist across Kasm + redeploys with no reinstall. Idempotent: each tool records its version + under `~/.local/bin/.versions` and is skipped when the pinned version + is already present. `zsh/zshrc` puts `~/.local/bin` on `PATH`. opencode is configured by `mcp-config/`: it points at the covert-gpt LiteLLM gateway (`https://llm.covert-gpt.com/v1` for models, diff --git a/bin/install.sh b/bin/install.sh index e86c741..15caf15 100755 --- a/bin/install.sh +++ b/bin/install.sh @@ -179,6 +179,21 @@ install_task() { mark_version task "$ver" } +# packer — infrastructure as code build tool (single static binary). +install_packer() { + ver=1.15.4 + have_version packer "$ver" && { fsay "packer $ver already installed."; return 0; } + case "$(fetch_arch)" in + x86_64) _packer_arch=amd64 ;; + aarch64) _packer_arch=arm64 ;; + *) fsay "packer: unsupported arch $(uname -m)"; return 1 ;; + esac + install_zip_bin \ + "https://releases.hashicorp.com/packer/$ver/packer_${ver}_linux_$_packer_arch.zip" \ + packer packer + mark_version packer "$ver" +} + # terragrunt — thin wrapper around tofu/terraform (single static binary). install_terragrunt() { ver=v1.1.0 @@ -226,6 +241,7 @@ try install_terragrunt try install_1p try install_opencode try install_zarf +try install_packer if [ -n "$FAILED" ]; then fsay ""