Chore [Docs]: Http Chaos Status Code experiment docs (#3677)
* Added http status code chaos experiment docs Signed-off-by: avaakash <as86414@gmail.com> * Added status code in examples Signed-off-by: avaakash <as86414@gmail.com> * Added in index Signed-off-by: avaakash <as86414@gmail.com> * Added explanation for random code selection and list of supported value Signed-off-by: avaakash <as86414@gmail.com> * fixed typos Signed-off-by: avaakash <as86414@gmail.com> * comment improvements Signed-off-by: avaakash <as86414@gmail.com> * updated image for headers Signed-off-by: avaakash <as86414@gmail.com>
This commit is contained in:
parent
1ae9414182
commit
7803b54d25
|
|
@ -101,6 +101,11 @@ Chaos actions that apply to generic Kubernetes resources are classified into thi
|
|||
<td>Injects HTTP latency into Application Pod</td>
|
||||
<td><a href="/litmus/experiments/categories/pods/pod-http-latency">pod-http-latency</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Pod HTTP Status Code</td>
|
||||
<td>Injects HTTP status code chaos into Application Pod</td>
|
||||
<td><a href="/litmus/experiments/categories/pods/pod-http-status-code">pod-http-status-code</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Pod HTTP Modify Body</td>
|
||||
<td>Injects HTTP modify body into Application Pod</td>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,435 @@
|
|||
## Introduction
|
||||
|
||||
- It injects http status code chaos inside the pod which modifies the status code of the response from the provided application server to desired status code provided by user on the service whose port is provided as `TARGET_SERVICE_PORT` by starting proxy server and then redirecting the traffic through the proxy server.
|
||||
- It can test the application's resilience to error code http responses from the provided application server.
|
||||
|
||||
!!! tip "Scenario: Modify http response status code of the HTTP request"
|
||||

|
||||
|
||||
## Uses
|
||||
|
||||
??? info "View the uses of the experiment"
|
||||
coming soon
|
||||
|
||||
## Prerequisites
|
||||
|
||||
??? info "Verify the prerequisites"
|
||||
- Ensure that Kubernetes Version > 1.17
|
||||
- Ensure that the Litmus Chaos Operator is running by executing <code>kubectl get pods</code> in operator namespace (typically, <code>litmus</code>).If not, install from <a href="https://v1-docs.litmuschaos.io/docs/getstarted/#install-litmus">here</a>
|
||||
- Ensure that the <code>pod-http-status-code</code> experiment resource is available in the cluster by executing <code>kubectl get chaosexperiments</code> in the desired namespace. If not, install from <a href="https://hub.litmuschaos.io/api/chaos/master?file=charts/generic/pod-http-status-code/experiment.yaml">here</a>
|
||||
|
||||
## Default Validations
|
||||
|
||||
??? info "View the default validations"
|
||||
The application pods should be in running state before and after chaos injection.
|
||||
|
||||
## Minimal RBAC configuration example (optional)
|
||||
|
||||
!!! tip "NOTE"
|
||||
If you are using this experiment as part of a litmus workflow scheduled constructed & executed from chaos-center, then you may be making use of the [litmus-admin](https://litmuschaos.github.io/litmus/litmus-admin-rbac.yaml) RBAC, which is pre installed in the cluster as part of the agent setup.
|
||||
|
||||
??? note "View the Minimal RBAC permissions"
|
||||
|
||||
[embedmd]:# (https://raw.githubusercontent.com/litmuschaos/chaos-charts/master/charts/generic/pod-http-status-code/rbac.yaml yaml)
|
||||
```yaml
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
name: pod-http-status-code-sa
|
||||
namespace: default
|
||||
labels:
|
||||
name: pod-http-status-code-sa
|
||||
app.kubernetes.io/part-of: litmus
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: Role
|
||||
metadata:
|
||||
name: pod-http-status-code-sa
|
||||
namespace: default
|
||||
labels:
|
||||
name: pod-http-status-code-sa
|
||||
app.kubernetes.io/part-of: litmus
|
||||
rules:
|
||||
# Create and monitor the experiment & helper pods
|
||||
- apiGroups: [""]
|
||||
resources: ["pods"]
|
||||
verbs: ["create","delete","get","list","patch","update", "deletecollection"]
|
||||
# Performs CRUD operations on the events inside chaosengine and chaosresult
|
||||
- apiGroups: [""]
|
||||
resources: ["events"]
|
||||
verbs: ["create","get","list","patch","update"]
|
||||
# Fetch configmaps details and mount it to the experiment pod (if specified)
|
||||
- apiGroups: [""]
|
||||
resources: ["configmaps"]
|
||||
verbs: ["get","list",]
|
||||
# Track and get the runner, experiment, and helper pods log
|
||||
- apiGroups: [""]
|
||||
resources: ["pods/log"]
|
||||
verbs: ["get","list","watch"]
|
||||
# for creating and managing to execute comands inside target container
|
||||
- apiGroups: [""]
|
||||
resources: ["pods/exec"]
|
||||
verbs: ["get","list","create"]
|
||||
# deriving the parent/owner details of the pod(if parent is anyof {deployment, statefulset, daemonsets})
|
||||
- apiGroups: ["apps"]
|
||||
resources: ["deployments","statefulsets","replicasets", "daemonsets"]
|
||||
verbs: ["list","get"]
|
||||
# deriving the parent/owner details of the pod(if parent is deploymentConfig)
|
||||
- apiGroups: ["apps.openshift.io"]
|
||||
resources: ["deploymentconfigs"]
|
||||
verbs: ["list","get"]
|
||||
# deriving the parent/owner details of the pod(if parent is deploymentConfig)
|
||||
- apiGroups: [""]
|
||||
resources: ["replicationcontrollers"]
|
||||
verbs: ["get","list"]
|
||||
# deriving the parent/owner details of the pod(if parent is argo-rollouts)
|
||||
- apiGroups: ["argoproj.io"]
|
||||
resources: ["rollouts"]
|
||||
verbs: ["list","get"]
|
||||
# for configuring and monitor the experiment job by the chaos-runner pod
|
||||
- apiGroups: ["batch"]
|
||||
resources: ["jobs"]
|
||||
verbs: ["create","list","get","delete","deletecollection"]
|
||||
# for creation, status polling and deletion of litmus chaos resources used within a chaos workflow
|
||||
- apiGroups: ["litmuschaos.io"]
|
||||
resources: ["chaosengines","chaosexperiments","chaosresults"]
|
||||
verbs: ["create","list","get","patch","update","delete"]
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: RoleBinding
|
||||
metadata:
|
||||
name: pod-http-status-code-sa
|
||||
namespace: default
|
||||
labels:
|
||||
name: pod-http-status-code-sa
|
||||
app.kubernetes.io/part-of: litmus
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: Role
|
||||
name: pod-http-status-code-sa
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: pod-http-status-code-sa
|
||||
namespace: default
|
||||
```
|
||||
Use this sample RBAC manifest to create a chaosServiceAccount in the desired (app) namespace. This example consists of the minimum necessary role permissions to execute the experiment.
|
||||
|
||||
## Experiment tunables
|
||||
|
||||
??? info "check the experiment tunables"
|
||||
<h2>Mandatory Fields</h2>
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th> Variables </th>
|
||||
<th> Description </th>
|
||||
<th> Notes </th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> TARGET_SERVICE_PORT </td>
|
||||
<td> Port of the service to target</td>
|
||||
<td>Defaults to port 80 </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> STATUS_CODE </td>
|
||||
<td> Modified status code for the HTTP response</td>
|
||||
<td> If no value is provided, then a random value is selected from the list of supported values.
|
||||
Supported values: [200, 201, 202, 204, 300, 301, 302, 304, 307, 400, 401, 403, 404, 500, 501, 502, 503, 504].
|
||||
Defaults to random status code </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> MODIFY_RESPONSE_BODY </td>
|
||||
<td> Whether to modify the body as per the status code provided.</td>
|
||||
<td> If true, then the body is replaced by a default template for the status code. Defaults to true </td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h2>Optional Fields</h2>
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th> Variables </th>
|
||||
<th> Description </th>
|
||||
<th> Notes </th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> PROXY_PORT </td>
|
||||
<td> Port where the proxy will be listening for requests</td>
|
||||
<td> Defaults to 20000 </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> NETWORK_INTERFACE </td>
|
||||
<td> Network interface to be used for the proxy</td>
|
||||
<td> Defaults to `eth0` </td>
|
||||
<tr>
|
||||
<td> CONTAINER_RUNTIME </td>
|
||||
<td> container runtime interface for the cluster</td>
|
||||
<td> Defaults to docker, supported values: docker, containerd and crio for litmus and only docker for pumba LIB </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> SOCKET_PATH </td>
|
||||
<td> Path of the containerd/crio/docker socket file </td>
|
||||
<td> Defaults to `/var/run/docker.sock` </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> TOTAL_CHAOS_DURATION </td>
|
||||
<td> The duration of chaos injection (seconds) </td>
|
||||
<td> Default (60s) </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> TARGET_PODS </td>
|
||||
<td> Comma separated list of application pod name subjected to pod http status code chaos</td>
|
||||
<td> If not provided, it will select target pods randomly based on provided appLabels</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> PODS_AFFECTED_PERC </td>
|
||||
<td> The Percentage of total pods to target </td>
|
||||
<td> Defaults to 0 (corresponds to 1 replica), provide numeric value only </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> LIB_IMAGE </td>
|
||||
<td> Image used to run the netem command </td>
|
||||
<td> Defaults to `litmuschaos/go-runner:latest` </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> RAMP_TIME </td>
|
||||
<td> Period to wait before and after injection of chaos in sec </td>
|
||||
<td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> SEQUENCE </td>
|
||||
<td> It defines sequence of chaos execution for multiple target pods </td>
|
||||
<td> Default value: parallel. Supported: serial, parallel </td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
## Experiment Examples
|
||||
|
||||
### Common and Pod specific tunables
|
||||
|
||||
Refer the [common attributes](../common/common-tunables-for-all-experiments.md) and [Pod specific tunable](common-tunables-for-pod-experiments.md) to tune the common tunables for all experiments and pod specific tunables.
|
||||
|
||||
### Target Service Port
|
||||
|
||||
It defines the port of the targeted service that is being targeted. It can be tuned via `TARGET_SERVICE_PORT` ENV.
|
||||
|
||||
Use the following example to tune this:
|
||||
|
||||
[embedmd]:# (pod-http-status-code/target-service-port.yaml yaml)
|
||||
```yaml
|
||||
## provide the port of the targeted service
|
||||
apiVersion: litmuschaos.io/v1alpha1
|
||||
kind: ChaosEngine
|
||||
metadata:
|
||||
name: engine-nginx
|
||||
spec:
|
||||
engineState: "active"
|
||||
annotationCheck: "false"
|
||||
appinfo:
|
||||
appns: "default"
|
||||
applabel: "app=nginx"
|
||||
appkind: "deployment"
|
||||
chaosServiceAccount: pod-http-status-code-sa
|
||||
experiments:
|
||||
- name: pod-http-status-code
|
||||
spec:
|
||||
components:
|
||||
env:
|
||||
# provide the port of the targeted service
|
||||
- name: TARGET_SERVICE_PORT
|
||||
value: "80"
|
||||
# modified status code for the http response
|
||||
- name: STATUS_CODE
|
||||
value: '500'
|
||||
```
|
||||
### Proxy Port
|
||||
|
||||
It defines the port on which the proxy server will listen for requests. It can be tuned via `PROXY_PORT` ENV.
|
||||
|
||||
Use the following example to tune this:
|
||||
|
||||
[embedmd]:# (pod-http-status-code/proxy-port.yaml yaml)
|
||||
```yaml
|
||||
## provide the port for proxy server
|
||||
apiVersion: litmuschaos.io/v1alpha1
|
||||
kind: ChaosEngine
|
||||
metadata:
|
||||
name: engine-nginx
|
||||
spec:
|
||||
engineState: "active"
|
||||
annotationCheck: "false"
|
||||
appinfo:
|
||||
appns: "default"
|
||||
applabel: "app=nginx"
|
||||
appkind: "deployment"
|
||||
chaosServiceAccount: pod-http-status-code-sa
|
||||
experiments:
|
||||
- name: pod-http-status-code
|
||||
spec:
|
||||
components:
|
||||
env:
|
||||
# provide the port for proxy server
|
||||
- name: PROXY_PORT
|
||||
value: '8080'
|
||||
# provide the port of the targeted service
|
||||
- name: TARGET_SERVICE_PORT
|
||||
value: "80"
|
||||
# modified status code for the http response
|
||||
- name: STATUS_CODE
|
||||
value: '500'
|
||||
```
|
||||
|
||||
### Status Code
|
||||
|
||||
It defines the status code value for the http response. It can be tuned via `STATUS_CODE` ENV.
|
||||
|
||||
Use the following example to tune this:
|
||||
|
||||
[embedmd]:# (pod-http-status-code/status-code.yaml yaml)
|
||||
```yaml
|
||||
## modified status code for the http response
|
||||
apiVersion: litmuschaos.io/v1alpha1
|
||||
kind: ChaosEngine
|
||||
metadata:
|
||||
name: engine-nginx
|
||||
spec:
|
||||
engineState: "active"
|
||||
annotationCheck: "false"
|
||||
appinfo:
|
||||
appns: "default"
|
||||
applabel: "app=nginx"
|
||||
appkind: "deployment"
|
||||
chaosServiceAccount: pod-http-status-code-sa
|
||||
experiments:
|
||||
- name: pod-http-status-code
|
||||
spec:
|
||||
components:
|
||||
env:
|
||||
# modified status code for the http response
|
||||
# if no value is provided, a random status code from the supported code list will selected
|
||||
# if an invalid status code is provided, the experiment will fail
|
||||
# supported status code list: [200, 201, 202, 204, 300, 301, 302, 304, 307, 400, 401, 403, 404, 500, 501, 502, 503, 504]
|
||||
- name: STATUS_CODE
|
||||
value: '500'
|
||||
# provide the port of the targeted service
|
||||
- name: TARGET_SERVICE_PORT
|
||||
value: "80"
|
||||
```
|
||||
|
||||
### Modify Response Body
|
||||
|
||||
It defines whether to modify the respone body with a pre-defined template to match with the status code value of the http response. It can be tuned via `MODIFY_RESPONSE_BODY` ENV.
|
||||
|
||||
Use the following example to tune this:
|
||||
|
||||
[embedmd]:# (pod-http-status-code/modify-body-with-response.yaml yaml)
|
||||
```yaml
|
||||
## whether to modify the body as per the status code provided
|
||||
apiVersion: litmuschaos.io/v1alpha1
|
||||
kind: ChaosEngine
|
||||
metadata:
|
||||
name: engine-nginx
|
||||
spec:
|
||||
engineState: "active"
|
||||
annotationCheck: "false"
|
||||
appinfo:
|
||||
appns: "default"
|
||||
applabel: "app=nginx"
|
||||
appkind: "deployment"
|
||||
chaosServiceAccount: pod-http-status-code-sa
|
||||
experiments:
|
||||
- name: pod-http-status-code
|
||||
spec:
|
||||
components:
|
||||
env:
|
||||
# whether to modify the body as per the status code provided
|
||||
- name: "MODIFY_RESPONSE_BODY"
|
||||
value: "true"
|
||||
# modified status code for the http response
|
||||
- name: STATUS_CODE
|
||||
value: '500'
|
||||
# provide the port of the targeted service
|
||||
- name: TARGET_SERVICE_PORT
|
||||
value: "80"
|
||||
```
|
||||
|
||||
### Network Interface
|
||||
It defines the network interface to be used for the proxy. It can be tuned via `NETWORK_INTERFACE` ENV.
|
||||
|
||||
Use the following example to tune this:
|
||||
|
||||
[embedmd]:# (pod-http-status-code/network-interface.yaml yaml)
|
||||
```yaml
|
||||
## provide the network interface for proxy
|
||||
apiVersion: litmuschaos.io/v1alpha1
|
||||
kind: ChaosEngine
|
||||
metadata:
|
||||
name: engine-nginx
|
||||
spec:
|
||||
engineState: "active"
|
||||
annotationCheck: "false"
|
||||
appinfo:
|
||||
appns: "default"
|
||||
applabel: "app=nginx"
|
||||
appkind: "deployment"
|
||||
chaosServiceAccount: pod-http-status-code-sa
|
||||
experiments:
|
||||
- name: pod-http-status-code
|
||||
spec:
|
||||
components:
|
||||
env:
|
||||
# provide the network interface for proxy
|
||||
- name: NETWORK_INTERFACE
|
||||
value: "eth0"
|
||||
# provide the port of the targeted service
|
||||
- name: TARGET_SERVICE_PORT
|
||||
value: '80'
|
||||
# modified status code for the http response
|
||||
- name: STATUS_CODE
|
||||
value: '500'
|
||||
```
|
||||
|
||||
### Container Runtime Socket Path
|
||||
|
||||
It defines the `CONTAINER_RUNTIME` and `SOCKET_PATH` ENV to set the container runtime and socket file path.
|
||||
|
||||
- `CONTAINER_RUNTIME`: It supports `docker`, `containerd`, and `crio` runtimes. The default value is `docker`.
|
||||
- `SOCKET_PATH`: It contains path of docker socket file by default(`/var/run/docker.sock`). For other runtimes provide the appropriate path.
|
||||
|
||||
Use the following example to tune this:
|
||||
|
||||
[embedmd]:# (pod-http-status-code/container-runtime-and-socket-path.yaml yaml)
|
||||
```yaml
|
||||
## provide the container runtime and socket file path
|
||||
apiVersion: litmuschaos.io/v1alpha1
|
||||
kind: ChaosEngine
|
||||
metadata:
|
||||
name: engine-nginx
|
||||
spec:
|
||||
engineState: "active"
|
||||
annotationCheck: "false"
|
||||
appinfo:
|
||||
appns: "default"
|
||||
applabel: "app=nginx"
|
||||
appkind: "deployment"
|
||||
chaosServiceAccount: pod-http-status-code-sa
|
||||
experiments:
|
||||
- name: pod-http-status-code
|
||||
spec:
|
||||
components:
|
||||
env:
|
||||
# runtime for the container
|
||||
# supports docker, containerd, crio
|
||||
- name: CONTAINER_RUNTIME
|
||||
value: 'docker'
|
||||
# path of the socket file
|
||||
- name: SOCKET_PATH
|
||||
value: '/var/run/docker.sock'
|
||||
# provide the port of the targeted service
|
||||
- name: TARGET_SERVICE_PORT
|
||||
value: "80"
|
||||
# modified status code for the http response
|
||||
- name: STATUS_CODE
|
||||
value: '500'
|
||||
```
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
## provide the container runtime and socket file path
|
||||
apiVersion: litmuschaos.io/v1alpha1
|
||||
kind: ChaosEngine
|
||||
metadata:
|
||||
name: engine-nginx
|
||||
spec:
|
||||
engineState: "active"
|
||||
annotationCheck: "false"
|
||||
appinfo:
|
||||
appns: "default"
|
||||
applabel: "app=nginx"
|
||||
appkind: "deployment"
|
||||
chaosServiceAccount: pod-http-status-code-sa
|
||||
experiments:
|
||||
- name: pod-http-status-code
|
||||
spec:
|
||||
components:
|
||||
env:
|
||||
# runtime for the container
|
||||
# supports docker, containerd, crio
|
||||
- name: CONTAINER_RUNTIME
|
||||
value: 'docker'
|
||||
# path of the socket file
|
||||
- name: SOCKET_PATH
|
||||
value: '/var/run/docker.sock'
|
||||
# provide the port of the targeted service
|
||||
- name: TARGET_SERVICE_PORT
|
||||
value: "80"
|
||||
# modified status code for the http response
|
||||
- name: STATUS_CODE
|
||||
value: '500'
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
## whether to modify the body as per the status code provided
|
||||
apiVersion: litmuschaos.io/v1alpha1
|
||||
kind: ChaosEngine
|
||||
metadata:
|
||||
name: engine-nginx
|
||||
spec:
|
||||
engineState: "active"
|
||||
annotationCheck: "false"
|
||||
appinfo:
|
||||
appns: "default"
|
||||
applabel: "app=nginx"
|
||||
appkind: "deployment"
|
||||
chaosServiceAccount: pod-http-status-code-sa
|
||||
experiments:
|
||||
- name: pod-http-status-code
|
||||
spec:
|
||||
components:
|
||||
env:
|
||||
# whether to modify the body as per the status code provided
|
||||
- name: "MODIFY_RESPONSE_BODY"
|
||||
value: "true"
|
||||
# modified status code for the http response
|
||||
- name: STATUS_CODE
|
||||
value: '500'
|
||||
# provide the port of the targeted service
|
||||
- name: TARGET_SERVICE_PORT
|
||||
value: "80"
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
## provide the network interface for proxy
|
||||
apiVersion: litmuschaos.io/v1alpha1
|
||||
kind: ChaosEngine
|
||||
metadata:
|
||||
name: engine-nginx
|
||||
spec:
|
||||
engineState: "active"
|
||||
annotationCheck: "false"
|
||||
appinfo:
|
||||
appns: "default"
|
||||
applabel: "app=nginx"
|
||||
appkind: "deployment"
|
||||
chaosServiceAccount: pod-http-status-code-sa
|
||||
experiments:
|
||||
- name: pod-http-status-code
|
||||
spec:
|
||||
components:
|
||||
env:
|
||||
# provide the network interface for proxy
|
||||
- name: NETWORK_INTERFACE
|
||||
value: "eth0"
|
||||
# provide the port of the targeted service
|
||||
- name: TARGET_SERVICE_PORT
|
||||
value: '80'
|
||||
# modified status code for the http response
|
||||
- name: STATUS_CODE
|
||||
value: '500'
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
## provide the port for proxy server
|
||||
apiVersion: litmuschaos.io/v1alpha1
|
||||
kind: ChaosEngine
|
||||
metadata:
|
||||
name: engine-nginx
|
||||
spec:
|
||||
engineState: "active"
|
||||
annotationCheck: "false"
|
||||
appinfo:
|
||||
appns: "default"
|
||||
applabel: "app=nginx"
|
||||
appkind: "deployment"
|
||||
chaosServiceAccount: pod-http-status-code-sa
|
||||
experiments:
|
||||
- name: pod-http-status-code
|
||||
spec:
|
||||
components:
|
||||
env:
|
||||
# provide the port for proxy server
|
||||
- name: PROXY_PORT
|
||||
value: '8080'
|
||||
# provide the port of the targeted service
|
||||
- name: TARGET_SERVICE_PORT
|
||||
value: "80"
|
||||
# modified status code for the http response
|
||||
- name: STATUS_CODE
|
||||
value: '500'
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
## modified status code for the http response
|
||||
apiVersion: litmuschaos.io/v1alpha1
|
||||
kind: ChaosEngine
|
||||
metadata:
|
||||
name: engine-nginx
|
||||
spec:
|
||||
engineState: "active"
|
||||
annotationCheck: "false"
|
||||
appinfo:
|
||||
appns: "default"
|
||||
applabel: "app=nginx"
|
||||
appkind: "deployment"
|
||||
chaosServiceAccount: pod-http-status-code-sa
|
||||
experiments:
|
||||
- name: pod-http-status-code
|
||||
spec:
|
||||
components:
|
||||
env:
|
||||
# modified status code for the http response
|
||||
# if no value is provided, a random status code from the supported code list will selected
|
||||
# if an invalid status code is provided, the experiment will fail
|
||||
# supported status code list: [200, 201, 202, 204, 300, 301, 302, 304, 307, 400, 401, 403, 404, 500, 501, 502, 503, 504]
|
||||
- name: STATUS_CODE
|
||||
value: '500'
|
||||
# provide the port of the targeted service
|
||||
- name: TARGET_SERVICE_PORT
|
||||
value: "80"
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
## provide the port of the targeted service
|
||||
apiVersion: litmuschaos.io/v1alpha1
|
||||
kind: ChaosEngine
|
||||
metadata:
|
||||
name: engine-nginx
|
||||
spec:
|
||||
engineState: "active"
|
||||
annotationCheck: "false"
|
||||
appinfo:
|
||||
appns: "default"
|
||||
applabel: "app=nginx"
|
||||
appkind: "deployment"
|
||||
chaosServiceAccount: pod-http-status-code-sa
|
||||
experiments:
|
||||
- name: pod-http-status-code
|
||||
spec:
|
||||
components:
|
||||
env:
|
||||
# provide the port of the targeted service
|
||||
- name: TARGET_SERVICE_PORT
|
||||
value: "80"
|
||||
# modified status code for the http response
|
||||
- name: STATUS_CODE
|
||||
value: '500'
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 238 KiB After Width: | Height: | Size: 228 KiB |
|
|
@ -100,6 +100,7 @@ nav:
|
|||
- Pod Network Loss: experiments/categories/pods/pod-network-loss.md
|
||||
- Pod Network Partition: experiments/categories/pods/pod-network-partition.md
|
||||
- Pod HTTP Latency: experiments/categories/pods/pod-http-latency.md
|
||||
- Pod HTTP Status Code: experiments/categories/pods/pod-http-status-code.md
|
||||
- Pod HTTP Modify Body: experiments/categories/pods/pod-http-modify-body.md
|
||||
- Pod HTTP Modify Header: experiments/categories/pods/pod-http-modify-header.md
|
||||
- Node Chaos:
|
||||
|
|
|
|||
Loading…
Reference in New Issue