GitOps with ArgoCD

Introduction

Course Introduction

Welcome to the GitOps with ArgoCD course!

My name is Barahalikar Siddharth, and I serve as a technical architect specializing in API management tools and DevOps technologies. In this course, you will master the fundamentals of GitOps, discover its core principles, and learn how to implement GitOps practices in real-world scenarios.

We will begin by comparing DevOps with GitOps and examining major deployment models—including push-based and pull-based methods. Then, you'll dive into ArgoCD basics, exploring its applications, key concepts, common terminology, and underlying architecture. We also cover advanced topics such as various reconciliation methods and the app-of-apps pattern.

The image shows a curriculum outline for a course on GitOps and ArgoCD, listing topics such as GitOps principles, ArgoCD architecture, and integration with Jenkins CI pipeline.

Course Highlights

Throughout this course, you will integrate essential third-party tools like Okta, Bitnami Sealed Secrets, and HashiCorp Vault for enhanced user and secret management. Additionally, you'll configure monitoring, alerts, and notifications using industry-standard tools such as Prometheus, Grafana, Alertmanager, and Slack.

We conclude the course with an end-to-end CI/CD pipeline example, demonstrating how ArgoCD and GitOps principles work together seamlessly.

The course is structured into lesson modules, each designed to simplify complex concepts through engaging illustrations and hands-on examples. In many modules, interactive labs allow you to practice what you learn directly in your browser.

Creating an ArgoCD Application

Below is an example of how to create an ArgoCD application using the CLI:

argocd app create color-app \
  --repo https://github.com/sid/app-1.git \
  --path team-2/color-app \
  --dest-namespace color \
  --dest-server https://kubernetes.default.svc

You can also define the application using a YAML specification:

apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: color-app
spec:
  destination:
    name: default
    server: https://kubernetes.default.svc
  source:
    repoURL: https://github.com/sid/app-1.git
    targetRevision: HEAD
    path: team-2/color-app
  syncPolicy:
    automated:
      selfHeal: true
    syncOptions:
      - CreateNamespace=true

Interactive Labs

After each lecture segment, you will access hands-on labs that enable you to put theory into practice immediately. The labs provide an interactive experience where you can test commands and observe real-time feedback. For example, a lab command might look like this:

controlplane ~ ➜ kubectl get solar-system
error: the server doesn't have a resource type "solar-system"
controlplane ~

The image shows a dashboard interface for managing applications, with options to sync, refresh, or delete an app named "solar-system-app-1." It includes filters for sync and health status, and a sidebar with navigation options.

Get Involved

If you encounter any issues or have questions during the course, please join our community channel for support. Active participation in the labs and community discussions will enhance your learning experience.


If you're ready to dive into the world of GitOps with ArgoCD, let's get started and revolutionize the way you think about continuous delivery and deployment!

Watch Video

Watch video content