Skip to content

Validation Status

Components

ComponentValidation MethodStatusNotes
Scenario scriptsManual testing✅ ValidatedAll simulate scripts tested
Diagnostic toolsManual testing✅ ValidatedAll tools tested and functional
Network scenarioKind deployment✅ ValidatedNetwork connectivity scenario works
Resource scenarioKind deployment✅ ValidatedResource exhaustion scenario works
Permission scenarioKind deployment✅ ValidatedPermission denied scenario works
Image pull scenarioKind deployment✅ ValidatedImage pull failure scenario works
DNS scenarioKind deployment✅ ValidatedDNS resolution scenario works
Certificate scenarioKind deployment✅ ValidatedCertificate issue scenario works
DocumentationManual review✅ ValidatedAll documentation reviewed
Setup scriptsManual testing✅ ValidatedSetup and cleanup scripts tested

How to Validate

Local Validation (Kind)

bash
# Create Kind cluster
kind create cluster --name troubleshooting-lab

# Setup scenarios
cd labs/09-troubleshooting-scenarios
./scripts/setup-scenarios.sh

# Run a scenario
./scenarios/network-connectivity/simulate.sh

# Diagnose (try first!)
kubectl get pods -n network-test
kubectl describe pod client-pod -n network-test

# Follow diagnosis guide
cat scenarios/network-connectivity/diagnosis.md

# Apply resolution
cat scenarios/network-connectivity/resolution.md
# Follow resolution steps

# Verify fix
kubectl exec client-pod -n network-test -- wget -O- http://test-service

# Cleanup
./scripts/cleanup-all.sh

Test All Scenarios

bash
# Test each scenario
for scenario in network-connectivity resource-exhaustion permission-denied image-pull-failures dns-resolution certificate-issues; do
  echo "Testing $scenario..."
  ./scenarios/$scenario/simulate.sh
  # Diagnose and resolve
  ./scripts/cleanup-all.sh
done

Test Diagnostic Tools

bash
# Test connectivity check
./diagnostic-tools/connectivity-check.sh network-test client-pod

# Test resource inspector
./diagnostic-tools/resource-inspector.sh resource-test

# Test log collector
./diagnostic-tools/log-collector.sh network-test client-pod ./logs

# Test cluster health
./diagnostic-tools/cluster-health.sh

Scenario Validation

Network Connectivity

  • [x] Simulation creates network policy blocking traffic
  • [x] Diagnosis guide identifies network policy
  • [x] Resolution removes/updates network policy
  • [x] Fix verified with connectivity test

Resource Exhaustion

  • [x] Simulation creates resource quota and OOMKilled pods
  • [x] Diagnosis guide identifies resource issues
  • [x] Resolution increases quota or fixes limits
  • [x] Fix verified with pod status check

Permission Denied

  • [x] Simulation creates pod with no permissions
  • [x] Diagnosis guide identifies RBAC issue
  • [x] Resolution creates Role and RoleBinding
  • [x] Fix verified with permission test

Image Pull Failures

  • [x] Simulation creates pod with invalid image
  • [x] Diagnosis guide identifies image issue
  • [x] Resolution fixes image name or adds secret
  • [x] Fix verified with pod status check

DNS Resolution

  • [x] Simulation creates pod with wrong DNS config
  • [x] Diagnosis guide identifies DNS issue
  • [x] Resolution fixes DNS configuration
  • [x] Fix verified with DNS test

Certificate Issues

  • [x] Simulation creates pod connecting to expired certificate
  • [x] Diagnosis guide identifies certificate issue
  • [x] Resolution explains certificate renewal
  • [x] Fix verified with certificate test

Diagnostic Tools Validation

Connectivity Check

  • [x] Checks pod status
  • [x] Tests service endpoints
  • [x] Tests DNS resolution
  • [x] Checks network policies
  • [x] Shows pod IP and events

Resource Inspector

  • [x] Shows resource quotas
  • [x] Shows resource usage
  • [x] Identifies OOMKilled pods
  • [x] Identifies pending pods
  • [x] Shows resource requests/limits

Log Collector

  • [x] Collects current logs
  • [x] Collects previous logs
  • [x] Collects pod description
  • [x] Collects events
  • [x] Collects pod YAML

Cluster Health

  • [x] Checks cluster connectivity
  • [x] Checks node status
  • [x] Shows pod status summary
  • [x] Identifies failed pods
  • [x] Shows resource usage
  • [x] Shows recent events

Documentation Validation

  • [x] Systematic debugging methodology complete
  • [x] Common patterns documented
  • [x] Escalation guide complete
  • [x] Step-by-step guide complete
  • [x] Troubleshooting reference complete
  • [x] All scenario guides complete

Community Validation

If you've used this lab successfully, please:

  1. Open an issue confirming successful completion
  2. Note which scenarios you completed
  3. Share any additional patterns you discovered
  4. Note any improvements or suggestions
  5. Update this file via PR if appropriate

Status Legend

  • ✅ Validated - Tested and confirmed working
  • ⏳ Pending - Not yet validated
  • ⚠️ Reviewed - Code reviewed but not tested
  • ❌ Failed - Validation failed (see notes)

Notes

Learning Focus

This lab is designed for learning, not production deployment. The scenarios intentionally create problems for practice. Always clean up after completing scenarios.

Scenario Independence

Each scenario is independent. You can run them in any order. Clean up between scenarios to avoid interference.

Real-World Application

The patterns and solutions in these scenarios apply directly to real-world troubleshooting. Use the methodology and tools in production environments.


Remember: The goal is learning. Take your time, try to diagnose before reading guides, and build your troubleshooting skills!

Released under the MIT License.