ngrok

Quick tunnels with free tier for development

Best for: Development, demos, webhooks, and quick testing with instant public URLs.

Features

  • Free tier with instant URLs
  • No domain setup required
  • HTTP and TCP tunnels
  • OAuth authentication
  • Request inspection
  • Quick setup

Setup

1. Get AuthToken

  1. Sign up for ngrok (free)
  2. Go to Your Authtoken
  3. Copy the authtoken

2. Create Kubernetes Secret

$ kubectl create secret generic ngrok-credentials \
--from-literal=authtoken=YOUR_AUTHTOKEN

3. Create TunnelProvider

apiVersion: ktube.dev/v1alpha1
kind: TunnelProvider
metadata:
  name: ngrok-provider
spec:
  type: ngrok
  ngrok:
    authTokenSecretRef:
      name: ngrok-credentials
      key: authtoken

4. Verify

$ kubectl get tunnelprovider ngrok-provider
NAME             TYPE    STATUS   AGE
ngrok-provider   ngrok   Ready    30s

Creating Tunnels

HTTP Tunnel

apiVersion: ktube.dev/v1alpha1
kind: TunnelBinding
metadata:
  name: web-binding
spec:
  tunnelRef:
    name: ngrok-tunnel
  protocol: https
  enabled: true
  service:
    name: web-service
    port: 8080

ngrok will automatically generate a URL like https://abc123.ngrok.io

Full Example

apiVersion: ktube.dev/v1alpha1
kind: TunnelProvider
metadata:
  name: ngrok-dev
spec:
  type: ngrok
  ngrok:
    authTokenSecretRef:
      name: ngrok-credentials
      key: authtoken
---
apiVersion: ktube.dev/v1alpha1
kind: Tunnel
metadata:
  name: dev-tunnel
spec:
  providerRef:
    name: ngrok-dev
---
apiVersion: ktube.dev/v1alpha1
kind: TunnelBinding
metadata:
  name: api-binding
spec:
  tunnelRef:
    name: dev-tunnel
  protocol: https
  enabled: true
  service:
    name: my-api
    port: 3000

Next Steps