/awesome-gitops

A curated list for awesome GitOps resources

MIT LicenseMIT

Awesome-GitOps

Awesome

A curated list for awesome GitOps resources inspired by @sindresorhus' awesome

What is GitOps?

GitOps is a way to do Kubernetes cluster management and application delivery. It works by using Git as a single source of truth for declarative infrastructure and applications, together with tools ensuring the actual state of infrastructure and applications converges towards the desired state declared in Git. With Git at the center of your delivery pipelines, developers can make pull requests to accelerate and simplify application deployments and operations tasks to your infrastructure or container-orchestration system (e.g. Kubernetes).

Conceptual diagram of GitOps-based infrastructure

Why is GitOps awesome?

It increases developer productivity, enhances developer experience, improves stability, all while having higher reliability, higher consistency and stronger security guarantees.

Modern software development practices assume support for reviewing changes, tracking history, comparing versions, and rolling back bad updates; GitOps applies the same tooling and engineering perspective to managing the systems that deliver direct business value to users and customers.

Background

Tools

  • ArgoCD - Declarative continuous deployment for Kubernetes
  • Atlantis - Terraform pull request automation
  • Autoapply - Automatically apply changes from a Git repository to a Kubernetes cluster
  • CloudBees Rollout - Feature Flag as-a-Service that leverages GitOps & Config-as-Code (commercial product from CloudBees)
  • FluxCD - The GitOps Kubernetes operator
  • Helm Operator - Automates Helm Chart releases in a GitOps manner
  • Flagger - Progressive delivery Kubernetes operator (Canary, A/B testing and Blue/Green deployments automation)
  • Ignite - A Virtual Machine manager with a container UX and built-in GitOps
  • Faros - CRD based GitOps controller
  • Gitkube - Build and deploy docker images to Kubernetes using git push
  • Jenkins X - a CI/CD platform for Kubernetes that provides pipeline automation, built-in GitOps and preview environments
  • KubeStack - GitOps framework using Terraform for Cloud Kubernetes distros (AKS, GKE, and EKS) with CI/CD examples for common tools
  • Weave Cloud - GitOps experience, workflows and dashboard for your cluster(s) (commercial product from Weaveworks)
  • Werf - GitOps tool with advanced features to build images and deploy them to Kubernetes (integrates with any existing CI system)
  • PipeCD - Continuous Delivery for Declarative Kubernetes, Serverless and Infrastructure Applications

Ancillary Tools

Notifications

  • Fluxcloud - Slack notifications for FluxCD without Weave Cloud

Secrets

  • git-secret - A bash-tool to store your private data inside a git repository
  • Kamus - Zero-trust secret encryption/decryption solution for Kubernetes applications
  • Sealed Secrets - One-way encrypted Secrets
  • SOPS - Secrets OPerationS
  • Vault Secrets Operator - Sync secrets from Vault with Kubernetes

Tutorials

Community

  • Kubernetes slack - #gitops channel for discussion of GitOps patterns and tooling
  • CNCF slack - #flux channel for discussion of GitOps patterns and tooling
  • Weaveworks slack - multiple channels (including #flagger, #wksctl and others) to discuss Weaveworks GitOps products, give feedback, and talk about general approaches