All Projects → werf → Werf

werf / Werf

Licence: apache-2.0
The CLI tool gluing Git, Docker, Helm, and Kubernetes with any CI system to implement CI/CD and Giterminism

Programming Languages

go
31211 projects - #10 most used programming language
python
139335 projects - #7 most used programming language
shell
77523 projects
Dockerfile
14818 projects
ruby
36898 projects - #4 most used programming language
perl
6916 projects

Projects that are alternatives of or similar to Werf

actions
Set of actions for implementing CI/CD with werf and GitHub Actions
Stars: ✭ 67 (-97.62%)
Mutual labels:  continuous-integration, continuous-delivery, ci-cd, gitops, werf
Hands On Devops
A hands-on DevOps course covering the culture, methods and repeated practices of modern software development involving Packer, Vagrant, VirtualBox, Ansible, Kubernetes, K3s, MetalLB, Traefik, Docker-Compose, Docker, Taiga, GitLab, Drone CI, SonarQube, Selenium, InSpec, Alpine 3.10, Ubuntu-bionic, CentOS 7...
Stars: ✭ 196 (-93.03%)
Mutual labels:  ansible, devops, continuous-integration, continuous-delivery, docker-image
Gaia
Build powerful pipelines in any programming language.
Stars: ✭ 4,534 (+61.12%)
Mutual labels:  devops, continuous-integration, continuous-delivery, gitops
Jx
Jenkins X provides automated CI+CD for Kubernetes with Preview Environments on Pull Requests using Cloud Native pipelines from Tekton
Stars: ✭ 4,041 (+43.6%)
Mutual labels:  devops, continuous-integration, continuous-delivery, gitops
Argo Cd
Declarative continuous deployment for Kubernetes.
Stars: ✭ 7,887 (+180.28%)
Mutual labels:  devops, continuous-delivery, ci-cd, gitops
Agola
Agola: CI/CD Redefined
Stars: ✭ 783 (-72.17%)
Mutual labels:  devops, continuous-integration, continuous-delivery, ci-cd
Origin
Conformance test suite for OpenShift
Stars: ✭ 8,046 (+185.93%)
Mutual labels:  devops, continuous-integration, continuous-delivery, ci-cd
Xrm Ci Framework
xRM CI Framework provides you with the tools automate the build and deployment of your CRM Solution. Using the framework to implement a fully automated DevOps pipeline will allow you to deploy more frequently with added consistency and quality.
Stars: ✭ 172 (-93.89%)
Mutual labels:  devops, continuous-integration, continuous-delivery
Ecs Nginx Proxy
Reverse proxy for AWS ECS. Lets you address your docker containers by sub domain.
Stars: ✭ 93 (-96.7%)
Mutual labels:  continuous-integration, continuous-delivery, docker-image
Orkestra
Functional DevOps with Scala and Kubernetes
Stars: ✭ 102 (-96.38%)
Mutual labels:  devops, continuous-integration, continuous-delivery
Kontinuous
The Kubernetes Continuous Integration & Delivery Platform (CI/CD) 🔄
Stars: ✭ 115 (-95.91%)
Mutual labels:  continuous-integration, continuous-delivery, ci-cd
Nevergreen
🐤 A build monitor with attitude
Stars: ✭ 170 (-93.96%)
Mutual labels:  continuous-integration, continuous-delivery, ci-cd
Dyn365 Ce Devops
DevOps for Dynamics 365 Customer Engagement (CE) is becoming a popular topic. The goal of this project is to help Dynamics 365 CE solution builders understand and accelerate their implementation of DevOps practices with Dynamics CE and VSTS.
Stars: ✭ 82 (-97.09%)
Mutual labels:  devops, continuous-integration, continuous-delivery
Dyn365 Ce Vsts Tasks
VSTS Extension for Dynamics 365 Customer Engagement
Stars: ✭ 94 (-96.66%)
Mutual labels:  devops, continuous-integration, continuous-delivery
Variable Injector
Continuous Integration Tool for Swift Projects
Stars: ✭ 63 (-97.76%)
Mutual labels:  devops, continuous-integration, continuous-delivery
Flint
Fast and configurable filesystem (file and directory names) linter
Stars: ✭ 115 (-95.91%)
Mutual labels:  devops, continuous-integration, continuous-delivery
Flow Core X
Powerful and user-friendly CI / CD server with high availability, parallel build, agent scaling
Stars: ✭ 1,108 (-60.63%)
Mutual labels:  devops, continuous-integration, ci-cd
Fabric8 Platform
Generates the distribution of the fabric8 microservices platform
Stars: ✭ 105 (-96.27%)
Mutual labels:  continuous-integration, continuous-delivery, ci-cd
Lastbackend
System for containerized apps management. From build to scaling.
Stars: ✭ 1,536 (-45.42%)
Mutual labels:  devops, continuous-integration, continuous-delivery
Syncd
syncd是一款开源的代码部署工具,它具有简单、高效、易用等特点,可以提高团队的工作效率.
Stars: ✭ 2,065 (-26.62%)
Mutual labels:  devops, continuous-integration, continuous-delivery

