Consistent delivery tool

What you Git
is what you get!

  • Git as a single source of truth.
  • Build. Deploy to Kubernetes. Stay in sync.
  • Open Source. Written in Go.

It’s GitOps,
but done another way!

Git as a single source of truth allows you to make the entire delivery pipeline deterministic and idempotent. You can use it from within your CI or as an operator (coming soon).
  • werf is an integrated CLI tool that combines several popular instruments:
    git, helm, and docker.
  • werf can be embedded into any existing CI/CD system (like GitLab CI)
    to implement CI/CD pipelines using the built-in building blocks:
    • werf build-and-publish;
    • werf deploy;
    • werf dismiss;
    • werf cleanup.
  • Open Source, written in Go.
  • werf is not a SAAS. werf is the new generation
    of high-level CI/CD tools.
  • Effortless deployment
    • Full compatibility with Helm.
    • Easy RBAC definition.
    • Applying the deployment configuration in Kubernetes does not guarantee the successful deployment of an application and its fully functional state. With werf, you get that guarantee.
    • werf immediately fails if any problem is detected in the CI/CD job, allowing you to debug new versions of an application faster and without unnecessary kubectl invocations.
    • Configurable resource error and resource readiness detectors based on resource annotations.
    • Rich logging and error reporting capabilities.
  • Image Lifecycle Management
    • Build images using Dockerfiles or the advanced image builder that supports incremental rebuilds based on the git history and ansible.
    • Publish images to the registry; apply advanced image naming schemas.
    • Deploy application images to the Kubernetes cluster.
    • Clean up your Docker registry — delete unneeded images meeting specific conditions.
Check out the complete features list
Active development & adoption
  • 4
    releases per week
    on average during the last year
  • 1400
    for large and small projects
  • 1470
    stars on GitHub
    let’s make it more ;)
  • Complete application lifecycle management
    Manage the process of building images, deploy the application to Kubernetes, easily remove unused images.
  • Hassle-free deployment to Kubernetes
    Deploy to Kubernetes using standard Kubernetes package manager with interactive tracking of the deployment process and real-time logs browsing.
  • Easy to start
    Keep your regular Dockerfile-based building process intact. Integrate werf into your project and put it to full use.
  • Reduce image size
    Detach source data and build tools using artifacts, mounts, and stapel.
  • Build images with Ansible
    Use the popular and powerful infrastructure-as-a-code tool.
  • Advanced debugging tools for the building process
    Introspection options allow you to access any stage during assembly.
  • Compact and concise configuration file
    Build multiple images using a single configuration file; share common configuration snippets via Go templates.
Friendly and rapidly growing community
werf’s developers are always in contact with the community.
You can reach us in Twitter and Slack.
  • Feature-complete version of werf that works well in an environment with a single dedicated, persistent host running all werf operations (build, deploy, and cleanup).
  • Proven approaches and recipes
    for most of the popular CI systems.
  • Build images in a userspace,
    in a container, or a Kubernetes cluster.
  • #1616 Use a 3-way-merge during the helm release upgrade.
  • #1184 Content-based tagging scheme.
  • #2199 Support for the majority of Docker registry implementations.
  • #1614 Distributed builds with common Docker registry.
  • #1940 Effortless local development of applications with werf.
  • #2200 Concurrent building of images.
  • #1617 Proven approaches and recipes
    for most of the popular CI systems.
  • #1606 Helm 3 support.
  • #1618 Userspace builds that do not require the Docker daemon
    (as in kaniko).
Detailed documentation
werf documentation comprises over 100 articles covering typical use cases (getting started, deploying to Kubernetes, CI/CD integration, and more), CLI, commands, and providing a thorough description of functions & architecture.