An evolving space

GitOps is a relatively new concept, and the tools in the space are just beginning to emerge and mature. The universe of available GitOps tools address use cases that vary from Kubernetes workload management to cloud infrastructure provisioning. In many cases, these tools will require a particular tech stack to be in place for them when used with a system. Let's explore a few of these tools and their requirements to better understand the options available when using GitOps.

It starts with Git

Almost every tool within the GitOps space will require a hosted Git repository. This repository is necessary because GitOps tools will depend on it for storage and access to the desired state. In some cases, GitOps tools will store their configurations within a Git repository. There are many tools available when it comes to hosting Git repositories, such as GitHub, Azure DevOps, and others. For the best results, it's recommended that a Git repository hosting platform be consistent across an organization.

Managing Kubernetes workloads with GitOps

Argo CD

Argo CD is a GitOps tool that provides continuous delivery capabilities for applications that run on Kubernetes. The open-source tool was created by Intuit and maintained under the Argo community projects, which provide a family of GitOps tools for Kubernetes. Tools such as Argo Workflows, Argo Rollouts, and Argo Events are also found within the Argo community portfolio.

Argo CD closely adheres to the four GitOps principles by exhibiting the following characteristics:

  1. Declarative application and environment configuration

  2. Version-controlled configuration

  3. Automated deployment

  4. Automated drift correction

When using Argo CD to manage workloads that run on Kubernetes, developers can choose from several formats for managing their manifests, such as:

  • Plain YAML

  • ksonnet

  • Helm

Argo CD can automate the deployment and management of a system when the desired state is specified in any of these formats. To configure the management of a system, Argo CD provides developers with the option to use a GUI or custom resource definitions.

Argo CD graphical user interface

When using the GUI to manage workloads on Kubernetes, users are provided with visualizations that depict the runtime state of the cluster. From this interface, users can also manage the cluster configuration through capabilities that allow the setup of GitOps and reconciliation control.

Get hands-on with 1200+ tech skills courses.