Skip to content

PierreH2/argo-rollouts-course

 
 

Repository files navigation

Argo CD and Argo Rollouts for GitOps: The Definitive Guide

This repository contains the code and materials for the Argo Rollouts section of my Argo CD & Argo Rollouts course.

If you are looking for the Argo CD materials, please check the Argo CD Repository.

➡️ Course link (with a big discount 🙂): https://www.lauromueller.com/courses/argo-cd-rollouts

Check my other courses:

Welcome!

I'm thrilled to have you here! This repository contains all the code, examples, and supplementary materials for the Progressive Delivery portion of the course. My goal is to provide you with practical, real-world examples that will help you master Argo Rollouts on Kubernetes.

🔗 Further Course Materials

🚀 Getting Started

To run the code examples, you'll need a Kubernetes cluster and some command-line tools installed.

Prerequisites

  1. Kubernetes Cluster: You can use a local cluster like Minikube, Kind, or Docker Desktop.
  2. kubectl: The Kubernetes command-line tool. Installation guide.
  3. Argo Rollouts CLI: Command-line interface for Argo Rollouts. Installation guide.

Repository Setup

  1. Clone the Repository

    git clone https://github.com/lm-academy/argo-rollouts-code.git
    cd argo-rollouts-code

📚 Repository Structure

This repository covers the following topics:

  • installing-argo-rollouts: Introduction to Argo Rollouts. Installing the controller and the kubectl plugin.
  • first-rollout: Rollouts Basics. Creating your first Rollout and understanding the difference from standard Deployments.
  • blue-green: Rollout Strategies. Implementing Blue-Green deployments to switch traffic between active and preview environments.
  • canary: Rollout Strategies. Implementing Canary deployments to gradually shift traffic to new versions.
  • traffic-weighting: Advanced Traffic Management. Using traffic weighting for granular control over canary steps.
  • header-based-routing: Implementing Header-Based Routing for targeted testing of canary revisions.
  • setup-gateway-api: Setting up the Kubernetes Gateway API and Traefik to enable advanced traffic management features.
  • setup-prometheus: Setting up Prometheus to collect metrics for analysis.
  • analysis-blue-green: Implementing Analysis Runs for Blue-Green deployments to automate promotion based on metrics.
  • analysis-canary: Implementing Analysis Runs for Canary deployments to automate promotion based on metrics.

🛠️ Helper Scripts

This repository includes helper scripts to simulate traffic and test your rollouts.

test-requests.sh (Linux/macOS)

Located in various folders (for example, analysis-blue-green/test-requests.sh), this Bash script sends requests to your application.

Usage:

./test-requests.sh [URL] [COUNT] [SLEEP]
./test-requests.sh --tester  # Sends x-canary: true header

test-requests.ps1 (Windows)

Located in the root folder, this PowerShell script provides equivalent functionality for Windows users.

Usage:

.\test-requests.ps1 -Url "http://localhost" -Count 100
.\test-requests.ps1 -Tester  # Sends x-canary: true header

Note on Differences:

  • The Bash script uses double-dash flags (such as --tester) and positional arguments.
  • The PowerShell script uses standard PowerShell parameters (such as -Tester, -Url).

I'm looking forward to seeing you in the course!

About

This repository contains all the labs for the Argo Rollouts sections of my Argo CD and Argo Rollouts course.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Shell 86.8%
  • PowerShell 13.2%