GitOps - bobbae/gcp GitHub Wiki

GitOps is a way of implementing Continuous Deployment for cloud native applications. It focuses on a developer-centric experience when operating infrastructure, by using tools developers are already familiar with, including Git and Continuous Deployment tools.

The core idea of GitOps is having a Git repository that always contains declarative descriptions of the infrastructure currently desired in the production environment and an automated process to make the production environment match the described state in the repository. If you want to deploy a new application or update an existing one, you only need to update the repository - the automated process handles everything else. It’s like having cruise control for managing your applications in production.

GitOps is a way to do 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).

The term GitOps was first coined by Weaveworks, and its key concept is using a Git repository to store the environment state that you want.

https://github.com/weaveworks/awesome-gitops

GitOps style continuous delivery with Cloud Build

https://cloud.google.com/kubernetes-engine/docs/tutorials/gitops-cloud-build

GitOps, GKE, Cloud Build

https://medium.com/google-cloud/how-to-apply-gitops-cd-with-gke-and-cloud-build-in-5-minutes-58455a2bf063

Gitops walkthrough

https://zwischenzugs.com/2021/07/31/a-hello-world-gitops-example-walkthrough/

Flagger

https://github.com/fluxcd/flagger

FluxCD

https://fluxcd.io/

https://github.com/fluxcd/flux2

https://felipelujan.medium.com/gitops-setup-in-google-kubernetes-engine-using-flux-cd-1e26b0ef1fc7

Podinfo

https://github.com/stefanprodan/podinfo

KubeStack

Terraform GitOps Framework.

Argo CD

https://github.com/argoproj/argo-cd

Argo and GitOps

https://www.cncf.io/blog/2020/12/17/solving-configuration-drift-using-gitops-with-argo-cd/

Argo CD Terraform module

https://www.kubestack.com/catalog/argo-cd

Argo CD and Flux

https://thenewstack.io/gitops-on-kubernetes-deciding-between-argo-cd-and-flux/

Examples

Terraform GitOps via Cloud Build

This tutorial explains how to manage infrastructure as code with Terraform and Cloud Build using the popular GitOps methodology.

The tutorial uses Cloud Build to automatically apply Terraform manifests to your environment.

https://cloud.google.com/architecture/managing-infrastructure-as-code

Building docker images with github actions

https://medium.com/@flowsquad/building-docker-images-with-github-actions-and-google-cloud-b8894e0edff0

Gitlab GitOps with Anthos

https://www.youtube.com/watch?v=npc08ggdTOw

List of GitOps resources

https://github.com/weaveworks/awesome-gitops