Skip to content

Instantly share code, notes, and snippets.

View bpmct's full-sized avatar
🥝

Ben Potter bpmct

🥝
View GitHub Profile
@bpmct
bpmct / instructions.md
Last active June 19, 2026 16:23
Adding external SSD as Steam library on Asahi Linux (FEX-Emu/muvm)

Adding an External SSD as a Steam Library on Asahi Linux

Steam on Asahi Linux runs x86_64 binaries via FEX-Emu inside a muvm MicroVM. This causes two problems that prevent adding an external drive as a Steam library through the normal UI.

Symptoms

  • Settings → Storage shows nothing / "Add Drive" does nothing
  • Manually selecting a path gives no feedback or silently fails

Root Causes

@bpmct
bpmct / vscode-remote-nixos.md
Created June 12, 2026 12:28
VS Code Remote SSH on NixOS: fix for bundled node ELF interpreter error

VS Code Remote SSH on NixOS — fix for "cannot execute: required file not found"

When connecting VS Code to a NixOS machine via Remote SSH, the server install fails with:

Error installing server: error checking server integrity: failed to run command
".../server/bin/code-server --version" (code 127):
.../server/bin/code-server: line 22: .../server/node: cannot execute: required file not found
@bpmct
bpmct / validation.md
Created April 8, 2026 19:25
Validation notes for coder/coder#23501 (Gateway API HTTPRoute helm support)

Gateway API HTTPRoute Helm Chart Validation

Tested PR #23501 on a bare kubeadm cluster (arm64, Pi 5, k8s 1.30).

Setup

  • Single-node kubeadm cluster with Calico CNI
  • Gateway API CRDs v1.2.1 (standard channel)
  • Traefik v3 as the Gateway controller (via helm)
@bpmct
bpmct / k8s-repro.md
Created April 3, 2026 18:48
Skill: Lightweight K8s (k3s) in Coder Workspaces

Lightweight K8s in Coder Workspaces

Spin up a minimal Kubernetes cluster inside a Coder workspace. Uses k3s with sudo (no systemd).

Limitations

  • Containers won't actually run. The OCI runtime fails with unsafe procfs because the workspace itself is a container. Pods stay in ContainerCreating. Fine for Terraform state bugs,
@bpmct
bpmct / FINDINGS.md
Last active April 3, 2026 18:48
Reproduction of coder/coder#21719: Terraform Unexpected Identity Change with kubernetes_pod

Issue #21719: Terraform Identity Change Error — Reproduction & Findings

Reproduction Confirmed

Successfully reproduced the Unexpected Identity Change error.

Environment: k3s v1.34.6, Terraform 1.13.0, kubernetes provider 2.38.0

Root Cause

Coder Template Development Guide

This guide documents best practices and workflows for developing and iterating on Coder templates.

Understanding Templates

Coder templates are written in Terraform and define the infrastructure required for workspaces. These templates create VMs, containers, and other resources that developers use as their development environments.

Template Development Workflow

@bpmct
bpmct / coder_windows_build_guide_updated.md
Created March 15, 2025 17:57
Building Coder on Windows - Guide and Automation Script (with randomized workspace names)

Building Coder on Windows - Complete Guide

This guide documents the process of setting up a Windows workspace using Coder and building the Coder repository on it.

Prerequisites

  • Access to a Coder deployment (e.g., dev.coder.com)
  • coder CLI installed and authenticated

Step 1: Create a Windows Workspace

@bpmct
bpmct / coder_windows_build_guide.md
Created March 15, 2025 17:55
Building Coder on Windows - Guide and Automation Script

Building Coder on Windows - Complete Guide

This guide documents the process of setting up a Windows workspace using Coder and building the Coder repository on it.

Prerequisites

  • Access to a Coder deployment (e.g., dev.coder.com)
  • coder CLI installed and authenticated

Step 1: Create a Windows Workspace

Coder added jq to the base image to support mounting secrets from AWS Secrets Manager, or other Kubernetes secrets that are in JSON format. Example:

# Helm values.yaml
coder:
  command:
    - /bin/sh
    - -c     - CODER_PG_CONNECTION_URL=postgresql://coder:$(cat /mnt/postgres-pass/secret.json | jq -r .password)@coder-db.coder.svc.cluster.local:5432/coder /opt/coder server
  volumes:
 - name: "postgres-pass"