GH Discussions Twitter Telegram chat
GoDoc Contributor Covenant

___

werf is an Open Source CLI tool written in Go, designed to simplify and speed up the delivery of applications. To use it, you need to describe the configuration of your application (in other words, how to build and deploy it to Kubernetes) and store it in a Git repo — the latter acts as a single source of truth. In short, that's what we call GitOps today.

  • werf builds Docker images using Dockerfiles or an alternative fast built-in builder based on the custom syntax. It also deletes unused images from the Docker registry.
  • werf deploys your application to Kubernetes using a chart in the Helm-compatible format with handy customizations and improved rollout tracking mechanism, error detection, and log output.

werf is not a complete CI/CD solution, but a tool for creating pipelines that can be embedded into any existing CI/CD system. It literally "connects the dots" to bring these practices into your application. We consider it a new generation of high-level CI/CD tools.

How it works?

Quickstart

Installation

Features

  • Full application lifecycle management: build and publish images, deploy an application to Kubernetes, and remove unused images based on policies.
  • The description of all rules for building and deploying an application (that may have any number of components) is stored in a single Git repository along with the source code (Single Source Of Truth).
  • Build images using Dockerfiles.
  • Alternatively, werf provides a custom builder tool with support for custom syntax, Ansible, and incremental rebuilds based on Git history.
  • werf supports Helm compatible charts and complex fault-tolerant deployment processes with logging, tracking, early error detection, and annotations to customize the tracking logic of specific resources.
  • werf is a CLI tool written in Go. It can be embedded into any existing CI/CD system to implement CI/CD for your application.
  • Cross-platform development: Linux-based containers can be run on Linux, macOS, and Windows.

Building

  • Effortlessly build as many images as you like in one project.
  • Build images using Dockerfiles or Stapel builder instructions.
  • Build images concurrently on a single host (using file locks).
  • Build images simultaneously.
  • Build images distributedly.
  • Content-based tagging.
  • Advanced building process with Stapel:
    • Incremental rebuilds based on git history.
    • Build images with Ansible tasks or Shell scripts.
    • Share a common cache between builds using mounts.
    • Reduce image size by detaching source data and building tools.
  • Build one image on top of another based on the same config.
  • Debugging tools for inspecting the build process.
  • Detailed output.

Deploying

  • Deploy an application to Kubernetes and check if it has been deployed correctly.
    • Track the statuses of all application resources.
    • Control the readiness of resources.
    • Control the deployment process with annotations.
  • Full visibility of both the deployment process and the final result.
    • Logging and error reporting.
    • Regular status reporting during the deployment phase.
    • Debug problems effortlessly without unnecessary kubectl invocations.
  • Prompt CI pipeline failure in case of a problem (i.e. fail fast).
    • Instant detection of resource failures during the deployment process without having to wait for a timeout.
  • Full compatibility with Helm 2.
  • Ability to limit user permissions using RBAC definition when deploying an application (Tiller is compiled into werf and is run under the ID of the outside user that carries out the deployment).
  • Parallel builds on a single host (using file locks).
  • Distributed parallel deploys (coming soon) #1620.
  • Сontinuous delivery of images with permanent tags (e.g., when using a branch-based tagging strategy).

Cleaning up

  • Clean up local and Docker registry by enforcing customizable policies.
  • Keep images that are being used in the Kubernetes cluster. werf scans the following kinds of objects: Pod, Deployment, ReplicaSet, StatefulSet, DaemonSet, Job, CronJob, ReplicationController.

Coming soon

  • Developing applications locally with werf #1940.
  • (Kaniko-like) building in the userspace that does not require Docker daemon #1618.
  • 3-way-merge #1616.
  • Content-based tagging #1184.
  • Support for the most Docker registry implementations #2199.
  • Parallel image builds #2200.
  • Proven approaches and recipes for the most popular CI systems #1617.
  • Distributed builds with the shared Docker registry #1614.
  • Support for Helm 3 #1606.

Production ready

werf is a mature, reliable tool you can trust. Read about release channels.

Documentation

Detailed documentation is available in multiple languages.

Many guides are provided for developers to quickly deploy apps to Kubernetes using werf.

Community & support

Please feel free to reach developers/maintainers and users via GitHub Discussions for any questions regarding werf.

Your issues are processed carefully if posted to issues at GitHub.

You're also welcome to:

  • follow @werf_io to stay informed about all important news, new articles, etc;
  • join our Telegram chat for announcements and ongoing talks: werf_io. (There is a Russian-speaking Telegram chat werf_ru as well.)

Featured in

Console - Developer Tool of the Week

License

Apache License 2.0, see LICENSE.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].