Skip to main content
Version: Next

Let's start with Podtato-head


podtato-head

In this tutorial, you will inject a pod-delete fault into the podtato-head-hat pod of the sample microservices application, podtato-head, and check if the pod remains available during the chaos.

What is Podtato-head?​

Podtato-head is a sample application provided by the CNCF designed for practicing Kubernetes and cloud-native environments. This application is composed of several microservices, including frontend, hat, left/right-arm, and left/right-leg. It serves as an environment for experimenting with fault recovery capabilities and testing the system resilience.

Prerequisites​

  • Kubernetes 1.18 or later (minimum 2 vCPUs, 8GB RAM, 10GB disk space)
  • A Persistent volume of 20GB
  • Kubectl

Install Podtato-head​

  1. Install podtato-head in the podtato-kubectl namespace using the manifest file, which also creates the namespace
kubectl apply -f https://github.com/podtato-head/podtato-head-app/releases/download/v0.3.3/manifest.yaml 
  1. Add a label to the podtato-head-hat deployment
kubectl label deployment podtato-head-hat app=podtato-head-hat -n podtato-kubectl

Install ChaosCenter​

  1. Follow the Getting-started guide to install ChaosCenter

  2. Access the ChaosCenter Dashboard

chaoscenter-dashboard

Set up Environment​

  1. Add a new environment
  • Environment Name: local
  • Environment Type: Production

local-environment

Enable Chaos Infrastructure​

  1. Configure a new chaos infrastructure
  • Name: local
  • Chaos Components Installation: Cluster-wide access
  • Installation Location (Namespace): litmus
  • Service Account Name: litmus
  1. Deploy the new chaos infrastructure
kubectl apply -f local-litmus-chaos-enable.yml
  1. Wait until the status changes to CONNECTED.

connected

Set up Resilience Probe​

  1. Select CMD Probe as the probe type

  2. Configure the probe properties and details

  • Name: check-podtato-head-hat-pod
  • Timeout: 10s
  • Interval: 1s
  • Attempt: 1
  • Command: kubectl get pods -n podtato-kubectl | grep podtato-head-hat | grep Running | wc -l
  • Type: Int
  • Comparison Criteria: >
  • Value: 0

setup-probe

Run Chaos Experiment​

  1. Start a new chaos experiment
  • Name: podtato-head
  • Chaos Infrastructure: local
  • Builder Type: Blank Canvas

start-chaos-experiment

  1. Add the pod-delete chaos fault

add-pod-delete

  1. Select the target application for the pod-delete chaos fault
  • App Kind: deployment
  • App Namespace: podtato-kubectl
  • App Label: app=podtato-head-hat

select-target-application

  1. Add the probe to the pod-delete chaos fault
  • Probe Name: check-podtato-head-hat-pod
  • Mode: EOT

add-probe

  1. Save and run the chaos experiment

Check Chaos Experiment Results​

  • Experiment Status: COMPLETED
  • Resilience Score: 100%
  • Probe Result: PASSED

experiment-result


Congratulations! 🎉 You've successfully completed the tutorial.
Continue exploring more tutorials to enjoy your journey with LitmusChaos! 🚀