Chapter 3. GitOps: Git as the Source of Truth

In this chapter, we’ll focus on GitOps, a critical part of Azure Arc enabled Kubernetes. GitOps may be a new concept, so we’ll take time to define and unpack what it is, how it works, and how you use it with Azure Arc enabled Kubernetes.

What Is GitOps?

GitOps is a term coined by Weaveworks in an August 2017 blog post. It’s an operating model pattern for cloud-native applications storing application and declarative infrastructure code in Git as the source of truth. It’s used for automated continuous delivery. Weaveworks used the GitOps operating model pattern with their Kubernetes environments.

Within Git, there is code that describes the state of your system, including apps, config, dashboards, monitoring, etc. Within GitOps, there is also software (an operator) that ensures that the state of your cloud-native live environments matches the desired state described in Git. At the time of this writing, the majority of operators, such as Flux and ArgoCD, are designed for use with Kubernetes; GitOps is not limited to Kubernetes, however. For example, there is a Terraform GitOps framework called Kubestack. The Git repository you plan to use with a Flux or ArgoCD operator can contain Kubernetes manifests in YAML format. These manifests should describe valid Kubernetes objects, such as namespaces, ConfigMaps, Secrets, Deployments, Pods, Services, Ingress, DaemonSets, and so on. The Git repository can also contain Helm Charts for applications ...

Get Azure Arc Enabled Kubernetes for Multicloud now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.