🚀 NEW RELEASE

EKS Troubleshooting Workshop Visual Edition

Master Kubernetes debugging with stunning visual feedback, interactive scenarios, and gamified learning. Transform chaos into expertise! 🎯

Visual ASCII Art
Gamified Learning
Real-time Progress
Achievement System
EKS Troubleshooting Workshop
$ ./scenario-manager.sh
╔══════════════════════════════════════════════════════════════╗ ║ 🚀 EKS TROUBLESHOOTING WORKSHOP COMMAND CENTER 🚀 ║ ║ ║ ║ Welcome to the ultimate Kubernetes debugging experience! ║ ║ Choose your chaos, master your skills! 💪 ║ ╚══════════════════════════════════════════════════════════════╝

🎮 Choose Your Troubleshooting Adventure

Each scenario provides hands-on experience with real-world Kubernetes issues

🐛

Pod Startup Failures

Debug ImagePullBackOff errors, resource constraints, missing secrets, node selector issues, and crash loops with visual feedback.

ImagePull Errors Resource Limits Secret Management Crash Loops
30 minutes
5 Issues
🌐

DNS Resolution Apocalypse

Navigate through CoreDNS chaos, network policy blockades, and service discovery failures with comprehensive DNS diagnostics.

CoreDNS Config Network Policies Service Discovery DNS Debugging
25 minutes
3 DNS Issues
🔐

RBAC Permission Nightmare

Master RBAC troubleshooting with forbidden errors, missing role bindings, and service account mysteries.

Role Bindings Service Accounts Permissions Security
20 minutes
RBAC Focus
🖥️

Node Health Crisis

Advanced node troubleshooting including resource exhaustion, kubelet issues, and cluster scaling problems.

Node Failures Resource Exhaustion Kubelet Issues Scaling
35 minutes
Advanced

🚀 Get Started in 5 Minutes

Clone, run, and start debugging with our interactive workshop

1

Clone Repository

git clone https://github.com/pravinmenghani1/eks-troubleshooting-workshop.git
cd eks-troubleshooting-workshop
2

Launch Interactive Mode

./scenario-manager.sh
3

Start Debugging!

Choose your scenario and begin the visual troubleshooting adventure!

Mission Control Center
🎯 MISSION CONTROL CENTER
What would you like to do today?
1. 📋 List available scenarios
2. 🚀 Launch troubleshooting scenario
3. 📊 Check scenario status
4. 🏥 Restore/heal a scenario
Enter your choice: _

✨ What Makes This Workshop Special

Experience the most engaging Kubernetes troubleshooting workshop ever created

🎨

Visual Excellence

Stunning ASCII art, real-time animations, and interactive dashboards make learning memorable and engaging.

  • Beautiful ASCII art banners
  • Real-time progress animations
  • Interactive status dashboards
  • Colorful terminal output
🎮

Gamified Learning

Achievement system, difficulty ratings, and victory celebrations transform debugging into an adventure.

  • Achievement badges
  • Star-based difficulty levels
  • Victory celebrations
  • Progress tracking
🎯

Realistic Scenarios

Production-like issues with multiple failure modes provide authentic troubleshooting experience.

  • Real-world problems
  • Complex interconnected issues
  • Progressive difficulty
  • Industry best practices
🛠️

Professional Tools

Comprehensive toolkit with automated setup, diagnostics, and cleanup for seamless workshop experience.

  • Automated cluster setup
  • Health check diagnostics
  • Complete cleanup tools
  • Step-by-step guides

🛠️ Prerequisites

Make sure you have these tools ready before starting the workshop

AWS CLI

Configured with appropriate permissions for EKS

aws configure

kubectl

Kubernetes command-line tool

kubectl version --client

eksctl

EKS cluster management tool

eksctl version

Basic Knowledge

Understanding of Kubernetes concepts

Ready to learn! 🚀
`; } function showTemporaryAccessInfo() { // Add temporary access notice const notice = document.createElement('div'); notice.className = 'temp-access-notice'; notice.style.cssText = ` position: fixed; top: 20px; right: 20px; background: linear-gradient(45deg, #ff9800, #f57c00); color: white; padding: 15px 20px; border-radius: 25px; box-shadow: 0 4px 20px rgba(0,0,0,0.2); z-index: 1000; font-weight: 600; max-width: 300px; text-align: center; `; notice.innerHTML = ` Temporary Access
Authentication system is being configured. Full features coming soon! `; document.body.appendChild(notice); // Track temporary access usage console.log('Temporary access granted for EKS Workshop'); } async function checkAuthentication() { try { const isAuthenticated = await auth0Client.isAuthenticated(); if (!isAuthenticated) { const localAuth = localStorage.getItem('auth0_authenticated'); if (!localAuth) { showAuthGate(); return false; } } let user; try { user = await auth0Client.getUser(); } catch (e) { user = JSON.parse(localStorage.getItem('auth0_user') || '{}'); } if (user && (user.sub || user.email)) { addUserInfo(user); return true; } else { showAuthGate(); return false; } } catch (error) { console.error('Authentication check error:', error); showAuthGate(); return false; } } function addUserInfo(user) { const nav = document.querySelector('.nav-container'); if (nav && !document.querySelector('.user-menu')) { const userMenu = document.createElement('div'); userMenu.className = 'user-menu'; userMenu.style.cssText = ` display: flex; align-items: center; gap: 15px; margin-left: auto; color: #333; font-weight: 600; `; const userName = user.name || user.nickname || user.email || 'User'; const userAvatar = user.picture || ''; userMenu.innerHTML = ` ${userAvatar ? `User` : ''} Welcome, ${userName}! `; nav.appendChild(userMenu); } } async function logoutUser() { try { localStorage.removeItem('auth0_authenticated'); localStorage.removeItem('auth0_user'); localStorage.removeItem('temp_access'); localStorage.removeItem('temp_access_time'); if (auth0Client) { await auth0Client.logout({ logoutParams: { returnTo: window.location.origin + '/auth-gate.html?redirect=eks-workshop.html' } }); } else { window.location.href = 'auth-gate.html?redirect=eks-workshop.html'; } } catch (error) { console.error('Logout error:', error); window.location.href = 'auth-gate.html?redirect=eks-workshop.html'; } } // Authentication protection async function protectPage() { try { console.log('🔒 Protecting EKS Workshop page...'); showAuthLoading('Checking authentication...'); const hasAccess = await window.protectPremiumPage(true); if (hasAccess) { console.log('✅ Access granted to EKS Workshop'); hideAuthLoading(); // Display user info if container exists await window.displayUserInfo('user-info'); } else { console.log('❌ Access denied, redirecting to auth gate'); // Redirect will be handled by protectPremiumPage } } catch (error) { console.error('❌ Error protecting page:', error); hideAuthLoading(); // Fallback redirect window.location.href = 'auth-gate.html?redirect=eks-workshop.html'; } } // Initialize authentication when page loads document.addEventListener('DOMContentLoaded', function() { // First protect the page protectPage(); // Then initialize the workshop functionality initAuth0(); });