GitOps
delivery tool

mighty and carefully crafted
A missing part of a CI/CD
system

Werf is an Open Source CLI tool written in Golang to implement your application delivery fast & easy. To benefit from it, you just need to describe your application’s configuration (how to build it and deploy it into Kubernetes) in a Git repo acting as the single source of truth. In short, that’s what we call GitOps today.

  • Werf builds Docker images using Dockerfiles or alternative fast builder based on the custom syntax. It also cleans Docker Registry from unused images.
  • Werf deploys your application into Kubernetes using a chart in Helm-compatible format with handy customizations and improved deploy tracking, errors detection and output.

While werf is not a complete CI/CD system itself, it is a tool that can be embedded into any existing CI/CD system literally “connecting the dots” to implement these practices for your application. We consider it a new generation of high-level CI/CD tools.

Check out a complete features list.

  • Comfortable deployment
    Full compatibility with Helm. Easy RBAC definition. Control of the deployment process with annotations. Control of resources readiness. Logging and error reporting. Easy debugging of problems without unnecessary kubectl invocations.
  • Image Lifecycle Management
    Build images with Dockerfile or with our syntax to take advantage of incremental rebuilds based on git history and carefully crafted tools. Pushing into a registry by specific tag strategy and cleaning a registry from unused images based on policies.
Active development & adoption
  • 4
    releases per week
    on average for the last year
  • 1200
    installations
    of large and small projects
  • 1010
    stars on GitHub
    let’s make it more ;)
Full delivery cycle
  • Easy to start
    Remain regular build process with Dockerfile. Take your project and put into werf easily right now.
  • Compact configuration file
    Build multiple images with a single configuration file, share common configuration parts using go-templates.
  • Complete application lifecycle management
    Manage image building process, deploy applications into Kubernetes and remove unused images easily.
  • Reduce image size
    Detach source data and build tools using artifacts, mounts and stapel.
  • Build images with Ansible
    Use the powerful and popular infrastructure-as-a-code tool.
  • Advanced tools for debugging the build process
    In the process of assembling, you can access a certain stage using introspection options.
  • Comfortable deployment to Kubernetes
    Deploy to Kubernetes using standard Kubernetes package manager with interactive tracking of the deployment process and real-time logs browsing.
Friendly growing community
Werf’s developers are always in contact with community
though Slack and Telegram.
Roadmap
Goals
  • Feature complete version of werf which works well in an environment with a single dedicated persistent host to run all werf operations (build, deploy and cleanup).
  • Proven approaches and recipes
    for most popular CI systems.
  • Building images completely in userspace,
    a container or Kubernetes cluster.
Steps
  • #1616 Use 3-way-merge during helm release upgrade.
  • #1184 Content addressable tagging scheme.
  • #1617 Proven approaches and recipes
    for most popular CI systems.
  • #1614 Distributed builds.
  • #1606 Helm 3 support.
  • #1618 Userspace builds without Docker daemon
    (as in kaniko).
Complete documentation
Documentation of werf comprises ~100 articles which include common use cases (getting started, deploy to Kubernetes, CI/CD integration and more), comprehensive description of its functions & architecture, as well as CLI, commands.