v0.1.0
Release Date: November 10, 2025 Status: Stable - First official release
This is the first official release of Headwind, a Kubernetes operator that automates workload updates based on container image changes. This release establishes the foundation with core operator functionality, multi-platform support, and comprehensive deployment options.
🎉 First Release Highlights
Multi-Platform Binary Support
Headwind v0.1.0 is available as pre-built binaries for all major platforms:
- Linux: amd64, arm64
- macOS: amd64 (Intel), arm64 (Apple Silicon)
- Windows: amd64, arm64
All binaries are available on the GitHub Releases page.
Available on crates.io
Headwind is now published to crates.io, making it easy to install via Cargo:
cargo install headwind
🚀 Core Features
Workload Support
- Deployments - Full support with approval workflow
- StatefulSets - Complete implementation for stateful applications
- DaemonSets - Node-level service support
Update Policies
none- Never update (default)patch- Only patch versions (1.2.3 → 1.2.4)minor- Patch and minor (1.2.3 → 1.3.0)major- All versions including majorall- Any new versionglob- Pattern matching (e.g.,v1.*-stable)force- Force update regardless of version
Approval Workflow
- Full HTTP API for approval/rejection
- UpdateRequest CRDs for state management
- Auto-cleanup support via CronJobs
- Bulk approval workflows
Webhook & Polling Support
- Webhooks: Receive push notifications from container registries
- Generic OCI registry format (Harbor, GitLab, etc.)
- Docker Hub specific format
- Registry Polling: Optional fallback for registries without webhooks
- Configurable polling intervals
- Digest-based detection for same-tag updates
- New version discovery
📊 Observability
30+ Prometheus metrics covering:
- Webhook and polling events
- Update lifecycle (pending, approved, rejected, applied, failed)
- Controller reconciliation performance
- Health checks
🔐 Security
- Non-root container execution
- Read-only root filesystem
- Minimal RBAC permissions
- Private registry authentication
📦 Installation
Kubernetes Deployment
kubectl apply -f https://raw.githubusercontent.com/headwind-sh/headwind/v0.1.0/deploy/k8s/namespace.yaml
kubectl apply -f https://raw.githubusercontent.com/headwind-sh/headwind/v0.1.0/deploy/k8s/crds/updaterequest.yaml
kubectl apply -f https://raw.githubusercontent.com/headwind-sh/headwind/v0.1.0/deploy/k8s/rbac.yaml
kubectl apply -f https://raw.githubusercontent.com/headwind-sh/headwind/v0.1.0/deploy/k8s/deployment.yaml
kubectl apply -f https://raw.githubusercontent.com/headwind-sh/headwind/v0.1.0/deploy/k8s/service.yaml
Binary Installation
Download the appropriate binary for your platform from the releases page:
# Linux amd64
wget https://github.com/headwind-sh/headwind/releases/download/v0.1.0/headwind-linux-amd64
chmod +x headwind-linux-amd64
./headwind-linux-amd64
# macOS arm64 (Apple Silicon)
wget https://github.com/headwind-sh/headwind/releases/download/v0.1.0/headwind-darwin-arm64
chmod +x headwind-darwin-arm64
./headwind-darwin-arm64
Cargo Installation
cargo install headwind
🔧 Technical Details
Cross-Platform Build System
- Cross-compilation: ARM64 Linux builds use vendored OpenSSL for static linking
- Docker multi-arch: Separate workflow for container images (linux/amd64, linux/arm64)
- GitHub Actions: Automated builds with matrix for all platforms
- Binary stripping: Optimized binary sizes for production use
Rust Ecosystem
Built with production-ready Rust crates:
- kube-rs - Kubernetes client
- Tokio - Async runtime
- Axum - Web framework
- Prometheus - Metrics
📚 Documentation
See the installation guide for detailed instructions and configuration options.
📈 What's Next
v0.2.0 will focus on:
- Flux HelmRelease support
- Rollback capabilities
- Notification system (Slack, Teams, webhooks)
- kubectl plugin for CLI operations
- Web UI for approvals
See our roadmap for the complete feature plan.
🐛 Reporting Issues
Found a bug? Have a feature request? Please open an issue on GitHub.
🙏 Acknowledgments
Thank you to the Rust Kubernetes community and all the open-source projects that made this possible!
