bin/install.sh: add packer installation

This commit is contained in:
2026-07-13 16:08:53 -04:00
parent 4cde3f5346
commit 836eea6fc6
2 changed files with 24 additions and 8 deletions
+8 -8
View File
@@ -41,14 +41,14 @@ Already have a clone? Just run it directly:
linked release binaries into `~/.local/bin`: jq, kubectl, helm, k9s, linked release binaries into `~/.local/bin`: jq, kubectl, helm, k9s,
kubectx/kubens, stern, yq, OpenTofu, terragrunt, task (go-task, the kubectx/kubens, stern, yq, OpenTofu, terragrunt, task (go-task, the
Taskfile runner), the 1Password CLI `op` for secrets storage, the Taskfile runner), the 1Password CLI `op` for secrets storage, the
opencode coding agent, and zarf (DevSecOps for Offline and Airgapped opencode coding agent, zarf (DevSecOps for Offline and Airgapped
Kubernetes). kind is installed Kubernetes), and packer (HashiCorp's infrastructure build tool).
only when full (non-rootless) Docker is available — it doesn't work kind is installed only when full (non-rootless) Docker is available —
against rootless Docker, so it is skipped on Kasm. No sudo, nothing it doesn't work against rootless Docker, so it is skipped on Kasm.
outside `$HOME`, so tools persist across Kasm redeploys with no No sudo, nothing outside `$HOME`, so tools persist across Kasm
reinstall. Idempotent: each tool records its version under redeploys with no reinstall. Idempotent: each tool records its version
`~/.local/bin/.versions` and is skipped when the pinned version is under `~/.local/bin/.versions` and is skipped when the pinned version
already present. `zsh/zshrc` puts `~/.local/bin` on `PATH`. is already present. `zsh/zshrc` puts `~/.local/bin` on `PATH`.
opencode is configured by `mcp-config/`: it points at the covert-gpt opencode is configured by `mcp-config/`: it points at the covert-gpt
LiteLLM gateway (`https://llm.covert-gpt.com/v1` for models, LiteLLM gateway (`https://llm.covert-gpt.com/v1` for models,
+16
View File
@@ -179,6 +179,21 @@ install_task() {
mark_version task "$ver" 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). # terragrunt — thin wrapper around tofu/terraform (single static binary).
install_terragrunt() { install_terragrunt() {
ver=v1.1.0 ver=v1.1.0
@@ -226,6 +241,7 @@ try install_terragrunt
try install_1p try install_1p
try install_opencode try install_opencode
try install_zarf try install_zarf
try install_packer
if [ -n "$FAILED" ]; then if [ -n "$FAILED" ]; then
fsay "" fsay ""