GitOps CLI tool

Deliver your application quickly & easily.
Open Source. Written in Go.
CLI tool to use in 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.
  • Effortless deployment
    • Full compatibility with Helm.
    • Easy RBAC definition.
    • Applying 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 some problem is detected in the CI/CD job, thus allowing faster debugging of new versions of an application 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 with Dockerfiles or with an advanced image builder that supports incremental rebuilds based on the git history and ansible.
    • Publish images to the registry using advanced image naming schemas.
    • Deploy application images to the Kubernetes cluster.
    • Clean up your Docker registry by deleting unused images that meet specific conditions.
Check out a complete features list
Active development & adoption
  • 4
    releases per week
    on average for the last year
  • 1400
    installations
    for large and small projects
  • 1470
    stars on GitHub
    let’s make it more ;)
  • Complete application lifecycle management
    Manage the image building process, deploy an application to Kubernetes, easily remove unused images.
  • Effortless 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
    During assembly, you can access any stage using introspection options.
  • Compact configuration file
    Build multiple images using a single configuration file, share common configuration snippets via Go templates.
Friendly and growing community
werf’s developers are always in contact with the community
in Twitter and Slack.
Roadmap
Goals
  • Feature-complete version of werf that 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 of the popular CI systems.
  • Build images in a userspace,
    in a container or a Kubernetes cluster.
Milestones
  • #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 of the popular CI systems.
  • #1614 Distributed builds with common Docker registry.
  • #1606 Helm 3 support.
  • #1618 Userspace builds that do not require Docker daemon
    (as in kaniko).
Detailed documentation
werf documentation comprises over 100 articles on typical use cases (getting started, deploying to Kubernetes, CI/CD integration, and more), CLI, commands, and a thorough description of functions & architecture.