Skip to main content

v0.1.0

Headwind Team
Kubernetes Operator Developers

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 major
  • all - Any new version
  • glob - 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:

📚 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!