Validating Application Health
In this lesson, we will be running experiments to validate whether all the instances of all the apps in that namespace are healthy.
Inspecting the definition of health.yaml
Let’s take a look at yet another chaos experiment definition.
cat chaos/health.yaml
The output is as follows.
version: 1.0.0
title: What happens if we terminate an instance of the application?
description: If an instance of the application is terminated, a new instance should be created
tags:
- k8s
- pod
- deployment
steady-state-hypothesis:
title: The app is healthy
probes:
- name: all-apps-are-healthy
type: probe
tolerance: true
provider:
type: python
func: all_microservices_healthy
module: chaosk8s.probes
arguments:
ns: go-demo-8
method:
- type: action
name: terminate-app-pod
provider:
type: python
module: chaosk8s.pod.actions
func: terminate_pods
arguments:
label_selector: app=go-demo-8
rand: true
ns: go-demo-8
What do we have there?
The title
asks what happens if we terminate an instance of an application?
. The description
says that if an instance of the application is terminated, a new instance should be created
. Both should be self-explanatory and do not serve any practical purpose. They are informing us about the objectives of the experiment.
“So far, that definition looks almost the same as what we were doing in the previous section.” If that’s what you’re thinking, you’re right. Or, to be more precise, they are very similar.
The reason why we’re doing this again is that there is an easier and ...