Skip to content

imran31415/kube-coder

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

15 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Kube Coder

A production-ready Helm chart for deploying multi-user remote development workspaces with VS Code, Claude Code CLI, and secure container builds.

image

✨ Features

  • πŸš€ VS Code in Browser - Full IDE with extensions support
  • πŸ€– Claude Code CLI - AI-powered development assistant
  • πŸ”’ Secure Access - HTTPS with Let's Encrypt + authentication
  • πŸ‘₯ Multi-User - Isolated workspaces for teams
  • πŸ’Ύ Persistent Storage - Each user gets dedicated storage
  • 🐳 Container Builds - Secure in-cluster builds with Kaniko
  • ⚑ Ready-to-Use - Pre-configured development stack

πŸš€ Quick Start

Prerequisites

  • Kubernetes cluster (1.19+)
  • Helm 3.0+
  • nginx ingress controller
  • cert-manager for automatic HTTPS

1. Install the Chart

# Clone the repository
git clone https://github.com/imran31415/kube-coder.git
cd kube-coder

# Create namespace
kubectl create namespace coder

# Create secrets (replace with your values)
kubectl create secret docker-registry regcred \
  --docker-server=your-registry.com \
  --docker-username=your-username \
  --docker-password=your-password \
  -n coder

# Create basic auth secret
htpasswd -c auth admin
kubectl create secret generic api-basic-auth --from-file=auth -n coder

# Install with custom values
helm install remote-dev ./remote-dev -f examples/values-single-user.yaml -n coder

2. Configure Your Domain

Update the values file with your domain:

users:
  - name: alice
    host: alice.dev.yourdomain.com
    pvcSize: 50Gi

3. Access Your Workspace

Visit https://alice.dev.yourdomain.com and login with your credentials.

πŸ“‹ Example Configurations

Single User

helm install my-workspace ./remote-dev -f examples/values-single-user.yaml -n coder

Team Setup

helm install team-workspace ./remote-dev -f examples/values-team.yaml -n coder

Development (No TLS)

helm install dev-workspace ./remote-dev -f examples/values-no-tls.yaml -n coder

πŸ› οΈ Pre-installed Tools

Each workspace includes:

Category Tools
Languages Node.js, Python 3, Go, Java 17
Build Tools npm, pip, make, gcc
Version Control Git
AI Assistant Claude Code CLI
Utilities curl, wget, jq, tmux

🐳 Container Builds

Use the built-in docker-build command for secure container builds:

# In your workspace terminal
docker-build -t myregistry.com/myapp:latest .

πŸ”§ Configuration Reference

Image Settings

image:
  repository: your-registry/coder
  tag: latest
  pullSecretName: regcred

User Configuration

users:
  - name: username
    pvcSize: 50Gi
    host: username.dev.yourdomain.com
    env:
      - name: GIT_USER_NAME
        value: "Your Name"

TLS/Security

ingress:
  tls:
    enabled: true
    clusterIssuer: letsencrypt-production
  auth:
    type: basic
    secretName: api-basic-auth

πŸ“Š Managing Users

Add a User

  1. Add to values.yaml
  2. Run: helm upgrade remote-dev ./remote-dev -n coder
  3. Configure DNS for new subdomain

Remove a User

  1. Remove from values.yaml
  2. Run: helm upgrade remote-dev ./remote-dev -n coder
  3. Manually delete PVC if needed: kubectl delete pvc ws-username-home -n coder

πŸ” Troubleshooting

Check Pod Status

kubectl get pods -n coder
kubectl describe pod ws-username-xxxxx -n coder

Certificate Issues

kubectl get certificate -n coder
kubectl describe certificate your-tls-secret -n coder

Storage Issues

kubectl get pvc -n coder
kubectl describe pvc ws-username-home -n coder

πŸ›‘οΈ Security Features

  • βœ… TLS encryption for all traffic
  • βœ… Basic authentication protection
  • βœ… RBAC isolation between users
  • βœ… Non-root containers
  • βœ… Private registry authentication
  • βœ… Isolated persistent storage

πŸ“ˆ Monitoring

# Resource usage
kubectl top pods -n coder

# Storage usage  
kubectl get pvc -n coder

# Active workspaces
kubectl get pods -l app!=kaniko-wrapper -n coder

πŸ—‘οΈ Uninstall

# Remove the deployment
helm uninstall remote-dev -n coder

# WARNING: This deletes all user data
kubectl delete namespace coder

🀝 Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Test thoroughly
  5. Submit a pull request

πŸ“„ License

MIT License - see LICENSE file for details.

πŸ†˜ Support


⭐ Star this repo if you find it useful!

About

helm chart for a isolated dev coding environment pod in kubernetes

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •