π Major New Feature: Kubernetes Deployment
Zap can now be deployed to Kubernetes for network-wide URL shortcuts! Deploy once, use everywhere on your network.
What's New
π³ Docker Support
- Multi-stage Alpine-based image (15.3MB)
- Multi-arch: linux/amd64, linux/arm64
- Published to ghcr.io/issmirnov/zap
- Security hardened: non-root, read-only filesystem
- Built-in health checks
βΈοΈ Helm Chart (deploy/helm/zap/)
- Production-ready defaults
- LoadBalancer support (MetalLB, Cilium BGP, cloud providers)
- ConfigMap hot reload (no pod restart needed)
- Health probes configured
- Horizontal pod autoscaling support
- Security contexts (non-root, dropped capabilities)
- Example configs: Cilium BGP, MetalLB, HA, dev
π¦ Plain Kubernetes Manifests (deploy/kubernetes/)
- Simple deployment without Helm
- Namespace, ConfigMap, Deployment, Service
- Production-ready defaults
π CI/CD Testing
- Automated Helm chart testing with kind
- Tests real Kubernetes deployments on every PR
- Validates redirects actually work
- Multi-arch Docker builds
- 3 parallel test jobs (~5min total)
π Comprehensive Documentation
- Quickstart guide
- Complete Kubernetes deployment guide
- DNS configuration examples (dnsmasq, Pi-hole, router)
- Troubleshooting guide
- CI/CD documentation
Quick Start
# Using Helm
helm install zap ./deploy/helm/zap
# Using kubectl
kubectl apply -f deploy/kubernetes/
# Interactive
./deploy/quickstart.sh
Then configure DNS to point shortcuts to the LoadBalancer IP.
Architecture
Deploy Zap to Kubernetes with a LoadBalancer, configure network DNS (dnsmasq/Pi-hole) to resolve shortcuts to the LoadBalancer IP. All machines on the network can then use shortcuts without local installation.
Deployment Options
- Self-hosted: MetalLB, Cilium BGP, kube-vip
- Cloud: GKE, EKS, AKS (native LoadBalancer)
- Local testing: kind, minikube
Technical Highlights
- 150,000+ requests/second throughput
- ~30MB RAM, ~50m CPU per pod
- ConfigMap hot reload via inotify
- Security hardened by default
- Comprehensive CI/CD validation
- Zero breaking changes (100% backward compatible)
Docker Image
docker pull ghcr.io/issmirnov/zap:v1.5.0
docker pull ghcr.io/issmirnov/zap:latest
Multi-arch support: linux/amd64, linux/arm64
Documentation
See docs/helm/ for complete documentation:
- QUICKSTART.md - Quick reference
- KUBERNETES.md - Complete deployment guide
- CI-CD.md - CI/CD documentation
What Changed
Full Changelog: https://github.com/issmirnov/zap/compare/v1.4.0...v1.5.0
Key Commits:
- 06171ae Add comprehensive Kubernetes deployment support
- 5588f3f docs: Consolidate Helm documentation
- e07beec docs: Move Helm/K8s docs to docs/helm/
- 3597cd6 Fix workflow triggers to avoid duplicate runs
- f2846a3 Fix Dockerfile ENTRYPOINT for Kubernetes
- daa38f6 Fix multi-arch Docker builds
- e04d03e Add Helm chart CI/CD testing with kind
π€ Generated with Claude Code