GitOps CLI tool

Deliver your application fast & easy.
Open Source. Written in Go.
CLI tool to construct CI/CD pipelines
  • Werf is a single CLI tool that integrates well known tools:
    git, helm and docker.
  • Werf can be embedded into any existing CI/CD system (like GitLab CI)
    to implement CI/CD pipelines using provided building blocks:
    • werf build-and-publish;
    • werf deploy;
    • werf dismiss;
    • werf cleanup.
  • Open Source, written in Go.
  • Werf is not a SAAS, we consider it a new generation
    of high-level CI/CD tools.
  • Comfortable deployment
    • Full compatibility with Helm.
    • Easy RBAC definition.
    • Applied deploy configuration in Kubernetes does not guarantee a rolled out functioning application. With werf you receive that guarantee.
    • Werf fails fast when a problem has been detected in the CI/CD job allowing faster debug of new application versions without unnecessary kubectl invocations.
    • Configurable resource errors detector and resource readiness detector using resource annotations.
    • Rich logging and error reporting.
  • Image Lifecycle Management
    • Build images with Dockerfiles or advanced image builder with incremental rebuilds based on the git history and ansible.
    • Publish images to the Docker registry using advanced image naming schemas.
    • Deploy application images into Kubernetes cluster.
    • Cleanup Docker registry from unused images based on policies.
Check out a complete features list
Active development & adoption
  • 4
    releases per week
    on average for the last year
  • 1400
    installations
    of large and small projects
  • 1010
    stars on GitHub
    let’s make it more ;)
  • 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
We are always in contact with community through
Twitter, 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.
  • #1940 Easy local development of applications with werf.
  • #1184 Content addressable tagging scheme.
  • #1617 Proven approaches and recipes
    for most popular CI systems.
  • #1614 Distributed builds with common Docker registry.
  • #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.