π οΈ Complete Workshop Setup Guide
Welcome to the CI/CD Chaos Workshop Setup Guide! This comprehensive guide will prepare your environment for all phases and scenariosβfrom local Python testing to advanced Kubernetes GitOps with ArgoCD and Argo Rollouts.
π― Goal: Get your environment battle-ready to defeat the Chaos Agent in every scenario! πΆοΈ
π Prerequisites Checklist
π» Hardware Requirements
- RAM: 8GB+ (16GB recommended for Kubernetes/ArgoCD scenarios)
- Storage: 10GB+ free disk space
- Network: Reliable internet connection
- Access: Administrator/root access
π οΈ Software Requirements
- Python: 3.10+ for automation and testing
- Docker: Desktop or Engine for containerization
- Kubernetes: Local cluster (Docker Desktop, Minikube, Kind, or cloud)
- Git: Version control
- Node.js: For frontend demos (optional but recommended)
π― Workshop Goals
- Build chaos-resistant CI/CD pipelines
- Master Testcontainers for reliable testing
- Deploy to Kubernetes with confidence
- Implement GitOps with ArgoCD and Argo Rollouts
- Defeat the Chaos Agent in all scenarios! π₯
π Step 1: Install Python 3.10+
πͺ Windows Installation
- Download Python
- Go to python.org/downloads
- Download Python 3.10 or higher
-
Important: Check "Add Python to PATH" during installation
-
Verify Installation
cmd python --version # Should show: Python 3.10.x or higher
π macOS Installation
Option A: Using Homebrew (Recommended)
# Install Homebrew first if you don't have it
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# Install Python
brew install python@3.10
Option B: Download from python.org - Visit python.org/downloads - Download the macOS installer - Run the installer
Verify Installation
python3 --version
# Should show: Python 3.10.x or higher
π§ Linux Installation
Ubuntu/Debian
# Update package list
sudo apt update
# Install Python 3.10
sudo apt install python3.10 python3.10-venv python3-pip
# Verify installation
python3.10 --version
CentOS/RHEL
# Install Python 3.10
sudo yum install python3.10 python3-pip
# Verify installation
python3.10 --version
π³ Step 2: Install Docker Desktop
πͺ Windows Installation
- Download Docker Desktop
- Go to docker.com/products/docker-desktop
- Download Docker Desktop for Windows
- Run the installer
-
Important: Enable WSL 2 if prompted
-
Start Docker Desktop
- Launch Docker Desktop from Start Menu
- Wait for the whale icon to stop animating
-
Docker is ready when the icon is static
-
Verify Installation
cmd docker --version docker run hello-world
π macOS Installation
- Download Docker Desktop
- Go to docker.com/products/docker-desktop
- Download Docker Desktop for Mac
- Drag Docker to Applications folder
-
Launch Docker Desktop
-
Verify Installation
bash docker --version docker run hello-world
π§ Linux Installation
Install Docker using convenience script
# Install Docker
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
# Add your user to docker group (log out and back in)
sudo usermod -aG docker $USER
# Start Docker service
sudo systemctl start docker
sudo systemctl enable docker
# Verify installation
docker --version
docker run hello-world
βΈοΈ Step 3: Choose Your Kubernetes Cluster
π³ Docker Desktop Kubernetes (Easiest)
Perfect if you already installed Docker Desktop above!
- Enable Kubernetes
- Open Docker Desktop
- Go to Settings β Kubernetes
- Check "Enable Kubernetes"
-
Click "Apply & Restart"
-
Verify Installation
bash kubectl version --client kubectl cluster-info
π Minikube (Most Popular)
The most popular local Kubernetes cluster
Install Minikube:
Windows:
# Using Chocolatey
choco install minikube
# Or download manually from: https://minikube.sigs.k8s.io/docs/start/
macOS:
# Using Homebrew
brew install minikube
Linux:
# Download and install
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube
Start and Verify:
minikube start
kubectl version --client
minikube status
π³ Kind (Kubernetes in Docker)
Lightweight Kubernetes cluster using Docker
Install Kind:
Windows:
# Using Chocolatey
choco install kind
macOS:
# Using Homebrew
brew install kind
Linux:
# Download and install
curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.20.0/kind-linux-amd64
chmod +x ./kind
sudo mv ./kind /usr/local/bin/kind
Create Cluster and Verify:
kind create cluster --name chaos-workshop
kubectl version --client
kind get clusters
βοΈ Cloud Kubernetes (GKE/EKS/AKS)
For cloud-based development
- Google Kubernetes Engine (GKE): Follow GKE setup guide
- Amazon EKS: Follow EKS setup guide
- Azure Kubernetes Service (AKS): Follow AKS setup guide
π― Step 4: Install kubectl (Kubernetes CLI)
πͺ Windows Installation
# Using Chocolatey
choco install kubernetes-cli
# Or download from: https://kubernetes.io/docs/tasks/tools/install-kubectl/
π macOS Installation
# Using Homebrew
brew install kubectl
# Or using curl
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/darwin/amd64/kubectl"
chmod +x ./kubectl
sudo mv ./kubectl /usr/local/bin/kubectl
π§ Linux Installation
# Download kubectl
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
chmod +x kubectl
sudo mv kubectl /usr/local/bin/
Verify kubectl Installation:
kubectl version --client
π¦ Step 5: Clone Workshop Repository
Install Git (if not already installed)
Windows: Download from git-scm.com
macOS:
brew install git
Linux:
sudo apt install git # Ubuntu/Debian
sudo yum install git # CentOS/RHEL
Clone the workshop repository
git clone https://github.com/vellankikoti/ci-cd-chaos-workshop.git
cd ci-cd-chaos-workshop
π Step 6: Set Up Python Virtual Environment
Create a virtual environment
# Windows
python -m venv venv
# macOS/Linux
python3 -m venv venv
Activate the virtual environment
Windows:
venv\Scripts\activate
macOS/Linux:
source venv/bin/activate
Verify activation
# You should see (venv) at the start of your prompt
which python # macOS/Linux
where python # Windows
π Step 7: Install Required Packages
Upgrade pip
pip install --upgrade pip
Install workshop dependencies
pip install -r requirements.txt
Install additional packages
pip install docker
pip install kubernetes
pip install jenkins
pip install jinja2
pip install weasyprint
pip install mkdocs
pip install mkdocs-material
Verify installations
python -c "import pytest, testcontainers, docker, kubernetes, fastapi, uvicorn; print('β
All packages installed successfully!')"
π― Step 8: Install Node.js (for frontend demos)
π macOS Installation
brew install node
πͺ Windows Installation
Download from nodejs.org
π§ Linux Installation
Ubuntu/Debian:
curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
sudo apt-get install -y nodejs
CentOS/RHEL:
curl -fsSL https://rpm.nodesource.com/setup_lts.x | sudo bash -
sudo yum install -y nodejs
Verify Node.js installation
node --version
npm --version
π Step 9: Install ArgoCD CLI (Optional, for advanced GitOps)
π macOS Installation
brew install argocd
π§ Linux Installation
curl -sSL -o argocd https://github.com/argoproj/argo-cd/releases/latest/download/argocd-linux-amd64
chmod +x argocd
sudo mv argocd /usr/local/bin/
πͺ Windows Installation
choco install argocd-cli
π Step 10: Install Argo Rollouts Plugin (Optional, for advanced rollout UI)
π macOS Installation
brew install argo-rollouts
π§ Linux Installation
curl -sLO https://github.com/argoproj/argo-rollouts/releases/latest/download/kubectl-argo-rollouts-linux-amd64
chmod +x kubectl-argo-rollouts-linux-amd64
sudo mv kubectl-argo-rollouts-linux-amd64 /usr/local/bin/kubectl-argo-rollouts
πͺ Windows Installation
choco install argo-rollouts
π§ͺ Step 11: Test Your Setup
Test Python
python --version
Test Docker
docker run hello-world
Test Kubernetes
kubectl version --client
kubectl cluster-info
Test Testcontainers
python -c "
from testcontainers.core.container import DockerContainer
from testcontainers.core.waiting_utils import wait_for_logs
# Test Redis container
with DockerContainer('redis:alpine') as redis:
redis.with_exposed_ports(6379)
redis.start()
print('β
Testcontainers working!')
"
Test Node.js
node --version
npm --version
π Step 12: You're Ready!
π Congratulations! You're Ready for Chaos!
If all tests pass, you're ready to battle the Chaos Agent in every scenario!
π Next Steps:
- β Read the Workshop Overview
- β Start with Phase 1: Test Mayhem
- β Prepare to defeat chaos! π₯
π Troubleshooting
Common Issues & Solutions
π³ Docker not starting
Windows: - Make sure WSL 2 is enabled - Check Docker Desktop is running
macOS: - Check Docker Desktop is running - Restart Docker Desktop if needed
Linux:
sudo systemctl start docker
sudo systemctl enable docker
βΈοΈ Kubernetes connection issues
Minikube:
minikube start
Kind:
kind create cluster
Docker Desktop: - Enable Kubernetes in Docker Desktop settings
π Python package issues
- Make sure your virtual environment is activated
- Try:
pip install --upgrade pip setuptools wheel - Check Python version:
python --version
π Permission errors
Windows: - Run as Administrator
Linux/macOS:
- Use sudo where needed
- Check file permissions and ownership
Still Stuck?
- Check the Troubleshooting Guide
- Ask in the workshop Discord/Slack
- Open an issue on GitHub
π― Quick Verification Checklist
Final Verification
Before the workshop starts, make sure you can run:
β Python works
python --version
β Docker works
docker run hello-world
β Kubernetes works
kubectl version --client
β Virtual environment is active
echo $VIRTUAL_ENV # Should show path to venv
β Packages are installed
python -c "import pytest, testcontainers, docker, kubernetes, fastapi, uvicorn; print('Ready!')"
β Node.js works (optional)
node --version
npm --version
Ready Message
If all β pass, you're ready to create some chaos! π§¨
π Workshop Phases Overview
Phase 1: Testcontainers
- Goal: Master reliable testing with containers
- Skills: Python testing, Docker integration, database testing
- Duration: 30 minutes
Phase 2: Jenkins
- Goal: Build chaos-resistant CI/CD pipelines
- Skills: Jenkins automation, pipeline scripting, error handling
- Duration: 45 minutes
Phase 3: Docker
- Goal: Containerize applications and handle Docker chaos
- Skills: Docker builds, multi-stage builds, image optimization
- Duration: 40 minutes
Phase 4: Kubernetes
- Goal: Deploy to Kubernetes and survive chaos
- Skills: K8s deployments, auto-scaling, GitOps with ArgoCD
- Duration: 60 minutes
π― Success Criteria
β Complete Setup Checklist:
- β Python 3.10+ installed and working
- β Docker Desktop/Engine installed and running
- β Kubernetes cluster accessible (local or cloud)
- β kubectl configured and working
- β Git installed and configured
- β Virtual environment created and activated
- β All Python packages installed
- β Node.js installed (for frontend demos)
- β ArgoCD CLI installed (for GitOps scenarios)
- β Argo Rollouts plugin installed (for advanced rollouts)
- β All verification tests passing