Menu

Important: This documentation is about an older version. It's relevant only to the release noted, many of the features and functions have been updated or replaced. Please view the current version.

Open source RSS

PodDisruptor

The PodDisruptor class can inject different types of faults into the pods that match a selection criteria.

To construct a PodDisruptor, use the PodDisruptor() constructor.

Methods

MethodDescription
PodDisruptor.injectGrpcFaults()Inject gRPC faults in the target Pods
PodDisruptor.injectHTTPFaults()Inject HTTP faults in the target Pods
PodDisruptor.targets()Returns the list of target Pods of the PodDisruptor
PodDisruptor.terminatePods()executes a Pod Termination fault in the target Pods

Example

This example:

  • Creates a selector that matches all pods in the default namespace with the run=nginx label
  • Injects a delay of 100ms and makes 10 percent of requests return an http response code 500.
JavaScript
import { PodDisruptor } from 'k6/x/disruptor';

const selector = {
  namespace: 'default',
  select: {
    labels: {
      run: 'nginx',
    },
  },
};

const fault = {
  averageDelay: '100ms',
  errorRate: 0.1,
  errorCode: 500,
};

export default function () {
  const disruptor = new PodDisruptor(selector);
  disruptor.injectHTTPFaults(fault, '30s');
}

Note

You can test this script by first creating a pod running nginx with the command below, assuming you have kubectl installed in your environment:

bash
$ kubectl run nginx --image=nginx

You can also use the xk6-kubernetes extension for creating these resources from your test script.