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
- 👉 Prompt Engineering for Developers: The Definitive Guide
- 👉 Python for DevOps: Mastering Real-World Automation
- 👉 The Complete Docker and Kubernetes Course: From Zero to Hero
- 👉 The Definitive Helm Course: From Beginner to Master
- 👉 Mastering Terraform: From Beginner to Expert
- 👉 Mastering GitHub Actions: From Beginner to Expert
- 👉 Write better code: 20 code smells and how to get rid of them
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.
To run the code examples, you'll need a Kubernetes cluster and some command-line tools installed.
- Kubernetes Cluster: You can use a local cluster like Minikube, Kind, or Docker Desktop.
- kubectl: The Kubernetes command-line tool. Installation guide.
- Argo Rollouts CLI: Command-line interface for Argo Rollouts. Installation guide.
-
Clone the Repository
git clone https://github.com/lm-academy/argo-rollouts-code.git cd argo-rollouts-code
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.
This repository includes helper scripts to simulate traffic and test your rollouts.
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 headerLocated 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 headerNote 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!