OrbStack-optimized Skaffold workflows for local Kubernetes development without port-forward. Use when configuring Skaffold with OrbStack, accessing services via LoadBalancer or Ingress, or when the user mentions OrbStack, k8s.orb.local, service access, or eliminating port-forward.
View on GitHublaurigates/claude-plugins
container-plugin
January 24, 2026
Select agents to install to:
npx add-skill https://github.com/laurigates/claude-plugins/blob/main/container-plugin/skills/skaffold-orbstack/SKILL.md -a claude-code --skill skaffold-orbstackInstallation paths:
.claude/skills/skaffold-orbstack/# Skaffold with OrbStack - Port-Forward-Free Development
## Overview
OrbStack provides superior local Kubernetes networking compared to other tools (minikube, kind, Docker Desktop). Services are accessible directly from macOS without port-forward.
## Key OrbStack Advantages
| Feature | OrbStack | minikube/kind |
|---------|----------|---------------|
| LoadBalancer auto-provision | ✅ Yes | ❌ Needs MetalLB |
| Wildcard DNS (`*.k8s.orb.local`) | ✅ Yes | ❌ No |
| cluster.local from host | ✅ Yes | ❌ No |
| Pod IP direct access | ✅ Yes | ❌ No |
| Auto HTTPS certificates | ✅ Yes | ❌ No |
## Service Access Methods
### Method 1: LoadBalancer Services (Simplest)
Change service type from ClusterIP to LoadBalancer:
```yaml
apiVersion: v1
kind: Service
metadata:
name: my-app
spec:
type: LoadBalancer # OrbStack auto-provisions external IP
ports:
- port: 80
targetPort: 8080
selector:
app: my-app
```
**Access**: `curl http://my-app.default.svc.cluster.local` from macOS
### Method 2: Ingress with Wildcard DNS (Recommended)
**One-time setup - Install Ingress controller:**
```bash
# Ingress-NGINX (recommended)
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.8.1/deploy/static/provider/cloud/deploy.yaml
# OR Traefik
helm repo add traefik https://traefik.github.io/charts
helm install traefik traefik/traefik
```
**Create Ingress for your service:**
```yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: my-app
spec:
ingressClassName: nginx
rules:
- host: my-app.k8s.orb.local
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: my-app
port:
number: 80
```
**Access**: `http://my-app.k8s.orb.local` (auto-resolves)
### Method 3: Direct Service DNS (cluster.local)
OrbStack exposes cluster DNS to macOS:
```bash
# Access any service directly
curl http://my-app.defaul