You are on page 1of 12

Continuous Deployment

using ArgoCD

Presented By: Dipayan Pramanik


Lack of etiquette and manners is a huge turn off.

KnolX Etiquettes

Punctuality Feedback
Respect Knolx session timings, you Make sure to submit a constructive
are requested not to join sessions feedback for all sessions as it is
after a 5 minutes threshold post very helpful for the presenter.
the session start time.

Silent Mode Avoid Disturbance


Keep your mobile devices in silent Avoid unwanted chit chat during
mode, feel free to move out of the session.
session in case you need to attend
an urgent call.
Our Agenda
01 What is GitOps

02 Why we need GitOps

03 What is ArgoCD

04 ArgoCD components

05 CI/CD Workflow with ArgoCD

06 Demo
What is GitOps
● An operating model for deployment on Kubernetes and other
cloud native technologies.

● It provides idempotency in the environment as it works to match


the current state to the desired state defined in the Github
Repo.

● It provides Continuous Delivery as well as Deployment with


visibility into the environment and thus providing the status of
the deployment.

● It also provides features like automated rollback, different


deployment strategies etc.
Why we need GitOps

● No visibility in the deployment environment

● For managed CI services we will need to authenticate


and authorize

● Risk of sensitive credentials being misplaced

● Need for manual rollback

● Risk of misconfiguration and human errors in the


deployment environment
What is ArgoCD
● Argo CD is a declarative, GitOps continuous delivery tool for
Kubernetes.

● Argo CD follows the GitOps pattern of using Git repositories


as the source of truth for defining the desired application
state.

● Kubernetes manifests can be specified in several ways:


kustomize applications, helm charts, ksonnet applications,
jsonnet files, Plain directory of YAML/json manifests, any
custom config management tool configured as a config
management plugin

● Argo CD automates the deployment of the desired


application states in the specified target environments.

● Application deployments can track updates to branches,


tags, or pinned to a specific version of manifests at a Git
commit.
ArgoCD Components
● API Server: The API server is a gRPC/REST server which exposes the API consumed by the Web UI, CLI, and
CI/CD systems and performs authentication and authorization, calls application operations like sync, rollback etc.

● Repository Server: Maintains a local cache of the repository and generates the manifest using specified tools.

● Application Controller: It monitors the Kubernetes cluster and deployed applications and compares the current
and live state of the applications.

● Redis Server: Redis database is used to store the local cache created by the repo Server.

● Dex Server: It is used to integrate with external IDP, LDAP providers for the purpose of SSO.

● Application: A group of Kubernetes resources as defined by a manifest. This is a Custom Resource Definition
(CRD).

● Project: Projects are logical grouping of one or more applications.


Features of ArgoCD
● A dedicated GitOps tool to automate deployment to Kubernetes Cluster.

● Provides health status for the deployed applications.

● Uses github repo as the source of truth

● Kubernetes native. Being deployed in the cluster, does not need extra credentials

● One instance of ArgoCD can deploy to multiple clusters

● Supports different tools to generate Kubernetes manifests

● Exposes HTTP as well as HTTPS endpoint

● Has an elegant UI which provides health status for deployed applications

● Supports Webhook
ArgoCD Health Status

● Sync: The process by which an argoCD application reach the desired target state
defined in repository from its current state.

● Health: The health status of the application.

○ Healthy: The application live and desired state are in sync.

○ Out Of Sync: The desired state and the live state are not same.

○ Progressing: The sync operation is ongoing and the application will be healthy soon

○ Degraded: The app health is degrading

○ Unknown: The app health is unknown


CI/CD workflow with ArgoCD
DEMO
Thank You !
Get in touch with us:
Chicago-Toronto-Singapore-Amsterdam-New Delhi

You might also like