Deploying with GitOps
What is GitOps?
GitOps is a way of managing your infrastructure and applications so that the whole system is described declaratively and version controlled (most likely in a Git repository), and having an automated process that ensures that the deployed environment matches the state specified in a repository."- WeaveWorks
Why should I use GitOps?
GitOps simply allows faster deployments by having git repositories in the center offering a clear audit trail via git commits and no direct environment access. Read more on Why should I use GitOps?
The below diagram compares traditional CI/CD vs GitOps workflow:
Tools for GitOps
Some popular GitOps frameworks for Kubernetes backed by CNCF community:
Deploying using GitOps
GitOps with Flux v2 can be enabled in Azure Kubernetes Service (AKS) managed clusters or Azure Arc-enabled Kubernetes connected clusters as a cluster extension. After the microsoft.flux cluster extension is installed, you can create one or more fluxConfigurations resources that sync your Git repository sources to the cluster and reconcile the cluster to the desired state. With GitOps, you can use your Git repository as the source of truth for cluster configuration and application deployment.
- Tutorial: Deploy configurations using GitOps on an Azure Arc-enabled Kubernetes cluster
- Tutorial: Implement CI/CD with GitOps
- Multi-cluster and multi-tenant environment with Flux v2