Presented By: Dipayan Pramanik
Continuous Deployment
using ArgoCD
Lack of etiquette and manners is a huge turn off.
KnolX Etiquettes
Punctuality
Respect Knolx session timings, you
are requested not to join sessions
after a 5 minutes threshold post
the session start time.
Feedback
Make sure to submit a constructive
feedback for all sessions as it is
very helpful for the presenter.
Silent Mode
Keep your mobile devices in silent
mode, feel free to move out of
session in case you need to attend
an urgent call.
Avoid Disturbance
Avoid unwanted chit chat during
the session.
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

CD using ArgoCD(KnolX).pdf

  • 1.
    Presented By: DipayanPramanik Continuous Deployment using ArgoCD
  • 2.
    Lack of etiquetteand manners is a huge turn off. KnolX Etiquettes Punctuality Respect Knolx session timings, you are requested not to join sessions after a 5 minutes threshold post the session start time. Feedback Make sure to submit a constructive feedback for all sessions as it is very helpful for the presenter. Silent Mode Keep your mobile devices in silent mode, feel free to move out of session in case you need to attend an urgent call. Avoid Disturbance Avoid unwanted chit chat during the session.
  • 3.
    Our Agenda 01 Whatis GitOps 02 Why we need GitOps 03 What is ArgoCD 04 ArgoCD components 05 CI/CD Workflow with ArgoCD 06 Demo
  • 4.
    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.
  • 5.
    Why we needGitOps ● 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
  • 6.
    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.
  • 7.
    ArgoCD Components ● APIServer: 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.
  • 8.
    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
  • 9.
    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
  • 10.
  • 11.
  • 12.
    Thank You ! Getin touch with us: Chicago-Toronto-Singapore-Amsterdam-New Delhi