Monday, December 23, 2024

What is Argo CD? And When Was Argo CD Established?

- Advertisement -

What Is Argo CD?

Argo CD is declarative Kubernetes GitOps continuous delivery.

In DevOps, ArgoCD is a Continuous Delivery (CD) technology that has become well-liked for delivering applications to Kubernetes. It is based on the GitOps deployment methodology.

- Advertisement -

When was Argo CD Established?

Argo CD was created at Intuit and made publicly available following Applatix’s 2018 acquisition by Intuit. The founding developers of Applatix, Hong Wang, Jesse Suen, and Alexander Matyushentsev, made the Argo project open-source in 2017.

Why Argo CD?

Declarative and version-controlled application definitions, configurations, and environments are ideal. Automated, auditable, and easily comprehensible application deployment and lifecycle management are essential.

Getting Started

Quick Start

kubectl create namespace argocd kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml

For some features, more user-friendly documentation is offered. Refer to the upgrade guide if you want to upgrade your Argo CD. Those interested in creating third-party connectors can access developer-oriented resources.

- Advertisement -

How it works

Argo CD defines the intended application state by employing Git repositories as the source of truth, in accordance with the GitOps pattern. There are various approaches to specify Kubernetes manifests:

  • Applications for Customization
  • Helm charts
  • JSONNET files
  • Simple YAML/JSON manifest directory
  • Any custom configuration management tool that is set up as a plugin

The deployment of the intended application states in the designated target settings is automated by Argo CD. Deployments of applications can monitor changes to branches, tags, or pinned to a particular manifest version at a Git commit.

Architecture

image 32 7
Image credit to Argo CD 

The implementation of Argo CD is a Kubernetes controller that continually observes active apps and contrasts their present, live state with the target state (as defined in the Git repository). Out Of Sync is the term used to describe a deployed application whose live state differs from the target state. In addition to reporting and visualizing the differences, Argo CD offers the ability to manually or automatically sync the current state back to the intended goal state. The designated target environments can automatically apply and reflect any changes made to the intended target state in the Git repository.

Components

API Server

The Web UI, CLI, and CI/CD systems use the API, which is exposed by the gRPC/REST server. Its duties include the following:

  • Status reporting and application management
  • Launching application functions (such as rollback, sync, and user-defined actions)
  • Cluster credential management and repository (k8s secrets)
  • RBAC enforcement
  • Authentication, and auth delegation to outside identity providers
  • Git webhook event listener/forwarder

Repository Server

An internal service called the repository server keeps a local cache of the Git repository containing the application manifests. When given the following inputs, it is in charge of creating and returning the Kubernetes manifests:

  • URL of the repository
  • Revision (tag, branch, commit)
  • Path of the application
  • Template-specific configurations: helm values.yaml, parameters

A Kubernetes controller known as the application controller keeps an eye on all active apps and contrasts their actual, live state with the intended target state as defined in the repository. When it identifies an Out Of Sync application state, it may take remedial action. It is in charge of calling any user-specified hooks for lifecycle events (Sync, PostSync, and PreSync).

Features

  • Applications are automatically deployed to designated target environments.
  • Multiple configuration management/templating tools (Kustomize, Helm, Jsonnet, and plain-YAML) are supported.
  • Capacity to oversee and implement across several clusters
  • Integration of SSO (OIDC, OAuth2, LDAP, SAML 2.0, Microsoft, LinkedIn, GitHub, GitLab)
  • RBAC and multi-tenancy authorization policies
  • Rollback/Roll-anywhere to any Git repository-committed application configuration
  • Analysis of the application resources’ health state
  • Automated visualization and detection of configuration drift
  • Applications can be synced manually or automatically to their desired state.
  • Web user interface that shows program activity in real time
  • CLI for CI integration and automation
  • Integration of webhooks (GitHub, BitBucket, GitLab)
  • Tokens of access for automation
  • Hooks for PreSync, Sync, and PostSync to facilitate intricate application rollouts (such as canary and blue/green upgrades)
  • Application event and API call audit trails
  • Prometheus measurements
  • To override helm parameters in Git, use parameter overrides.
- Advertisement -
Thota nithya
Thota nithya
Thota Nithya has been writing Cloud Computing articles for govindhtech from APR 2023. She was a science graduate. She was an enthusiast of cloud computing.
RELATED ARTICLES

Recent Posts

Popular Post

Govindhtech.com Would you like to receive notifications on latest updates? No Yes