A CLI tool that manages Kubernetes Pods as personal remote development environments.
go install github.com/mgh3326/kpod@latestOr build from source:
git clone https://github.com/mgh3326/kpod.git
cd kpod
go build -o kpod .# 1. Initialize config
kpod init
# 2. Add app config
# Edit ~/.kpod/apps/<name>.yaml (see apps.example.yaml)
# 3. Create Pod
kpod create
# 4. Bootstrap environment
kpod install
# 5. Setup app
kpod setup <app>
# 6. Connect
kpod console| Command | Description |
|---|---|
kpod init |
Interactive config setup |
kpod create |
Create Pod, wait for readiness |
kpod delete |
Delete Pod |
kpod status |
Show Pod status |
kpod console |
Interactive shell into Pod |
kpod console -- <cmd> |
Run command on Pod |
kpod install |
Bootstrap packages and dotfiles |
kpod setup <app> |
Clone and setup an app |
kpod sync [app] |
Sync local code to Pod |
kpod cp <src> <dest> |
Copy files (prefix pod: for remote) |
kpod tunnel [local:]remote |
Port-forward |
kpod history backup |
Backup bash_history |
kpod history restore |
Restore bash_history |
All config lives in ~/.kpod/ (never committed to the repo).
~/.kpod/
├── config.yaml # Global config (context, namespace, image, etc.)
├── apps/
│ └── <name>.yaml # Per-app config (repo, env, ports, etc.)
├── dotfiles/ # Dotfiles uploaded on `kpod install`
│ ├── bashrc
│ ├── gitconfig
│ └── screenrc
└── bash_history # Backed up history
See config.example.yaml and apps.example.yaml for config format.
Secrets are stored in Kubernetes Secrets and injected via envFrom.secretRef. No secrets are stored in config files or in this repository.