Skip to content

GitOps

GitOps was originally defined by Weave Works as a way to have Git at the center of your delivery pipeline. It works by using Git as a single source of truth for declarative infrastructure and applications. Developers use familiar tools to make pull requests to accelerate and simplify both application deployments and operations tasks to Kubernetes.

The entire system is described declaratively

Declarative means that configuration is guaranteed by a set of facts instead of by a set of instructions. With your application’s declarations versioned in Git, you have a single source of truth. Your apps can then be easily deployed and rolled back to and from Kubernetes. And even more importantly, when disaster strikes, your cluster’s infrastructure can also be dependably and quickly reproduced.

The desired system state is versioned in Git

With the declaration of your system stored in a version control system, and serving as your canonical source of truth, you have a single place from which everything is derived and driven. With Git’s excellent security guarantees, you can also use your SSH key to sign commits that enforce strong security guarantees about the authorship and provenance of your code.

Software agents ensure correctness and alert on divergence.

Once the state of your system is declared and kept under version control, software agents can inform you whenever reality doesn’t match your expectations. The use of agents also ensures that your entire system is self-healing and act as the feedback and control loop for your operations. Weave Works not only coined the term "GitOps", but also created Flux. Flux is the first agent built to facilitate GitOps reconciliation/control loops. Anothter notable agent in the GitOps space is ArgoCD.

Note: Weave Works is no longer in business, but Flux is still being maintained by the Cloud Native Computing Foundation, CNCF.


Resources