Compare commits
1 Commits
master
...
3.0.0-beta
Author | SHA1 | Date |
---|---|---|
|
e3f3285697 |
|
@ -1,215 +0,0 @@
|
|||
# Created by https://www.toptal.com/developers/gitignore/api/git,visualstudiocode,goland+all,jetbrains+all,macos
|
||||
# Edit at https://www.toptal.com/developers/gitignore?templates=git,visualstudiocode,goland+all,jetbrains+all,macos
|
||||
|
||||
### Git ###
|
||||
# Created by git for backups. To disable backups in Git:
|
||||
# $ git config --global mergetool.keepBackup false
|
||||
*.orig
|
||||
|
||||
# Created by git when using merge tools for conflicts
|
||||
*.BACKUP.*
|
||||
*.BASE.*
|
||||
*.LOCAL.*
|
||||
*.REMOTE.*
|
||||
*_BACKUP_*.txt
|
||||
*_BASE_*.txt
|
||||
*_LOCAL_*.txt
|
||||
*_REMOTE_*.txt
|
||||
|
||||
### GoLand+all ###
|
||||
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider
|
||||
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
|
||||
|
||||
# User-specific stuff
|
||||
.idea/**/workspace.xml
|
||||
.idea/**/tasks.xml
|
||||
.idea/**/usage.statistics.xml
|
||||
.idea/**/dictionaries
|
||||
.idea/**/shelf
|
||||
|
||||
# AWS User-specific
|
||||
.idea/**/aws.xml
|
||||
|
||||
# Generated files
|
||||
.idea/**/contentModel.xml
|
||||
|
||||
# Sensitive or high-churn files
|
||||
.idea/**/dataSources/
|
||||
.idea/**/dataSources.ids
|
||||
.idea/**/dataSources.local.xml
|
||||
.idea/**/sqlDataSources.xml
|
||||
.idea/**/dynamic.xml
|
||||
.idea/**/uiDesigner.xml
|
||||
.idea/**/dbnavigator.xml
|
||||
|
||||
# Gradle
|
||||
.idea/**/gradle.xml
|
||||
.idea/**/libraries
|
||||
|
||||
# Gradle and Maven with auto-import
|
||||
# When using Gradle or Maven with auto-import, you should exclude module files,
|
||||
# since they will be recreated, and may cause churn. Uncomment if using
|
||||
# auto-import.
|
||||
# .idea/artifacts
|
||||
# .idea/compiler.xml
|
||||
# .idea/jarRepositories.xml
|
||||
# .idea/modules.xml
|
||||
# .idea/*.iml
|
||||
# .idea/modules
|
||||
# *.iml
|
||||
# *.ipr
|
||||
|
||||
# CMake
|
||||
cmake-build-*/
|
||||
|
||||
# Mongo Explorer plugin
|
||||
.idea/**/mongoSettings.xml
|
||||
|
||||
# File-based project format
|
||||
*.iws
|
||||
|
||||
# IntelliJ
|
||||
out/
|
||||
|
||||
# mpeltonen/sbt-idea plugin
|
||||
.idea_modules/
|
||||
|
||||
# JIRA plugin
|
||||
atlassian-ide-plugin.xml
|
||||
|
||||
# Cursive Clojure plugin
|
||||
.idea/replstate.xml
|
||||
|
||||
# SonarLint plugin
|
||||
.idea/sonarlint/
|
||||
|
||||
# Crashlytics plugin (for Android Studio and IntelliJ)
|
||||
com_crashlytics_export_strings.xml
|
||||
crashlytics.properties
|
||||
crashlytics-build.properties
|
||||
fabric.properties
|
||||
|
||||
# Editor-based Rest Client
|
||||
.idea/httpRequests
|
||||
|
||||
# Android studio 3.1+ serialized cache file
|
||||
.idea/caches/build_file_checksums.ser
|
||||
|
||||
### GoLand+all Patch ###
|
||||
# Ignore everything but code style settings and run configurations
|
||||
# that are supposed to be shared within teams.
|
||||
|
||||
.idea/*
|
||||
|
||||
!.idea/codeStyles
|
||||
!.idea/runConfigurations
|
||||
|
||||
### JetBrains+all ###
|
||||
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider
|
||||
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
|
||||
|
||||
# User-specific stuff
|
||||
|
||||
# AWS User-specific
|
||||
|
||||
# Generated files
|
||||
|
||||
# Sensitive or high-churn files
|
||||
|
||||
# Gradle
|
||||
|
||||
# Gradle and Maven with auto-import
|
||||
# When using Gradle or Maven with auto-import, you should exclude module files,
|
||||
# since they will be recreated, and may cause churn. Uncomment if using
|
||||
# auto-import.
|
||||
# .idea/artifacts
|
||||
# .idea/compiler.xml
|
||||
# .idea/jarRepositories.xml
|
||||
# .idea/modules.xml
|
||||
# .idea/*.iml
|
||||
# .idea/modules
|
||||
# *.iml
|
||||
# *.ipr
|
||||
|
||||
# CMake
|
||||
|
||||
# Mongo Explorer plugin
|
||||
|
||||
# File-based project format
|
||||
|
||||
# IntelliJ
|
||||
|
||||
# mpeltonen/sbt-idea plugin
|
||||
|
||||
# JIRA plugin
|
||||
|
||||
# Cursive Clojure plugin
|
||||
|
||||
# SonarLint plugin
|
||||
|
||||
# Crashlytics plugin (for Android Studio and IntelliJ)
|
||||
|
||||
# Editor-based Rest Client
|
||||
|
||||
# Android studio 3.1+ serialized cache file
|
||||
|
||||
### JetBrains+all Patch ###
|
||||
# Ignore everything but code style settings and run configurations
|
||||
# that are supposed to be shared within teams.
|
||||
|
||||
|
||||
|
||||
### macOS ###
|
||||
# General
|
||||
.DS_Store
|
||||
.AppleDouble
|
||||
.LSOverride
|
||||
|
||||
# Icon must end with two \r
|
||||
Icon
|
||||
|
||||
|
||||
# Thumbnails
|
||||
._*
|
||||
|
||||
# Files that might appear in the root of a volume
|
||||
.DocumentRevisions-V100
|
||||
.fseventsd
|
||||
.Spotlight-V100
|
||||
.TemporaryItems
|
||||
.Trashes
|
||||
.VolumeIcon.icns
|
||||
.com.apple.timemachine.donotpresent
|
||||
|
||||
# Directories potentially created on remote AFP share
|
||||
.AppleDB
|
||||
.AppleDesktop
|
||||
Network Trash Folder
|
||||
Temporary Items
|
||||
.apdisk
|
||||
|
||||
### macOS Patch ###
|
||||
# iCloud generated files
|
||||
*.icloud
|
||||
|
||||
### VisualStudioCode ###
|
||||
.vscode/
|
||||
.vscode/*
|
||||
!.vscode/settings.json
|
||||
!.vscode/tasks.json
|
||||
!.vscode/launch.json
|
||||
!.vscode/extensions.json
|
||||
!.vscode/*.code-snippets
|
||||
|
||||
# Local History for Visual Studio Code
|
||||
.history/
|
||||
|
||||
# Built Visual Studio Code Extensions
|
||||
*.vsix
|
||||
|
||||
### VisualStudioCode Patch ###
|
||||
# Ignore all local history of files
|
||||
.history
|
||||
.ionide
|
||||
|
||||
# End of https://www.toptal.com/developers/gitignore/api/git,visualstudiocode,goland+all,jetbrains+all,macos
|
107
README.md
|
@ -7,212 +7,213 @@
|
|||
[](https://www.youtube.com/channel/UCa57PMqmz_j0wnteRa9nCaw)
|
||||
<br><br>
|
||||
|
||||
This repository hosts the Litmus Chaos Charts. A set of related chaos faults are bundled into a Chaos Chart. Chaos Charts are classified into the following categories.
|
||||
This repository hosts the Litmus Chaos Charts. A set of related chaos experiments are bundled into a Chaos Chart. Chaos Charts are classified into the following categories.
|
||||
|
||||
- [Kubernetes Chaos](#kubernetes-chaos)
|
||||
- [Generic Chaos](#generic-chaos)
|
||||
- [Application Chaos](#application-chaos)
|
||||
- [Platform Chaos](#platform-chaos)
|
||||
|
||||
### Kubernetes Chaos
|
||||
### Generic Chaos
|
||||
|
||||
Chaos faults that apply to Kubernetes resources are classified in this category. Following chaos faults are supported for Kubernetes:
|
||||
Chaos actions that apply to generic Kubernetes resources are classified into this category. Following chaos experiments are supported under Generic Chaos Chart
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th> Fault Name </th>
|
||||
<th> Experiment Name </th>
|
||||
<th> Description </th>
|
||||
<th> Link </th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> Container Kill </td>
|
||||
<td> Kill one container in the application pod </td>
|
||||
<td> <a href="https://github.com/litmuschaos/chaos-charts/tree/master/faults/kubernetes/container-kill"> container-kill </a></td>
|
||||
<td> <a href="https://github.com/litmuschaos/chaos-charts/tree/master/charts/generic/container-kill"> container-kill </a></td>
|
||||
<tr>
|
||||
<tr>
|
||||
<td> Disk Fill </td>
|
||||
<td> Fill the Ephemeral Storage of the Pod </td>
|
||||
<td> <a href="https://github.com/litmuschaos/chaos-charts/tree/master/faults/kubernetes/disk-fill"> disk-fill </a></td>
|
||||
<td> <a href="https://github.com/litmuschaos/chaos-charts/tree/master/charts/generic/disk-fill"> disk-fill </a></td>
|
||||
<tr>
|
||||
<tr>
|
||||
<td> Docker Service Kill </td>
|
||||
<td> Kill docker service of the target node </td>
|
||||
<td> <a href="https://github.com/litmuschaos/chaos-charts/tree/master/faults/kubernetes/docker-service-kill"> docker-service-kill </a></td>
|
||||
<td> <a href="https://github.com/litmuschaos/chaos-charts/tree/master/charts/generic/docker-service-kill"> docker-service-kill </a></td>
|
||||
<tr>
|
||||
<tr>
|
||||
<td> Kubelet Service Kill </td>
|
||||
<td> Kill kubelet service of the target node </td>
|
||||
<td> <a href="https://github.com/litmuschaos/chaos-charts/tree/master/faults/kubernetes/kubelet-service-kill"> kubelet-service-kill </a></td>
|
||||
<td> <a href="https://github.com/litmuschaos/chaos-charts/tree/master/charts/generic/kubelet-service-kill"> kubelet-service-kill </a></td>
|
||||
<tr>
|
||||
<tr>
|
||||
<td> Node CPU Hog </td>
|
||||
<td> Stress the cpu of the target node </td>
|
||||
<td> <a href="https://github.com/litmuschaos/chaos-charts/tree/master/faults/kubernetes/node-cpu-hog"> node-cpu-hog </a></td>
|
||||
<td> <a href="https://github.com/litmuschaos/chaos-charts/tree/master/charts/generic/node-cpu-hog"> node-cpu-hog </a></td>
|
||||
<tr>
|
||||
<tr>
|
||||
<td> Node Drain </td>
|
||||
<td> Drain the target node </td>
|
||||
<td> <a href="https://github.com/litmuschaos/chaos-charts/tree/master/faults/kubernetes/node-drain"> node-drain </a></td>
|
||||
<td> <a href="https://github.com/litmuschaos/chaos-charts/tree/master/charts/generic/node-drain"> node-drain </a></td>
|
||||
<tr>
|
||||
<tr>
|
||||
<td> Node IO Stress </td>
|
||||
<td> Stress the IO of the target node </td>
|
||||
<td> <a href="https://github.com/litmuschaos/chaos-charts/tree/master/faults/kubernetes/node-io-stress"> node-io-stress </a></td>
|
||||
<td> <a href="https://github.com/litmuschaos/chaos-charts/tree/master/charts/generic/node-io-stress"> node-io-stress </a></td>
|
||||
<tr>
|
||||
<tr>
|
||||
<td> Node Memory Hog </td>
|
||||
<td> Stress the memory of the target node </td>
|
||||
<td> <a href="https://github.com/litmuschaos/chaos-charts/tree/master/faults/kubernetes/node-memory-hog"> node-memory-hog </a></td>
|
||||
<td> <a href="https://github.com/litmuschaos/chaos-charts/tree/master/charts/generic/node-memory-hog"> node-memory-hog </a></td>
|
||||
<tr>
|
||||
<tr>
|
||||
<td> Node Restart </td>
|
||||
<td> Restart the target node </td>
|
||||
<td> <a href="https://github.com/litmuschaos/chaos-charts/tree/master/faults/kubernetes/node-restart"> node-restart </a></td>
|
||||
<td> <a href="https://github.com/litmuschaos/chaos-charts/tree/master/charts/generic/node-restart"> node-restart </a></td>
|
||||
<tr>
|
||||
<tr>
|
||||
<td> Node Taint </td>
|
||||
<td> Taint the target node </td>
|
||||
<td> <a href="https://github.com/litmuschaos/chaos-charts/tree/master/faults/kubernetes/node-taint"> node-taint </a></td>
|
||||
<td> <a href="https://github.com/litmuschaos/chaos-charts/tree/master/charts/generic/node-taint"> node-taint </a></td>
|
||||
<tr>
|
||||
<tr>
|
||||
<td> Pod Autoscaler </td>
|
||||
<td> Scale the replicas of the target application </td>
|
||||
<td> <a href="https://github.com/litmuschaos/chaos-charts/tree/master/faults/kubernetes/pod-autoscaler"> pod-autoscaler </a></td>
|
||||
<td> <a href="https://github.com/litmuschaos/chaos-charts/tree/master/charts/generic/pod-autoscaler"> pod-autoscaler </a></td>
|
||||
<tr>
|
||||
<tr>
|
||||
<td> Pod CPU Hog </td>
|
||||
<td> Stress the CPU of the target pod </td>
|
||||
<td> <a href="https://github.com/litmuschaos/chaos-charts/tree/master/faults/kubernetes/pod-cpu-hog"> pod-cpu-hog </a></td>
|
||||
<td> <a href="https://github.com/litmuschaos/chaos-charts/tree/master/charts/generic/pod-cpu-hog"> pod-cpu-hog </a></td>
|
||||
<tr>
|
||||
<tr>
|
||||
<td> Pod Delete </td>
|
||||
<td> Delete the target pods </td>
|
||||
<td> <a href="https://github.com/litmuschaos/chaos-charts/tree/master/faults/kubernetes/pod-delete"> pod-delete </a></td>
|
||||
<td> <a href="https://github.com/litmuschaos/chaos-charts/tree/master/charts/generic/pod-delete"> pod-delete </a></td>
|
||||
<tr>
|
||||
<tr>
|
||||
<td> Pod DNS Spoof </td>
|
||||
<td> Spoof dns requests to desired target hostnames </td>
|
||||
<td> <a href="https://github.com/litmuschaos/chaos-charts/tree/master/faults/kubernetes/pod-dns-spoof"> pod-dns-spoof </a></td>
|
||||
<td> <a href="https://github.com/litmuschaos/chaos-charts/tree/master/charts/generic/pod-dns-spoof"> pod-dns-spoof </a></td>
|
||||
<tr>
|
||||
<tr>
|
||||
<td> Pod DNS Error </td>
|
||||
<td> Error the dns requests of the target pod </td>
|
||||
<td> <a href="https://github.com/litmuschaos/chaos-charts/tree/master/faults/kubernetes/pod-dns-error"> pod-dns-error </a></td>
|
||||
<td> <a href="https://github.com/litmuschaos/chaos-charts/tree/master/charts/generic/pod-dns-error"> pod-dns-error </a></td>
|
||||
<tr>
|
||||
<tr>
|
||||
<td> Pod IO Stress </td>
|
||||
<td> Stress the IO of the target pod </td>
|
||||
<td> <a href="https://github.com/litmuschaos/chaos-charts/tree/master/faults/kubernetes/pod-io-stress"> pod-io-stress </a></td>
|
||||
<td> <a href="https://github.com/litmuschaos/chaos-charts/tree/master/charts/generic/pod-io-stress"> pod-io-stress </a></td>
|
||||
<tr>
|
||||
<tr>
|
||||
<td> Pod Memory Hog </td>
|
||||
<td> Stress the memory of the target pod </td>
|
||||
<td> <a href="https://github.com/litmuschaos/chaos-charts/tree/master/faults/kubernetes/pod-memory-hog"> pod-memory-hog </a></td>
|
||||
<td> <a href="https://github.com/litmuschaos/chaos-charts/tree/master/charts/generic/pod-memory-hog"> pod-memory-hog </a></td>
|
||||
<tr>
|
||||
<tr>
|
||||
<td> Pod Network Latency </td>
|
||||
<td> Induce the network latency in target pod </td>
|
||||
<td> <a href="https://github.com/litmuschaos/chaos-charts/tree/master/faults/kubernetes/pod-network-latency"> pod-network-latency </a></td>
|
||||
<td> <a href="https://github.com/litmuschaos/chaos-charts/tree/master/charts/generic/pod-network-latency"> pod-network-latency </a></td>
|
||||
<tr>
|
||||
<tr>
|
||||
<td> Pod Network Corruption </td>
|
||||
<td> Induce the network packet corruption in target pod </td>
|
||||
<td> <a href="https://github.com/litmuschaos/chaos-charts/tree/master/faults/kubernetes/pod-network-corruption"> pod-network-corruption </a></td>
|
||||
<td> <a href="https://github.com/litmuschaos/chaos-charts/tree/master/charts/generic/pod-network-corruption"> pod-network-corruption </a></td>
|
||||
<tr>
|
||||
<tr>
|
||||
<td> Pod Network Duplication </td>
|
||||
<td> Induce the network packet duplication in target pod </td>
|
||||
<td> <a href="https://github.com/litmuschaos/chaos-charts/tree/master/faults/kubernetes/pod-network-duplication"> pod-network-duplication </a></td>
|
||||
<td> <a href="https://github.com/litmuschaos/chaos-charts/tree/master/charts/generic/pod-network-duplication"> pod-network-duplication </a></td>
|
||||
<tr>
|
||||
<tr>
|
||||
<td> Pod Network Loss </td>
|
||||
<td> Induce the network loss in target pod </td>
|
||||
<td> <a href="https://github.com/litmuschaos/chaos-charts/tree/master/faults/kubernetes/pod-network-loss"> pod-network-loss </a></td>
|
||||
<td> <a href="https://github.com/litmuschaos/chaos-charts/tree/master/charts/generic/pod-network-loss"> pod-network-loss </a></td>
|
||||
<tr>
|
||||
<tr>
|
||||
<td> Pod Network Partition </td>
|
||||
<td> Disrupt network connectivity to kubernetes pods </td>
|
||||
<td> <a href="https://github.com/litmuschaos/chaos-charts/tree/master/faults/kubernetes/pod-network-partition"> pod-network-partition </a></td>
|
||||
<td> <a href="https://github.com/litmuschaos/chaos-charts/tree/master/charts/generic/pod-network-partition"> pod-network-partition </a></td>
|
||||
<tr>
|
||||
</table>
|
||||
|
||||
### Application Chaos
|
||||
|
||||
While chaos faults under the Kubernetes category offer the ability to induce chaos into Kubernetes resources, it is difficult to analyze and conclude if the induced chaos found a weakness in a given application. The application specific chaos faults are built with some checks on *pre-conditions* and some expected outcomes after the chaos injection. The result of the chaos faults is determined by matching the outcome with the expected outcome.
|
||||
While Chaos Experiments under the Generic category offer the ability to induce chaos into Kubernetes resources, it is difficult to analyze and conclude if the chaos induced found a weakness in a given application. The application specific chaos experiments are built with some checks on *pre-conditions* and some expected outcomes after the chaos injection. The result of the chaos experiment is determined by matching the outcome with the expected outcome.
|
||||
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th> Fault Category </th>
|
||||
<th> Experiment Name </th>
|
||||
<th> Description </th>
|
||||
<th> Link </th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> Spring Boot Faults </td>
|
||||
<td> Injects faults in Spring Boot applications </td>
|
||||
<td> <a href="https://github.com/litmuschaos/chaos-charts/tree/master/faults/spring-boot"> Spring Boot Faults</a></td>
|
||||
<td> OpenEBS Experiments </td>
|
||||
<td> Injects faults in OpenEBS tool </td>
|
||||
<td> <a href="https://github.com/litmuschaos/chaos-charts/tree/master/charts/openebs"> OpenEBS experiments</a></td>
|
||||
<tr>
|
||||
</table>
|
||||
|
||||
### Platform Chaos
|
||||
|
||||
Chaos faults that inject chaos into the platform and infrastructure resources are classified into this category. Management of platform resources vary significantly from each other, Chaos Charts may be maintained separately for each platform (For example: AWS, GCP, Azure, VMWare etc.)
|
||||
Chaos experiments that inject chaos into the platform resources of Kubernetes are classified into this category. Management of platform resources vary significantly from each other, Chaos Charts may be maintained separately for each platform (For example, AWS, GCP, Azure, VMWare etc)
|
||||
|
||||
Following chaos faults are classified in this category:
|
||||
Following Platform Chaos experiments are available on ChaosHub
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th> Fault Category </th>
|
||||
<th> Experiment Name </th>
|
||||
<th> Description </th>
|
||||
<th> Link </th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> AWS Faults </td>
|
||||
<td> AWS Experiments </td>
|
||||
<td> AWS Platform specific chaos </td>
|
||||
<td> <a href="https://github.com/litmuschaos/chaos-charts/tree/master/faults/aws"> AWS Faults </a></td>
|
||||
<td> <a href="https://github.com/litmuschaos/chaos-charts/tree/master/charts/kube-aws"> AWS Experiments </a></td>
|
||||
<tr>
|
||||
<tr>
|
||||
<td> Azure Faults </td>
|
||||
<td> Azure Experiments </td>
|
||||
<td> Azure Platform specific chaos </td>
|
||||
<td> <a href="https://github.com/litmuschaos/chaos-charts/tree/master/faults/azure"> Azure Faults </a></td>
|
||||
<td> <a href="https://github.com/litmuschaos/chaos-charts/tree/master/charts/azure"> Azure Experiments </a></td>
|
||||
<tr>
|
||||
<tr>
|
||||
<td> GCP Faults </td>
|
||||
<td> GCP Experiments </td>
|
||||
<td> GCP Platform specific chaos </td>
|
||||
<td> <a href="https://github.com/litmuschaos/chaos-charts/tree/master/faults/gcp"> GCP Faults </a></td>
|
||||
<td> <a href="https://github.com/litmuschaos/chaos-charts/tree/master/charts/generic/gcp"> GCP Experiments </a></td>
|
||||
<tr>
|
||||
<tr>
|
||||
<td> VMWare Faults </td>
|
||||
<td> VMWare Experiments </td>
|
||||
<td> VMWare Platform specific chaos </td>
|
||||
<td> <a href="https://github.com/litmuschaos/chaos-charts/tree/master/faults/vmware"> VMWare Faults </a></td>
|
||||
<td> <a href="https://github.com/litmuschaos/chaos-charts/tree/master/charts/generic/vmware"> VMWare Experiments </a></td>
|
||||
<tr>
|
||||
</table>
|
||||
|
||||
|
||||
## Installation Steps for Chart Releases
|
||||
## Installation Steps for Chart Releases
|
||||
|
||||
*Note: Supported from release 3.0.0*
|
||||
*Note: Supported from release 1.1.0*
|
||||
|
||||
- To install the chaos faults from a specific chart for a given release, execute the following commands
|
||||
- To install the chaos experiments from a specific chart for a given release, execute the following commands
|
||||
with the desired `<release_version>`, `<chart_name>` & `<namespace>`
|
||||
|
||||
```bash
|
||||
## downloads and unzips the released source
|
||||
tar -zxvf <(curl -sL https://github.com/litmuschaos/chaos-charts/archive/<release_version>.tar.gz)
|
||||
|
||||
## installs the chaosexperiment resources
|
||||
## installs the chaosexperiment resources
|
||||
find chaos-charts-<release_version> -name experiments.yaml | grep <chart-name> | xargs kubectl apply -n <namespace> -f
|
||||
```
|
||||
- For example, to install the *Kubernetes* fault chart bundle for release *3.0.0*, in the *sock-shop* namespace, run:
|
||||
```
|
||||
- For example, to install the *generic* experiment chart bundle for release *1.1.0*, in the *sock-shop* namespace, run:
|
||||
|
||||
```bash
|
||||
tar -zxvf <(curl -sL https://github.com/litmuschaos/chaos-charts/archive/3.0.0.tar.gz)
|
||||
find chaos-charts-3.0.0 -name experiments.yaml | grep kubernetes | xargs kubectl apply -n sock-shop -f
|
||||
tar -zxvf <(curl -sL https://github.com/litmuschaos/chaos-charts/archive/1.1.0.tar.gz)
|
||||
find chaos-charts-1.1.0 -name experiments.yaml | grep generic | xargs kubectl apply -n sock-shop -f
|
||||
```
|
||||
|
||||
- If you would like to install a specific fault, replace the `experiments.yaml` in the above command with the relative path of the fault manifest within the parent chart. For example, to install only the *pod-delete* fault, run:
|
||||
- If you would like to install a specific experiment, replace the `experiments.yaml` in the above command with the relative
|
||||
path of the experiment manifest within the parent chart. For example, to install only the *pod-delete* experiment, run:
|
||||
|
||||
```bash
|
||||
find chaos-charts-3.0.0 -name fault.yaml | grep 'kubernetes/pod-delete' | xargs kubectl apply -n sock-shop -f
|
||||
find chaos-charts-1.1.0 -name experiment.yaml | grep 'generic/pod-delete' | xargs kubectl apply -n sock-shop -f
|
||||
```
|
||||
|
||||
|
||||
|
|
|
@ -0,0 +1,43 @@
|
|||
apiVersion: litmuchaos.io/v1alpha1
|
||||
kind: ChartServiceVersion
|
||||
metadata:
|
||||
createdAt: 2021-06-10T10:28:08Z
|
||||
name: aws-ssm-chaos-by-id
|
||||
version: 0.1.0
|
||||
annotations:
|
||||
categories: Kubernetes
|
||||
vendor: CNCF
|
||||
support: https://slack.kubernetes.io/
|
||||
spec:
|
||||
displayName: aws-ssm-chaos-by-id
|
||||
categoryDescription: |
|
||||
AWS SSM Chaos By ID contains chaos to disrupt the state of infra resources. The experiment can induce chaos on AWS resources using Amazon SSM Run Command This is carried out by using SSM Docs that defines the actions performed by Systems Manager on your managed instances (having SSM agent installed) which let us perform chaos experiments on resources.
|
||||
- Causes chaos on AWS ec2 instances with given instance ID(s) using SSM docs for total chaos duration with the specified chaos interval.
|
||||
- Tests deployment sanity (replica availability & uninterrupted service) and recovery workflows of the target application pod(if provided).
|
||||
keywords:
|
||||
- SSM
|
||||
- AWS
|
||||
- EC2
|
||||
platforms:
|
||||
- AWS
|
||||
maturity: alpha
|
||||
chaosType: infra
|
||||
maintainers:
|
||||
- name: Udit Gaurav
|
||||
email: udit@chaosnative.com
|
||||
provider:
|
||||
name: ChaosNative
|
||||
labels:
|
||||
app.kubernetes.io/component: chartserviceversion
|
||||
app.kubernetes.io/version: 3.0.0-beta7
|
||||
links:
|
||||
- name: Source Code
|
||||
url: https://github.com/litmuschaos/litmus-go/tree/master/experiments/aws-ssm/aws-ssm-chaos-by-id
|
||||
- name: Documentation
|
||||
url: https://litmuschaos.github.io/litmus/experiments/categories/aws-ssm/aws-ssm-chaos-by-id/
|
||||
- name: Video
|
||||
url:
|
||||
icon:
|
||||
- url:
|
||||
mediatype: ""
|
||||
chaosexpcrdlink: https://raw.githubusercontent.com/litmuschaos/chaos-charts/master/charts/aws-ssm/aws-ssm-chaos-by-id/experiment.yaml
|
|
@ -0,0 +1,62 @@
|
|||
apiVersion: litmuschaos.io/v1alpha1
|
||||
kind: ChaosEngine
|
||||
metadata:
|
||||
name: nginx-chaos
|
||||
namespace: default
|
||||
spec:
|
||||
engineState: 'active'
|
||||
chaosServiceAccount: aws-ssm-chaos-by-id-sa
|
||||
experiments:
|
||||
- name: aws-ssm-chaos-by-id
|
||||
spec:
|
||||
components:
|
||||
env:
|
||||
# set chaos duration (in sec) as desired
|
||||
- name: TOTAL_CHAOS_DURATION
|
||||
value: '60'
|
||||
|
||||
# set chaos duration (in sec) as desired
|
||||
- name: CHAOS_INTERVAL
|
||||
value: '60'
|
||||
|
||||
# Instance ID of the target ec2 instance
|
||||
# Multiple IDs can also be provided as comma separated values ex: id1,id2
|
||||
- name: EC2_INSTANCE_ID
|
||||
value: ''
|
||||
|
||||
# provide the region name of the target instances
|
||||
- name: REGION
|
||||
value: ''
|
||||
|
||||
# provide the percentage of available memory to stress
|
||||
- name: MEMORY_PERCENTAGE
|
||||
value: '80'
|
||||
|
||||
# provide the CPU chores to be comsumed
|
||||
# 0 will consume all the available cpu cores
|
||||
- name: CPU_CORE
|
||||
value: '0'
|
||||
|
||||
# Provide the name of ssm doc
|
||||
# if not using the default stress docs
|
||||
- name: DOCUMENT_NAME
|
||||
value: ''
|
||||
|
||||
# Provide the type of ssm doc
|
||||
# if not using the default stress docs
|
||||
- name: DOCUMENT_TYPE
|
||||
value: ''
|
||||
|
||||
# Provide the format of ssm doc
|
||||
# if not using the default stress docs
|
||||
- name: DOCUMENT_FORMAT
|
||||
value: ''
|
||||
|
||||
# Provide the path of ssm doc
|
||||
# if not using the default stress docs
|
||||
- name: DOCUMENT_PATH
|
||||
value: ''
|
||||
|
||||
# if you want to install dependencies to run default ssm docs
|
||||
- name: INSTALL_DEPENDENCIES
|
||||
value: 'True'
|
|
@ -0,0 +1,124 @@
|
|||
apiVersion: litmuschaos.io/v1alpha1
|
||||
description:
|
||||
message: |
|
||||
Execute AWS SSM Chaos on given ec2 instance IDs
|
||||
kind: ChaosExperiment
|
||||
metadata:
|
||||
name: aws-ssm-chaos-by-id
|
||||
labels:
|
||||
name: aws-ssm-chaos-by-id
|
||||
app.kubernetes.io/part-of: litmus
|
||||
app.kubernetes.io/component: chaosexperiment
|
||||
app.kubernetes.io/version: 3.0.0-beta7
|
||||
spec:
|
||||
definition:
|
||||
scope: Cluster
|
||||
permissions:
|
||||
# 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 & secrets details and mount it to the experiment pod (if specified)
|
||||
- apiGroups: [""]
|
||||
resources: ["secrets","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"]
|
||||
# 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"]
|
||||
image: "litmuschaos/go-runner:3.0.0-beta7"
|
||||
imagePullPolicy: Always
|
||||
args:
|
||||
- -c
|
||||
- ./experiments -name aws-ssm-chaos-by-id
|
||||
command:
|
||||
- /bin/bash
|
||||
env:
|
||||
- name: TOTAL_CHAOS_DURATION
|
||||
value: '60'
|
||||
|
||||
- name: CHAOS_INTERVAL
|
||||
value: '60'
|
||||
|
||||
# Period to wait before and after injection of chaos in sec
|
||||
- name: RAMP_TIME
|
||||
value: ''
|
||||
|
||||
# Instance ID of the target ec2 instance
|
||||
# Multiple IDs can also be provided as comma separated values ex: id1,id2
|
||||
- name: EC2_INSTANCE_ID
|
||||
value: ''
|
||||
|
||||
- name: REGION
|
||||
value: ''
|
||||
|
||||
# it defines the sequence of chaos execution for multiple target instances
|
||||
# supported values: serial, parallel
|
||||
- name: SEQUENCE
|
||||
value: 'parallel'
|
||||
|
||||
# Provide the path of aws credentials mounted from secret
|
||||
- name: AWS_SHARED_CREDENTIALS_FILE
|
||||
value: '/tmp/cloud_config.yml'
|
||||
|
||||
# Provide the name of ssm doc
|
||||
# if not using the default stress docs
|
||||
- name: DOCUMENT_NAME
|
||||
value: ''
|
||||
|
||||
# Provide the type of ssm doc
|
||||
# if not using the default stress docs
|
||||
- name: DOCUMENT_TYPE
|
||||
value: ''
|
||||
|
||||
# Provide the format of ssm doc
|
||||
# if not using the default stress docs
|
||||
- name: DOCUMENT_FORMAT
|
||||
value: ''
|
||||
|
||||
# Provide the path of ssm doc
|
||||
# if not using the default stress docs
|
||||
- name: DOCUMENT_PATH
|
||||
value: ''
|
||||
|
||||
# if you want to install dependencies to run default ssm docs
|
||||
- name: INSTALL_DEPENDENCIES
|
||||
value: 'True'
|
||||
|
||||
# provide the number of workers for memory stress
|
||||
- name: NUMBER_OF_WORKERS
|
||||
value: '1'
|
||||
|
||||
# provide the percentage of available memory to stress
|
||||
- name: MEMORY_PERCENTAGE
|
||||
value: '80'
|
||||
|
||||
# provide the CPU chores to be comsumed
|
||||
# 0 will consume all the available cpu cores
|
||||
- name: CPU_CORE
|
||||
value: '0'
|
||||
|
||||
labels:
|
||||
name: aws-ssm-chaos-by-id
|
||||
app.kubernetes.io/part-of: litmus
|
||||
app.kubernetes.io/component: experiment-job
|
||||
app.kubernetes.io/version: 3.0.0-beta7
|
||||
secrets:
|
||||
- name: cloud-secret
|
||||
mountPath: /tmp/
|
|
@ -0,0 +1,62 @@
|
|||
---
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
name: aws-ssm-chaos-by-id-sa
|
||||
namespace: default
|
||||
labels:
|
||||
name: aws-ssm-chaos-by-id-sa
|
||||
app.kubernetes.io/part-of: litmus
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
name: aws-ssm-chaos-by-id-sa
|
||||
labels:
|
||||
name: aws-ssm-chaos-by-id-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 & secrets details and mount it to the experiment pod (if specified)
|
||||
- apiGroups: [""]
|
||||
resources: ["secrets","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"]
|
||||
# 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: ClusterRoleBinding
|
||||
metadata:
|
||||
name: aws-ssm-chaos-by-id-sa
|
||||
labels:
|
||||
name: aws-ssm-chaos-by-id-sa
|
||||
app.kubernetes.io/part-of: litmus
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: ClusterRole
|
||||
name: aws-ssm-chaos-by-id-sa
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: aws-ssm-chaos-by-id-sa
|
||||
namespace: default
|
|
@ -0,0 +1,43 @@
|
|||
apiVersion: litmuchaos.io/v1alpha1
|
||||
kind: ChartServiceVersion
|
||||
metadata:
|
||||
createdAt: 2021-06-10T10:28:08Z
|
||||
name: aws-ssm-chaos-by-tag
|
||||
version: 0.1.0
|
||||
annotations:
|
||||
categories: Kubernetes
|
||||
vendor: CNCF
|
||||
support: https://slack.kubernetes.io/
|
||||
spec:
|
||||
displayName: aws-ssm-chaos-by-tag
|
||||
categoryDescription: |
|
||||
AWS SSM Chaos By ID contains chaos to disrupt the state of infra resources. The experiment can induce chaos on AWS resources using Amazon SSM Run Command This is carried out by using SSM Docs that defines the actions performed by Systems Manager on your managed instances (having SSM agent installed) which let us perform chaos experiments on resources.
|
||||
- Causes chaos on AWS ec2 instances with given instance tag using SSM docs for total chaos duration with the specified chaos interval.
|
||||
- Tests deployment sanity (replica availability & uninterrupted service) and recovery workflows of the target application pod(if provided).
|
||||
keywords:
|
||||
- SSM
|
||||
- AWS
|
||||
- EC2
|
||||
platforms:
|
||||
- AWS
|
||||
maturity: alpha
|
||||
chaosType: infra
|
||||
maintainers:
|
||||
- name: Udit Gaurav
|
||||
email: udit@chaosnative.com
|
||||
provider:
|
||||
name: ChaosNative
|
||||
labels:
|
||||
app.kubernetes.io/component: chartserviceversion
|
||||
app.kubernetes.io/version: 3.0.0-beta7
|
||||
links:
|
||||
- name: Source Code
|
||||
url: https://github.com/litmuschaos/litmus-go/tree/master/experiments/aws-ssm/aws-ssm-chaos-by-tag
|
||||
- name: Documentation
|
||||
url: https://litmuschaos.github.io/litmus/experiments/categories/aws-ssm/aws-ssm-chaos-by-tag/
|
||||
- name: Video
|
||||
url:
|
||||
icon:
|
||||
- url:
|
||||
mediatype: ""
|
||||
chaosexpcrdlink: https://raw.githubusercontent.com/litmuschaos/chaos-charts/master/charts/aws-ssm/aws-ssm-chaos-by-tag/experiment.yaml
|
|
@ -0,0 +1,62 @@
|
|||
apiVersion: litmuschaos.io/v1alpha1
|
||||
kind: ChaosEngine
|
||||
metadata:
|
||||
name: nginx-chaos
|
||||
namespace: default
|
||||
spec:
|
||||
engineState: 'active'
|
||||
chaosServiceAccount: aws-ssm-chaos-by-tag-sa
|
||||
experiments:
|
||||
- name: aws-ssm-chaos-by-tag
|
||||
spec:
|
||||
components:
|
||||
env:
|
||||
# set chaos duration (in sec) as desired
|
||||
- name: TOTAL_CHAOS_DURATION
|
||||
value: '60'
|
||||
|
||||
# set chaos duration (in sec) as desired
|
||||
- name: CHAOS_INTERVAL
|
||||
value: '60'
|
||||
|
||||
# provide tag of the target ec2 instances
|
||||
# ex: team:devops (key:value)
|
||||
- name: EC2_INSTANCE_TAG
|
||||
value: ''
|
||||
|
||||
# provide the region name of the target instances
|
||||
- name: REGION
|
||||
value: ''
|
||||
|
||||
# provide the percentage of available memory to stress
|
||||
- name: MEMORY_PERCENTAGE
|
||||
value: '80'
|
||||
|
||||
# provide the CPU chores to comsumed
|
||||
# 0 will consume all the available cpu cores
|
||||
- name: CPU_CORE
|
||||
value: '0'
|
||||
|
||||
# Provide the name of ssm doc
|
||||
# if not using the default stress docs
|
||||
- name: DOCUMENT_NAME
|
||||
value: ''
|
||||
|
||||
# Provide the type of ssm doc
|
||||
# if not using the default stress docs
|
||||
- name: DOCUMENT_TYPE
|
||||
value: ''
|
||||
|
||||
# Provide the format of ssm doc
|
||||
# if not using the default stress docs
|
||||
- name: DOCUMENT_FORMAT
|
||||
value: ''
|
||||
|
||||
# Provide the path of ssm doc
|
||||
# if not using the default stress docs
|
||||
- name: DOCUMENT_PATH
|
||||
value: ''
|
||||
|
||||
# if you want to install dependencies to run default ssm docs
|
||||
- name: INSTALL_DEPENDENCIES
|
||||
value: 'True'
|
|
@ -0,0 +1,128 @@
|
|||
apiVersion: litmuschaos.io/v1alpha1
|
||||
description:
|
||||
message: |
|
||||
Execute AWS SSM Chaos on given ec2 instance Tag
|
||||
kind: ChaosExperiment
|
||||
metadata:
|
||||
name: aws-ssm-chaos-by-tag
|
||||
labels:
|
||||
name: aws-ssm-chaos-by-tag
|
||||
app.kubernetes.io/part-of: litmus
|
||||
app.kubernetes.io/component: chaosexperiment
|
||||
app.kubernetes.io/version: 3.0.0-beta7
|
||||
spec:
|
||||
definition:
|
||||
scope: Cluster
|
||||
permissions:
|
||||
# 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 & secrets details and mount it to the experiment pod (if specified)
|
||||
- apiGroups: [""]
|
||||
resources: ["secrets","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"]
|
||||
# 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"]
|
||||
image: "litmuschaos/go-runner:3.0.0-beta7"
|
||||
imagePullPolicy: Always
|
||||
args:
|
||||
- -c
|
||||
- ./experiments -name aws-ssm-chaos-by-tag
|
||||
command:
|
||||
- /bin/bash
|
||||
env:
|
||||
- name: TOTAL_CHAOS_DURATION
|
||||
value: '60'
|
||||
|
||||
- name: CHAOS_INTERVAL
|
||||
value: '60'
|
||||
|
||||
# Period to wait before and after injection of chaos in sec
|
||||
- name: RAMP_TIME
|
||||
value: ''
|
||||
|
||||
# provide tag of the target ec2 instances
|
||||
# ex: team:devops (key:value)
|
||||
- name: EC2_INSTANCE_TAG
|
||||
value: ''
|
||||
|
||||
- name: REGION
|
||||
value: ''
|
||||
|
||||
# it defines the sequence of chaos execution for multiple target instances
|
||||
# supported values: serial, parallel
|
||||
- name: SEQUENCE
|
||||
value: 'parallel'
|
||||
|
||||
# Provide the path of aws credentials mounted from secret
|
||||
- name: AWS_SHARED_CREDENTIALS_FILE
|
||||
value: '/tmp/cloud_config.yml'
|
||||
|
||||
# percentage of total instance to target
|
||||
- name: INSTANCE_AFFECTED_PERC
|
||||
value: ''
|
||||
|
||||
# Provide the name of ssm doc
|
||||
# if not using the default stress docs
|
||||
- name: DOCUMENT_NAME
|
||||
value: ''
|
||||
|
||||
# Provide the type of ssm doc
|
||||
# if not using the default stress docs
|
||||
- name: DOCUMENT_TYPE
|
||||
value: ''
|
||||
|
||||
# Provide the format of ssm doc
|
||||
# if not using the default stress docs
|
||||
- name: DOCUMENT_FORMAT
|
||||
value: ''
|
||||
|
||||
# Provide the path of ssm doc
|
||||
# if not using the default stress docs
|
||||
- name: DOCUMENT_PATH
|
||||
value: ''
|
||||
|
||||
# if you want to install dependencies to run default ssm docs
|
||||
- name: INSTALL_DEPENDENCIES
|
||||
value: 'True'
|
||||
|
||||
# provide the number of workers for memory stress
|
||||
- name: NUMBER_OF_WORKERS
|
||||
value: '1'
|
||||
|
||||
# provide the percentage of available memory to stress
|
||||
- name: MEMORY_PERCENTAGE
|
||||
value: '80'
|
||||
|
||||
# provide the CPU chores to comsumed
|
||||
# 0 will consume all the available cpu cores
|
||||
- name: CPU_CORE
|
||||
value: '0'
|
||||
|
||||
labels:
|
||||
name: aws-ssm-chaos-by-tag
|
||||
app.kubernetes.io/part-of: litmus
|
||||
app.kubernetes.io/component: experiment-job
|
||||
app.kubernetes.io/version: 3.0.0-beta7
|
||||
secrets:
|
||||
- name: cloud-secret
|
||||
mountPath: /tmp/
|
|
@ -0,0 +1,62 @@
|
|||
---
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
name: aws-ssm-chaos-by-tag-sa
|
||||
namespace: default
|
||||
labels:
|
||||
name: aws-ssm-chaos-by-tag-sa
|
||||
app.kubernetes.io/part-of: litmus
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
name: aws-ssm-chaos-by-tag-sa
|
||||
labels:
|
||||
name: aws-ssm-chaos-by-tag-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 & secrets details and mount it to the experiment pod (if specified)
|
||||
- apiGroups: [""]
|
||||
resources: ["secrets","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"]
|
||||
# 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: ClusterRoleBinding
|
||||
metadata:
|
||||
name: aws-ssm-chaos-by-tag-sa
|
||||
labels:
|
||||
name: aws-ssm-chaos-by-tag-sa
|
||||
app.kubernetes.io/part-of: litmus
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: ClusterRole
|
||||
name: aws-ssm-chaos-by-tag-sa
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: aws-ssm-chaos-by-tag-sa
|
||||
namespace: default
|
|
@ -0,0 +1,36 @@
|
|||
apiVersion: litmuchaos.io/v1alpha1
|
||||
kind: ChartServiceVersion
|
||||
metadata:
|
||||
createdAt: 2021-06-11T10:28:08Z
|
||||
name: aws-ssm
|
||||
version: 0.1.0
|
||||
annotations:
|
||||
categories: Kubernetes
|
||||
chartDescription: Injects aws ssm chaos
|
||||
spec:
|
||||
displayName: AWS SSM
|
||||
categoryDescription: >
|
||||
aws ssm contains chaos to disrupt state of aws resources by litmus aws ssm docs
|
||||
experiments:
|
||||
- aws-ssm-chaos-by-id
|
||||
- aws-ssm-chaos-by-tag
|
||||
keywords:
|
||||
- AWS
|
||||
- SSM
|
||||
- EC2
|
||||
maintainers:
|
||||
- name: ksatchit
|
||||
email: karthik@chaosnative.com
|
||||
provider:
|
||||
name: ChaosNative
|
||||
links:
|
||||
- name: Kubernetes Website
|
||||
url: https://kubernetes.io
|
||||
- name: Source Code
|
||||
url: https://github.com/litmuschaos/litmus-go/tree/master/experiments/aws-ssm
|
||||
- name: Kubernetes Slack
|
||||
url: https://slack.kubernetes.io/
|
||||
icon:
|
||||
- url: https://raw.githubusercontent.com/litmuschaos/chaos-charts/master/charts/aws-ssm/icons/aws-ssm.png
|
||||
mediatype: image/png
|
||||
chaosexpcrdlink: https://raw.githubusercontent.com/litmuschaos/chaos-charts/master/charts/aws-ssm/experiments.yaml
|
|
@ -0,0 +1,8 @@
|
|||
packageName: aws-ssm
|
||||
experiments:
|
||||
- name: aws-ssm-chaos-by-id
|
||||
CSV: aws-ssm-chaos-by-id.chartserviceversion.yaml
|
||||
desc: "aws-ssm-chaos-by-id"
|
||||
- name: aws-ssm-chaos-by-tag
|
||||
CSV: aws-ssm-chaos-by-tag.chartserviceversion.yaml
|
||||
desc: "aws-ssm-chaos-by-tag"
|
|
@ -0,0 +1,256 @@
|
|||
apiVersion: litmuschaos.io/v1alpha1
|
||||
description:
|
||||
message: |
|
||||
Execute AWS SSM Chaos on given ec2 instance IDs
|
||||
kind: ChaosExperiment
|
||||
metadata:
|
||||
name: aws-ssm-chaos-by-id
|
||||
labels:
|
||||
name: aws-ssm-chaos-by-id
|
||||
app.kubernetes.io/part-of: litmus
|
||||
app.kubernetes.io/component: chaosexperiment
|
||||
app.kubernetes.io/version: 3.0.0-beta7
|
||||
spec:
|
||||
definition:
|
||||
scope: Cluster
|
||||
permissions:
|
||||
# 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 & secrets details and mount it to the experiment pod (if specified)
|
||||
- apiGroups: [""]
|
||||
resources: ["secrets","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"]
|
||||
# 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"]
|
||||
image: "litmuschaos/go-runner:3.0.0-beta7"
|
||||
imagePullPolicy: Always
|
||||
args:
|
||||
- -c
|
||||
- ./experiments -name aws-ssm-chaos-by-id
|
||||
command:
|
||||
- /bin/bash
|
||||
env:
|
||||
- name: TOTAL_CHAOS_DURATION
|
||||
value: '60'
|
||||
|
||||
- name: CHAOS_INTERVAL
|
||||
value: '60'
|
||||
|
||||
# Period to wait before and after injection of chaos in sec
|
||||
- name: RAMP_TIME
|
||||
value: ''
|
||||
|
||||
# Instance ID of the target ec2 instance
|
||||
# Multiple IDs can also be provided as comma separated values ex: id1,id2
|
||||
- name: EC2_INSTANCE_ID
|
||||
value: ''
|
||||
|
||||
- name: REGION
|
||||
value: ''
|
||||
|
||||
# it defines the sequence of chaos execution for multiple target instances
|
||||
# supported values: serial, parallel
|
||||
- name: SEQUENCE
|
||||
value: 'parallel'
|
||||
|
||||
# Provide the path of aws credentials mounted from secret
|
||||
- name: AWS_SHARED_CREDENTIALS_FILE
|
||||
value: '/tmp/cloud_config.yml'
|
||||
|
||||
# Provide the name of ssm doc
|
||||
# if not using the default stress docs
|
||||
- name: DOCUMENT_NAME
|
||||
value: ''
|
||||
|
||||
# Provide the type of ssm doc
|
||||
# if not using the default stress docs
|
||||
- name: DOCUMENT_TYPE
|
||||
value: ''
|
||||
|
||||
# Provide the format of ssm doc
|
||||
# if not using the default stress docs
|
||||
- name: DOCUMENT_FORMAT
|
||||
value: ''
|
||||
|
||||
# Provide the path of ssm doc
|
||||
# if not using the default stress docs
|
||||
- name: DOCUMENT_PATH
|
||||
value: ''
|
||||
|
||||
# if you want to install dependencies to run default ssm docs
|
||||
- name: INSTALL_DEPENDENCIES
|
||||
value: 'True'
|
||||
|
||||
# provide the number of workers for memory stress
|
||||
- name: NUMBER_OF_WORKERS
|
||||
value: '1'
|
||||
|
||||
# provide the percentage of available memory to stress
|
||||
- name: MEMORY_PERCENTAGE
|
||||
value: '80'
|
||||
|
||||
# provide the CPU chores to be comsumed
|
||||
# 0 will consume all the available cpu cores
|
||||
- name: CPU_CORE
|
||||
value: '0'
|
||||
|
||||
labels:
|
||||
name: aws-ssm-chaos-by-id
|
||||
app.kubernetes.io/part-of: litmus
|
||||
app.kubernetes.io/component: experiment-job
|
||||
app.kubernetes.io/version: 3.0.0-beta7
|
||||
secrets:
|
||||
- name: cloud-secret
|
||||
mountPath: /tmp/
|
||||
|
||||
---
|
||||
apiVersion: litmuschaos.io/v1alpha1
|
||||
description:
|
||||
message: |
|
||||
Execute AWS SSM Chaos on given ec2 instance Tag
|
||||
kind: ChaosExperiment
|
||||
metadata:
|
||||
name: aws-ssm-chaos-by-tag
|
||||
labels:
|
||||
name: aws-ssm-chaos-by-tag
|
||||
app.kubernetes.io/part-of: litmus
|
||||
app.kubernetes.io/component: chaosexperiment
|
||||
app.kubernetes.io/version: 3.0.0-beta7
|
||||
spec:
|
||||
definition:
|
||||
scope: Cluster
|
||||
permissions:
|
||||
# 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 & secrets details and mount it to the experiment pod (if specified)
|
||||
- apiGroups: [""]
|
||||
resources: ["secrets","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"]
|
||||
# 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"]
|
||||
image: "litmuschaos/go-runner:3.0.0-beta7"
|
||||
imagePullPolicy: Always
|
||||
args:
|
||||
- -c
|
||||
- ./experiments -name aws-ssm-chaos-by-tag
|
||||
command:
|
||||
- /bin/bash
|
||||
env:
|
||||
- name: TOTAL_CHAOS_DURATION
|
||||
value: '60'
|
||||
|
||||
- name: CHAOS_INTERVAL
|
||||
value: '60'
|
||||
|
||||
# Period to wait before and after injection of chaos in sec
|
||||
- name: RAMP_TIME
|
||||
value: ''
|
||||
|
||||
# provide tag of the target ec2 instances
|
||||
# ex: team:devops (key:value)
|
||||
- name: EC2_INSTANCE_TAG
|
||||
value: ''
|
||||
|
||||
- name: REGION
|
||||
value: ''
|
||||
|
||||
# it defines the sequence of chaos execution for multiple target instances
|
||||
# supported values: serial, parallel
|
||||
- name: SEQUENCE
|
||||
value: 'parallel'
|
||||
|
||||
# Provide the path of aws credentials mounted from secret
|
||||
- name: AWS_SHARED_CREDENTIALS_FILE
|
||||
value: '/tmp/cloud_config.yml'
|
||||
|
||||
# percentage of total instance to target
|
||||
- name: INSTANCE_AFFECTED_PERC
|
||||
value: ''
|
||||
|
||||
# Provide the name of ssm doc
|
||||
# if not using the default stress docs
|
||||
- name: DOCUMENT_NAME
|
||||
value: ''
|
||||
|
||||
# Provide the type of ssm doc
|
||||
# if not using the default stress docs
|
||||
- name: DOCUMENT_TYPE
|
||||
value: ''
|
||||
|
||||
# Provide the format of ssm doc
|
||||
# if not using the default stress docs
|
||||
- name: DOCUMENT_FORMAT
|
||||
value: ''
|
||||
|
||||
# Provide the path of ssm doc
|
||||
# if not using the default stress docs
|
||||
- name: DOCUMENT_PATH
|
||||
value: ''
|
||||
|
||||
# if you want to install dependencies to run default ssm docs
|
||||
- name: INSTALL_DEPENDENCIES
|
||||
value: 'True'
|
||||
|
||||
# provide the number of workers for memory stress
|
||||
- name: NUMBER_OF_WORKERS
|
||||
value: '1'
|
||||
|
||||
# provide the percentage of available memory to stress
|
||||
- name: MEMORY_PERCENTAGE
|
||||
value: '80'
|
||||
|
||||
# provide the CPU chores to comsumed
|
||||
# 0 will consume all the available cpu cores
|
||||
- name: CPU_CORE
|
||||
value: '0'
|
||||
|
||||
labels:
|
||||
name: aws-ssm-chaos-by-tag
|
||||
app.kubernetes.io/part-of: litmus
|
||||
app.kubernetes.io/component: experiment-job
|
||||
app.kubernetes.io/version: 3.0.0-beta7
|
||||
secrets:
|
||||
- name: cloud-secret
|
||||
mountPath: /tmp/
|
||||
|
||||
---
|
Before Width: | Height: | Size: 3.1 KiB After Width: | Height: | Size: 3.1 KiB |
After Width: | Height: | Size: 3.1 KiB |
After Width: | Height: | Size: 3.1 KiB |
|
@ -0,0 +1,42 @@
|
|||
apiVersion: litmuchaos.io/v1alpha1
|
||||
kind: ChartServiceVersion
|
||||
metadata:
|
||||
name: azure-disk-loss
|
||||
version: 0.1.0
|
||||
annotations:
|
||||
categories: Azure
|
||||
vendor: ChaosNative
|
||||
support: https://app.slack.com/client/T09NY5SBT/CNXNB0ZTN
|
||||
spec:
|
||||
displayName: azure-disk-loss
|
||||
categoryDescription: |
|
||||
This experiment causes the detachment of the disk from the VM for a certain chaos duration
|
||||
- Causes detachment of the disk from the VM and then reattachment of the disk to the VM
|
||||
- It helps to check the performance of the application on the instance.
|
||||
keywords:
|
||||
- Azure
|
||||
- Disk
|
||||
- AKS
|
||||
platforms:
|
||||
- Azure
|
||||
maturity: alpha
|
||||
maintainers:
|
||||
- name: avaakash
|
||||
email: akash@chaosnative.com
|
||||
minKubeVersion: 1.12.0
|
||||
provider:
|
||||
name: ChaosNative
|
||||
labels:
|
||||
app.kubernetes.io/component: chartserviceversion
|
||||
app.kubernetes.io/version: 3.0.0-beta7
|
||||
links:
|
||||
- name: Source Code
|
||||
url: https://github.com/litmuschaos/litmus-go/tree/master/experiments/azure/disk-loss/experiment
|
||||
- name: Documentation
|
||||
url: https://litmuschaos.github.io/litmus/experiments/categories/azure/azure-disk-loss/
|
||||
# - name: Video
|
||||
# url:
|
||||
icon:
|
||||
- url:
|
||||
mediatype: ""
|
||||
chaosexpcrdlink: https://raw.githubusercontent.com/litmuschaos/chaos-charts/master/charts/azure/azure-disk-loss/experiment.yaml
|
|
@ -1,12 +1,11 @@
|
|||
---
|
||||
apiVersion: litmuschaos.io/v1alpha1
|
||||
kind: ChaosEngine
|
||||
metadata:
|
||||
name: azure-chaos
|
||||
name: nginx-chaos
|
||||
spec:
|
||||
# It can be active/stop
|
||||
engineState: 'active'
|
||||
chaosServiceAccount: litmus-admin
|
||||
chaosServiceAccount: azure-disk-loss-sa
|
||||
experiments:
|
||||
- name: azure-disk-loss
|
||||
spec:
|
||||
|
@ -19,15 +18,15 @@ spec:
|
|||
# set chaos interval (in sec) as desired
|
||||
- name: CHAOS_INTERVAL
|
||||
value: '30'
|
||||
|
||||
|
||||
# provide the resource group of the instance
|
||||
- name: RESOURCE_GROUP
|
||||
value: ''
|
||||
|
||||
|
||||
# accepts enable/disable, default is disable
|
||||
- name: SCALE_SET
|
||||
value: ''
|
||||
|
||||
|
||||
# provide the virtual disk names (comma separated if multiple)
|
||||
- name: VIRTUAL_DISK_NAMES
|
||||
value: ''
|
||||
value: ''
|
|
@ -0,0 +1,92 @@
|
|||
apiVersion: litmuschaos.io/v1alpha1
|
||||
description:
|
||||
message: |
|
||||
Detaches disk from the VM and then re-attaches disk to the VM
|
||||
kind: ChaosExperiment
|
||||
metadata:
|
||||
name: azure-disk-loss
|
||||
labels:
|
||||
name: azure-disk-loss
|
||||
app.kubernetes.io/part-of: litmus
|
||||
app.kubernetes.io/component: chaosexperiment
|
||||
app.kubernetes.io/version: 3.0.0-beta7
|
||||
spec:
|
||||
definition:
|
||||
scope: Cluster
|
||||
permissions:
|
||||
# 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 & secrets details and mount it to the experiment pod (if specified)
|
||||
- apiGroups: [""]
|
||||
resources: ["secrets","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"]
|
||||
# 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"]
|
||||
image: "litmuschaos/go-runner:3.0.0-beta7"
|
||||
imagePullPolicy: Always
|
||||
args:
|
||||
- -c
|
||||
- ./experiments -name azure-disk-loss
|
||||
command:
|
||||
- /bin/bash
|
||||
env:
|
||||
|
||||
- name: TOTAL_CHAOS_DURATION
|
||||
value: '30'
|
||||
|
||||
- name: CHAOS_INTERVAL
|
||||
value: '30'
|
||||
|
||||
# Period to wait before and after injection of chaos in sec
|
||||
- name: RAMP_TIME
|
||||
value: ''
|
||||
|
||||
# provide the resource group of the instance
|
||||
- name: RESOURCE_GROUP
|
||||
value: ''
|
||||
|
||||
# accepts enable/disable, default is disable
|
||||
- name: SCALE_SET
|
||||
value: ''
|
||||
|
||||
# provide the virtual disk names (comma separated if multiple)
|
||||
- name: VIRTUAL_DISK_NAMES
|
||||
value: ''
|
||||
|
||||
# provide the sequence type for the run. Options: serial/parallel
|
||||
- name: SEQUENCE
|
||||
value: 'parallel'
|
||||
|
||||
# provide the path to aks credentials mounted from secret
|
||||
- name: AZURE_AUTH_LOCATION
|
||||
value: '/tmp/azure.auth'
|
||||
|
||||
labels:
|
||||
name: azure-disk-loss
|
||||
app.kubernetes.io/part-of: litmus
|
||||
app.kubernetes.io/component: experiment-job
|
||||
app.kubernetes.io/version: 3.0.0-beta7
|
||||
|
||||
secrets:
|
||||
- name: cloud-secret
|
||||
mountPath: /tmp/
|
|
@ -0,0 +1,64 @@
|
|||
---
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
name: azure-disk-loss-sa
|
||||
namespace: default
|
||||
labels:
|
||||
name: azure-disk-loss-sa
|
||||
app.kubernetes.io/part-of: litmus
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: Role
|
||||
metadata:
|
||||
name: azure-disk-loss-sa
|
||||
namespace: default
|
||||
labels:
|
||||
name: azure-disk-loss-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 & secrets details and mount it to the experiment pod (if specified)
|
||||
- apiGroups: [""]
|
||||
resources: ["secrets","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"]
|
||||
# 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: azure-disk-loss-sa
|
||||
namespace: default
|
||||
labels:
|
||||
name: azure-disk-loss-sa
|
||||
app.kubernetes.io/part-of: litmus
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: Role
|
||||
name: azure-disk-loss-sa
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: azure-disk-loss-sa
|
||||
namespace: default
|
|
@ -0,0 +1,44 @@
|
|||
apiVersion: litmuchaos.io/v1alpha1
|
||||
kind: ChartServiceVersion
|
||||
metadata:
|
||||
createdAt: 2021-02-20T10:28:08Z
|
||||
name: azure-instance-stop
|
||||
version: 0.1.0
|
||||
annotations:
|
||||
categories: Azure
|
||||
vendor: ChaosNative
|
||||
support: https://app.slack.com/client/T09NY5SBT/CNXNB0ZTN
|
||||
spec:
|
||||
displayName: azure-instance-stop
|
||||
categoryDescription: |
|
||||
This experiment causes the power off of an azure instance for a certain chaos duration.
|
||||
- Causes termination of an azure instance before bringing it back to running state after the specified chaos duration.
|
||||
- It helps to check the performance of the application on the instance.
|
||||
keywords:
|
||||
- Azure
|
||||
- Scaleset
|
||||
- AKS
|
||||
platforms:
|
||||
- Azure
|
||||
maturity: alpha
|
||||
chaosType: infra
|
||||
maintainers:
|
||||
- name: Udit Gaurav
|
||||
email: udit@chaosnative.com
|
||||
provider:
|
||||
name: Chaos Native
|
||||
labels:
|
||||
app.kubernetes.io/component: chartserviceversion
|
||||
app.kubernetes.io/version: 3.0.0-beta7
|
||||
links:
|
||||
- name: Source Code
|
||||
url: https://github.com/litmuschaos/litmus-go/tree/master/experiments/azure/instance-stop/experiment
|
||||
- name: Documentation
|
||||
url: https://litmuschaos.github.io/litmus/experiments/categories/azure/azure-instance-stop/
|
||||
# - name: Video
|
||||
# url:
|
||||
icon:
|
||||
- url:
|
||||
mediatype: ""
|
||||
chaosexpcrdlink: https://raw.githubusercontent.com/litmuschaos/chaos-charts/master/charts/azure/azure-instance-stop/experiment.yaml
|
||||
|
|
@ -1,4 +1,3 @@
|
|||
---
|
||||
apiVersion: litmuschaos.io/v1alpha1
|
||||
kind: ChaosEngine
|
||||
metadata:
|
||||
|
@ -6,19 +5,19 @@ metadata:
|
|||
namespace: default
|
||||
spec:
|
||||
engineState: 'active'
|
||||
chaosServiceAccount: litmus-admin
|
||||
chaosServiceAccount: azure-instance-stop-sa
|
||||
experiments:
|
||||
- name: azure-instance-stop
|
||||
spec:
|
||||
components:
|
||||
env:
|
||||
env:
|
||||
# set chaos duration (in sec) as desired
|
||||
- name: TOTAL_CHAOS_DURATION
|
||||
value: '30'
|
||||
|
||||
# set chaos intreval (in sec) as desired
|
||||
- name: CHAOS_INTERVAL
|
||||
value: '30'
|
||||
value: '30'
|
||||
|
||||
# provide the target instance name(s) (comma separated if multiple)
|
||||
- name: AZURE_INSTANCE_NAMES
|
||||
|
@ -27,7 +26,8 @@ spec:
|
|||
# provide the resource group of the instance
|
||||
- name: RESOURCE_GROUP
|
||||
value: ''
|
||||
|
||||
|
||||
# accepts enable/disable, default is disable
|
||||
- name: SCALE_SET
|
||||
value: ''
|
||||
|
|
@ -0,0 +1,91 @@
|
|||
apiVersion: litmuschaos.io/v1alpha1
|
||||
description:
|
||||
message: |
|
||||
Terminating azure VM instance
|
||||
kind: ChaosExperiment
|
||||
metadata:
|
||||
name: azure-instance-stop
|
||||
labels:
|
||||
name: azure-instance-stop
|
||||
app.kubernetes.io/part-of: litmus
|
||||
app.kubernetes.io/component: chaosexperiment
|
||||
app.kubernetes.io/version: 3.0.0-beta7
|
||||
spec:
|
||||
definition:
|
||||
scope: Cluster
|
||||
permissions:
|
||||
# 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 & secrets details and mount it to the experiment pod (if specified)
|
||||
- apiGroups: [""]
|
||||
resources: ["secrets","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"]
|
||||
# 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"]
|
||||
image: "litmuschaos/go-runner:3.0.0-beta7"
|
||||
imagePullPolicy: Always
|
||||
args:
|
||||
- -c
|
||||
- ./experiments -name azure-instance-stop
|
||||
command:
|
||||
- /bin/bash
|
||||
env:
|
||||
|
||||
- name: TOTAL_CHAOS_DURATION
|
||||
value: '30'
|
||||
|
||||
- name: CHAOS_INTERVAL
|
||||
value: '30'
|
||||
|
||||
# Period to wait before and after injection of chaos in sec
|
||||
- name: RAMP_TIME
|
||||
value: ''
|
||||
|
||||
# provide the target instance name(s) (comma separated if multiple)
|
||||
- name: AZURE_INSTANCE_NAMES
|
||||
value: ''
|
||||
|
||||
# provide the resource group of the instance
|
||||
- name: RESOURCE_GROUP
|
||||
value: ''
|
||||
|
||||
# accepts enable/disable, default is disable
|
||||
- name: SCALE_SET
|
||||
value: ''
|
||||
|
||||
# Provide the path of aks credentials mounted from secret
|
||||
- name: AZURE_AUTH_LOCATION
|
||||
value: '/tmp/azure.auth'
|
||||
|
||||
- name: SEQUENCE
|
||||
value: 'parallel'
|
||||
|
||||
labels:
|
||||
name: azure-instance-stop
|
||||
app.kubernetes.io/part-of: litmus
|
||||
app.kubernetes.io/component: experiment-job
|
||||
app.kubernetes.io/version: 3.0.0-beta7
|
||||
secrets:
|
||||
- name: cloud-secret
|
||||
mountPath: /tmp/
|
||||
|
|
@ -0,0 +1,62 @@
|
|||
---
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
name: azure-instance-stop-sa
|
||||
namespace: default
|
||||
labels:
|
||||
name: azure-instance-stop-sa
|
||||
app.kubernetes.io/part-of: litmus
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
name: azure-instance-stop-sa
|
||||
labels:
|
||||
name: azure-instance-stop-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 & secrets details and mount it to the experiment pod (if specified)
|
||||
- apiGroups: [""]
|
||||
resources: ["secrets","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"]
|
||||
# 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: ClusterRoleBinding
|
||||
metadata:
|
||||
name: azure-instance-stop-sa
|
||||
labels:
|
||||
name: azure-instance-stop-sa
|
||||
app.kubernetes.io/part-of: litmus
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: ClusterRole
|
||||
name: azure-instance-stop-sa
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: azure-instance-stop-sa
|
||||
namespace: default
|
|
@ -0,0 +1,40 @@
|
|||
apiVersion: litmuchaos.io/v1alpha1
|
||||
kind: ChartServiceVersion
|
||||
metadata:
|
||||
createdAt: 2021-02-20T10:28:08Z
|
||||
name: azure
|
||||
version: 0.1.0
|
||||
annotations:
|
||||
categories: Kubernetes
|
||||
chartDescription: Injects chaos on azure servies
|
||||
spec:
|
||||
displayName: Azure
|
||||
categoryDescription: >
|
||||
Azure category of chaos experiments causes the disruption of the azure serives for a certain chaos duration.
|
||||
experiments:
|
||||
- azure-instance-stop
|
||||
- azure-disk-loss
|
||||
keywords:
|
||||
- Azure
|
||||
- Instance
|
||||
- AKS
|
||||
- Scaleset
|
||||
maintainers:
|
||||
- name: Udit Gaurav
|
||||
email: udit.gaurav@mayadata.io
|
||||
provider:
|
||||
name: Chaos Native
|
||||
links:
|
||||
- name: Kubernetes Website
|
||||
url: https://kubernetes.io
|
||||
- name: Source Code
|
||||
url: https://github.com/litmuschaos/litmus-go/tree/azure/experiments/azure
|
||||
- name: Kubernetes Slack
|
||||
url: https://slack.kubernetes.io/
|
||||
- name: Documentation
|
||||
url: https://litmuschaos.github.io/litmus/experiments/categories/contents/#cloud-infrastructure
|
||||
icon:
|
||||
- url: https://raw.githubusercontent.com/litmuschaos/charthub.litmuschaos.io/master/public/litmus.ico
|
||||
mediatype: image/png
|
||||
chaosexpcrdlink: https://raw.githubusercontent.com/litmuschaos/chaos-charts/master/charts/azure/experiments.yaml
|
||||
|
|
@ -1,9 +1,10 @@
|
|||
---
|
||||
packageName: azure
|
||||
faults:
|
||||
packageName: azure
|
||||
experiments:
|
||||
- name: azure-instance-stop
|
||||
CSV: azure-instance-stop.chartserviceversion.yaml
|
||||
desc: "azure-instance-stop"
|
||||
|
||||
- name: azure-disk-loss
|
||||
CSV: azure-disk-loss.chartserviceversion.yaml
|
||||
desc: "azure-disk-loss"
|
||||
- name: azure-instance-stop
|
||||
CSV: azure-instance-stop.chartserviceversion.yaml
|
||||
desc: "azure-instance-stop"
|
||||
|
|
@ -0,0 +1,187 @@
|
|||
apiVersion: litmuschaos.io/v1alpha1
|
||||
description:
|
||||
message: |
|
||||
Detaches disk from the VM and then re-attaches disk to the VM
|
||||
kind: ChaosExperiment
|
||||
metadata:
|
||||
name: azure-disk-loss
|
||||
labels:
|
||||
name: azure-disk-loss
|
||||
app.kubernetes.io/part-of: litmus
|
||||
app.kubernetes.io/component: chaosexperiment
|
||||
app.kubernetes.io/version: 3.0.0-beta7
|
||||
spec:
|
||||
definition:
|
||||
scope: Cluster
|
||||
permissions:
|
||||
# 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 & secrets details and mount it to the experiment pod (if specified)
|
||||
- apiGroups: [""]
|
||||
resources: ["secrets","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"]
|
||||
# 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"]
|
||||
image: "litmuschaos/go-runner:3.0.0-beta7"
|
||||
imagePullPolicy: Always
|
||||
args:
|
||||
- -c
|
||||
- ./experiments -name azure-disk-loss
|
||||
command:
|
||||
- /bin/bash
|
||||
env:
|
||||
|
||||
- name: TOTAL_CHAOS_DURATION
|
||||
value: '30'
|
||||
|
||||
- name: CHAOS_INTERVAL
|
||||
value: '30'
|
||||
|
||||
# Period to wait before and after injection of chaos in sec
|
||||
- name: RAMP_TIME
|
||||
value: ''
|
||||
|
||||
# provide the resource group of the instance
|
||||
- name: RESOURCE_GROUP
|
||||
value: ''
|
||||
|
||||
# accepts enable/disable, default is disable
|
||||
- name: SCALE_SET
|
||||
value: ''
|
||||
|
||||
# provide the virtual disk names (comma separated if multiple)
|
||||
- name: VIRTUAL_DISK_NAMES
|
||||
value: ''
|
||||
|
||||
# provide the sequence type for the run. Options: serial/parallel
|
||||
- name: SEQUENCE
|
||||
value: 'parallel'
|
||||
|
||||
# provide the path to aks credentials mounted from secret
|
||||
- name: AZURE_AUTH_LOCATION
|
||||
value: '/tmp/azure.auth'
|
||||
|
||||
labels:
|
||||
name: azure-disk-loss
|
||||
app.kubernetes.io/part-of: litmus
|
||||
app.kubernetes.io/component: experiment-job
|
||||
app.kubernetes.io/version: 3.0.0-beta7
|
||||
|
||||
secrets:
|
||||
- name: cloud-secret
|
||||
mountPath: /tmp/
|
||||
|
||||
---
|
||||
apiVersion: litmuschaos.io/v1alpha1
|
||||
description:
|
||||
message: |
|
||||
Terminating azure VM instance
|
||||
kind: ChaosExperiment
|
||||
metadata:
|
||||
name: azure-instance-stop
|
||||
labels:
|
||||
name: azure-instance-stop
|
||||
app.kubernetes.io/part-of: litmus
|
||||
app.kubernetes.io/component: chaosexperiment
|
||||
app.kubernetes.io/version: 3.0.0-beta7
|
||||
spec:
|
||||
definition:
|
||||
scope: Cluster
|
||||
permissions:
|
||||
# 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 & secrets details and mount it to the experiment pod (if specified)
|
||||
- apiGroups: [""]
|
||||
resources: ["secrets","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"]
|
||||
# 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"]
|
||||
image: "litmuschaos/go-runner:3.0.0-beta7"
|
||||
imagePullPolicy: Always
|
||||
args:
|
||||
- -c
|
||||
- ./experiments -name azure-instance-stop
|
||||
command:
|
||||
- /bin/bash
|
||||
env:
|
||||
|
||||
- name: TOTAL_CHAOS_DURATION
|
||||
value: '30'
|
||||
|
||||
- name: CHAOS_INTERVAL
|
||||
value: '30'
|
||||
|
||||
# Period to wait before and after injection of chaos in sec
|
||||
- name: RAMP_TIME
|
||||
value: ''
|
||||
|
||||
# provide the target instance name(s) (comma separated if multiple)
|
||||
- name: AZURE_INSTANCE_NAMES
|
||||
value: ''
|
||||
|
||||
# provide the resource group of the instance
|
||||
- name: RESOURCE_GROUP
|
||||
value: ''
|
||||
|
||||
# accepts enable/disable, default is disable
|
||||
- name: SCALE_SET
|
||||
value: ''
|
||||
|
||||
# Provide the path of aks credentials mounted from secret
|
||||
- name: AZURE_AUTH_LOCATION
|
||||
value: '/tmp/azure.auth'
|
||||
|
||||
- name: SEQUENCE
|
||||
value: 'parallel'
|
||||
|
||||
labels:
|
||||
name: azure-instance-stop
|
||||
app.kubernetes.io/part-of: litmus
|
||||
app.kubernetes.io/component: experiment-job
|
||||
app.kubernetes.io/version: 3.0.0-beta7
|
||||
secrets:
|
||||
- name: cloud-secret
|
||||
mountPath: /tmp/
|
||||
|
||||
|
||||
---
|
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 22 KiB |
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 22 KiB |
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 22 KiB |
|
@ -0,0 +1,366 @@
|
|||
apiVersion: litmuschaos.io/v1alpha1
|
||||
description:
|
||||
message: |
|
||||
Stops GCP VM instances and GKE nodes filtered by a label for a specified duration and later restarts them
|
||||
kind: ChaosExperiment
|
||||
metadata:
|
||||
name: gcp-vm-instance-stop-by-label
|
||||
labels:
|
||||
name: gcp-vm-instance-stop-by-label
|
||||
app.kubernetes.io/part-of: litmus
|
||||
app.kubernetes.io/component: chaosexperiment
|
||||
app.kubernetes.io/version: 3.0.0-beta7
|
||||
spec:
|
||||
definition:
|
||||
scope: Cluster
|
||||
permissions:
|
||||
# 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 & secrets details and mount it to the experiment pod (if specified)
|
||||
- apiGroups: [""]
|
||||
resources: ["secrets","configmaps"]
|
||||
verbs: ["get","list",]
|
||||
# Track and get the runner, experiment, and helper pods log
|
||||
- apiGroups: [""]
|
||||
resources: ["pods/log"]
|
||||
verbs: ["get","list","watch"]
|
||||
# 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"]
|
||||
# for experiment to perform node status checks
|
||||
- apiGroups: [""]
|
||||
resources: ["nodes"]
|
||||
verbs: ["get","list"]
|
||||
image: "litmuschaos/go-runner:3.0.0-beta7"
|
||||
imagePullPolicy: Always
|
||||
args:
|
||||
- -c
|
||||
- ./experiments -name gcp-vm-instance-stop-by-label
|
||||
command:
|
||||
- /bin/bash
|
||||
env:
|
||||
|
||||
# set chaos duration (in sec) as desired
|
||||
- name: TOTAL_CHAOS_DURATION
|
||||
value: '30'
|
||||
|
||||
# set chaos interval (in sec) as desired
|
||||
- name: CHAOS_INTERVAL
|
||||
value: '30'
|
||||
|
||||
- name: SEQUENCE
|
||||
value: 'parallel'
|
||||
|
||||
# GCP project ID to which the vm instances belong
|
||||
- name: GCP_PROJECT_ID
|
||||
value: ''
|
||||
|
||||
# Label of the target vm instance(s)
|
||||
- name: INSTANCE_LABEL
|
||||
value: ''
|
||||
|
||||
# Zone in which the target vm instance(s) filtered by the label exist
|
||||
# all the instances should lie in a single zone
|
||||
- name: ZONES
|
||||
value: ''
|
||||
|
||||
# enable it if the target instance is a part of a managed instance group
|
||||
- name: MANAGED_INSTANCE_GROUP
|
||||
value: 'disable'
|
||||
|
||||
# set the percentage value of the instances with the given label
|
||||
# which should be targeted as part of the chaos injection
|
||||
- name: INSTANCE_AFFECTED_PERC
|
||||
value: ''
|
||||
|
||||
labels:
|
||||
name: gcp-vm-instance-stop-by-label
|
||||
app.kubernetes.io/part-of: litmus
|
||||
app.kubernetes.io/component: experiment-job
|
||||
app.kubernetes.io/version: 3.0.0-beta7
|
||||
|
||||
secrets:
|
||||
- name: cloud-secret
|
||||
mountPath: /tmp/
|
||||
|
||||
---
|
||||
apiVersion: litmuschaos.io/v1alpha1
|
||||
description:
|
||||
message: |
|
||||
Stops GCP VM instances and GKE nodes for a specified duration and later restarts them
|
||||
kind: ChaosExperiment
|
||||
metadata:
|
||||
name: gcp-vm-instance-stop
|
||||
labels:
|
||||
name: gcp-vm-instance-stop
|
||||
app.kubernetes.io/part-of: litmus
|
||||
app.kubernetes.io/component: chaosexperiment
|
||||
app.kubernetes.io/version: 3.0.0-beta7
|
||||
spec:
|
||||
definition:
|
||||
scope: Cluster
|
||||
permissions:
|
||||
# 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 & secrets details and mount it to the experiment pod (if specified)
|
||||
- apiGroups: [""]
|
||||
resources: ["secrets","configmaps"]
|
||||
verbs: ["get","list",]
|
||||
# Track and get the runner, experiment, and helper pods log
|
||||
- apiGroups: [""]
|
||||
resources: ["pods/log"]
|
||||
verbs: ["get","list","watch"]
|
||||
# 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"]
|
||||
# for experiment to perform node status checks
|
||||
- apiGroups: [""]
|
||||
resources: ["nodes"]
|
||||
verbs: ["get","list"]
|
||||
image: "litmuschaos/go-runner:3.0.0-beta7"
|
||||
imagePullPolicy: Always
|
||||
args:
|
||||
- -c
|
||||
- ./experiments -name gcp-vm-instance-stop
|
||||
command:
|
||||
- /bin/bash
|
||||
env:
|
||||
|
||||
- name: TOTAL_CHAOS_DURATION
|
||||
value: '30'
|
||||
|
||||
- name: CHAOS_INTERVAL
|
||||
value: '30'
|
||||
|
||||
# parallel or serial; determines how the VM instances are terminated, all at once or one at a time
|
||||
- name: SEQUENCE
|
||||
value: 'parallel'
|
||||
|
||||
# period to wait before and after injection of chaos in sec
|
||||
- name: RAMP_TIME
|
||||
value: ''
|
||||
|
||||
# enable or disable; shall be set to enable if the target instances are a part of a managed instance group
|
||||
- name: MANAGED_INSTANCE_GROUP
|
||||
value: 'disable'
|
||||
|
||||
# Instance name of the target vm instance(s)
|
||||
# Multiple instance names can be provided as comma separated values ex: instance1,instance2
|
||||
- name: VM_INSTANCE_NAMES
|
||||
value: ''
|
||||
|
||||
# GCP project ID to which the vm instances belong
|
||||
- name: GCP_PROJECT_ID
|
||||
value: ''
|
||||
|
||||
# Instance zone(s) of the target vm instance(s)
|
||||
# If more than one instance is targetted, provide zone for each in the order of their
|
||||
# respective instance name in VM_INSTANCE_NAME as comma separated values ex: zone1,zone2
|
||||
- name: ZONES
|
||||
value: ''
|
||||
|
||||
labels:
|
||||
name: gcp-vm-instance-stop
|
||||
app.kubernetes.io/part-of: litmus
|
||||
app.kubernetes.io/component: experiment-job
|
||||
app.kubernetes.io/version: 3.0.0-beta7
|
||||
secrets:
|
||||
- name: cloud-secret
|
||||
mountPath: /tmp/
|
||||
|
||||
---
|
||||
apiVersion: litmuschaos.io/v1alpha1
|
||||
description:
|
||||
message: |
|
||||
Causes loss of a non-boot storage persistent disk from a GCP VM instance filtered by a label for a specified duration before attaching them back
|
||||
kind: ChaosExperiment
|
||||
metadata:
|
||||
name: gcp-vm-disk-loss-by-label
|
||||
labels:
|
||||
name: gcp-vm-disk-loss-by-label
|
||||
app.kubernetes.io/part-of: litmus
|
||||
app.kubernetes.io/component: chaosexperiment
|
||||
app.kubernetes.io/version: 3.0.0-beta7
|
||||
spec:
|
||||
definition:
|
||||
scope: Cluster
|
||||
permissions:
|
||||
# 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 & secrets details and mount it to the experiment pod (if specified)
|
||||
- apiGroups: [""]
|
||||
resources: ["secrets","configmaps"]
|
||||
verbs: ["get","list",]
|
||||
# Track and get the runner, experiment, and helper pods log
|
||||
- apiGroups: [""]
|
||||
resources: ["pods/log"]
|
||||
verbs: ["get","list","watch"]
|
||||
# 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"]
|
||||
image: "litmuschaos/go-runner:3.0.0-beta7"
|
||||
imagePullPolicy: Always
|
||||
args:
|
||||
- -c
|
||||
- ./experiments -name gcp-vm-disk-loss-by-label
|
||||
command:
|
||||
- /bin/bash
|
||||
env:
|
||||
|
||||
# set chaos duration (in sec) as desired
|
||||
- name: TOTAL_CHAOS_DURATION
|
||||
value: '30'
|
||||
|
||||
# set chaos interval (in sec) as desired
|
||||
- name: CHAOS_INTERVAL
|
||||
value: '30'
|
||||
|
||||
# set the GCP project id
|
||||
- name: GCP_PROJECT_ID
|
||||
value: ''
|
||||
|
||||
# set the zone in which all the disks are created
|
||||
# all the disks must exist in the same zone
|
||||
- name: ZONES
|
||||
value: ''
|
||||
|
||||
# set the label of the target disk volumes
|
||||
- name: DISK_VOLUME_LABEL
|
||||
value: ''
|
||||
|
||||
# set the percentage value of the disks with the given label
|
||||
# which should be targeted as part of the chaos injection
|
||||
- name: DISK_AFFECTED_PERC
|
||||
value: ''
|
||||
|
||||
labels:
|
||||
name: gcp-vm-disk-loss-by-label
|
||||
app.kubernetes.io/part-of: litmus
|
||||
app.kubernetes.io/component: experiment-job
|
||||
app.kubernetes.io/version: 3.0.0-beta7
|
||||
secrets:
|
||||
- name: cloud-secret
|
||||
mountPath: /tmp/
|
||||
|
||||
---
|
||||
apiVersion: litmuschaos.io/v1alpha1
|
||||
description:
|
||||
message: |
|
||||
Causes loss of a non-boot storage persistent disk from a GCP VM instance for a specified duration before attaching them back
|
||||
kind: ChaosExperiment
|
||||
metadata:
|
||||
name: gcp-vm-disk-loss
|
||||
labels:
|
||||
name: gcp-vm-disk-loss
|
||||
app.kubernetes.io/part-of: litmus
|
||||
app.kubernetes.io/component: chaosexperiment
|
||||
app.kubernetes.io/version: 3.0.0-beta7
|
||||
spec:
|
||||
definition:
|
||||
scope: Cluster
|
||||
permissions:
|
||||
# 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 & secrets details and mount it to the experiment pod (if specified)
|
||||
- apiGroups: [""]
|
||||
resources: ["secrets","configmaps"]
|
||||
verbs: ["get","list",]
|
||||
# Track and get the runner, experiment, and helper pods log
|
||||
- apiGroups: [""]
|
||||
resources: ["pods/log"]
|
||||
verbs: ["get","list","watch"]
|
||||
# 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"]
|
||||
image: "litmuschaos/go-runner:3.0.0-beta7"
|
||||
imagePullPolicy: Always
|
||||
args:
|
||||
- -c
|
||||
- ./experiments -name gcp-vm-disk-loss
|
||||
command:
|
||||
- /bin/bash
|
||||
env:
|
||||
|
||||
- name: TOTAL_CHAOS_DURATION
|
||||
value: '30'
|
||||
|
||||
- name: CHAOS_INTERVAL
|
||||
value: '30'
|
||||
|
||||
# Period to wait before and after injection of chaos in sec
|
||||
- name: RAMP_TIME
|
||||
value: ''
|
||||
|
||||
# parallel or serial; determines how chaos is injected
|
||||
- name: SEQUENCE
|
||||
value: 'parallel'
|
||||
|
||||
# set the GCP project id
|
||||
- name: GCP_PROJECT_ID
|
||||
value: ''
|
||||
|
||||
# set the disk volume name(s) as comma seperated values
|
||||
# eg. volume1,volume2,...
|
||||
- name: DISK_VOLUME_NAMES
|
||||
value: ''
|
||||
|
||||
# set the disk zone(s) as comma seperated values in the corresponding
|
||||
# order of DISK_VOLUME_NAME
|
||||
# eg. zone1,zone2,...
|
||||
- name: ZONES
|
||||
value: ''
|
||||
|
||||
labels:
|
||||
name: gcp-vm-disk-loss
|
||||
app.kubernetes.io/part-of: litmus
|
||||
app.kubernetes.io/component: experiment-job
|
||||
app.kubernetes.io/version: 3.0.0-beta7
|
||||
secrets:
|
||||
- name: cloud-secret
|
||||
mountPath: /tmp/
|
||||
|
||||
---
|
|
@ -1,11 +1,10 @@
|
|||
---
|
||||
apiVersion: litmuschaos.io/v1alpha1
|
||||
kind: ChaosEngine
|
||||
metadata:
|
||||
name: gcp-chaos
|
||||
name: gcp-disk-chaos
|
||||
spec:
|
||||
engineState: 'active'
|
||||
chaosServiceAccount: litmus-admin
|
||||
chaosServiceAccount: gcp-vm-disk-loss-by-label-sa
|
||||
experiments:
|
||||
- name: gcp-vm-disk-loss-by-label
|
||||
spec:
|
||||
|
@ -18,13 +17,13 @@ spec:
|
|||
# set chaos interval (in sec) as desired
|
||||
- name: CHAOS_INTERVAL
|
||||
value: '30'
|
||||
|
||||
|
||||
# set the GCP project id
|
||||
- name: GCP_PROJECT_ID
|
||||
value: ''
|
||||
|
||||
# set the zone in which all the disks are created
|
||||
# all the disks must exist in the same zone
|
||||
# all the disks must exist in the same zone
|
||||
- name: ZONES
|
||||
value: ''
|
||||
|
||||
|
@ -32,7 +31,7 @@ spec:
|
|||
- name: DISK_VOLUME_LABEL
|
||||
value: ''
|
||||
|
||||
# set the percentage value of the disks with the given label
|
||||
# set the percentage value of the disks with the given label
|
||||
# which should be targeted as part of the chaos injection
|
||||
- name: DISK_AFFECTED_PERC
|
||||
value: ''
|
|
@ -0,0 +1,83 @@
|
|||
apiVersion: litmuschaos.io/v1alpha1
|
||||
description:
|
||||
message: |
|
||||
Causes loss of a non-boot storage persistent disk from a GCP VM instance filtered by a label for a specified duration before attaching them back
|
||||
kind: ChaosExperiment
|
||||
metadata:
|
||||
name: gcp-vm-disk-loss-by-label
|
||||
labels:
|
||||
name: gcp-vm-disk-loss-by-label
|
||||
app.kubernetes.io/part-of: litmus
|
||||
app.kubernetes.io/component: chaosexperiment
|
||||
app.kubernetes.io/version: 3.0.0-beta7
|
||||
spec:
|
||||
definition:
|
||||
scope: Cluster
|
||||
permissions:
|
||||
# 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 & secrets details and mount it to the experiment pod (if specified)
|
||||
- apiGroups: [""]
|
||||
resources: ["secrets","configmaps"]
|
||||
verbs: ["get","list",]
|
||||
# Track and get the runner, experiment, and helper pods log
|
||||
- apiGroups: [""]
|
||||
resources: ["pods/log"]
|
||||
verbs: ["get","list","watch"]
|
||||
# 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"]
|
||||
image: "litmuschaos/go-runner:3.0.0-beta7"
|
||||
imagePullPolicy: Always
|
||||
args:
|
||||
- -c
|
||||
- ./experiments -name gcp-vm-disk-loss-by-label
|
||||
command:
|
||||
- /bin/bash
|
||||
env:
|
||||
|
||||
# set chaos duration (in sec) as desired
|
||||
- name: TOTAL_CHAOS_DURATION
|
||||
value: '30'
|
||||
|
||||
# set chaos interval (in sec) as desired
|
||||
- name: CHAOS_INTERVAL
|
||||
value: '30'
|
||||
|
||||
# set the GCP project id
|
||||
- name: GCP_PROJECT_ID
|
||||
value: ''
|
||||
|
||||
# set the zone in which all the disks are created
|
||||
# all the disks must exist in the same zone
|
||||
- name: ZONES
|
||||
value: ''
|
||||
|
||||
# set the label of the target disk volumes
|
||||
- name: DISK_VOLUME_LABEL
|
||||
value: ''
|
||||
|
||||
# set the percentage value of the disks with the given label
|
||||
# which should be targeted as part of the chaos injection
|
||||
- name: DISK_AFFECTED_PERC
|
||||
value: ''
|
||||
|
||||
labels:
|
||||
name: gcp-vm-disk-loss-by-label
|
||||
app.kubernetes.io/part-of: litmus
|
||||
app.kubernetes.io/component: experiment-job
|
||||
app.kubernetes.io/version: 3.0.0-beta7
|
||||
secrets:
|
||||
- name: cloud-secret
|
||||
mountPath: /tmp/
|
|
@ -0,0 +1,33 @@
|
|||
apiVersion: litmuchaos.io/v1alpha1
|
||||
kind: ChartServiceVersion
|
||||
metadata:
|
||||
name: gcp-vm-disk-loss-by-label
|
||||
version: 0.1.0
|
||||
annotations:
|
||||
categories: gcp
|
||||
spec:
|
||||
displayName: gcp-vm-disk-loss-by-label
|
||||
categoryDescription: >
|
||||
Causes loss of a non-boot storage persistent disk from a GCP VM instance filtered by a label for a specified duration before attaching them back
|
||||
keywords:
|
||||
- "Disk"
|
||||
- "GCP"
|
||||
platforms:
|
||||
- "Minikube"
|
||||
maturity: alpha
|
||||
maintainers:
|
||||
- name: Neelanjan Manna
|
||||
email: neelanjan.manna@harness.io
|
||||
minKubeVersion: 1.12.0
|
||||
provider:
|
||||
name: Harness
|
||||
labels:
|
||||
app.kubernetes.io/component: chartserviceversion
|
||||
app.kubernetes.io/version: 3.0.0-beta7
|
||||
links:
|
||||
- name: Documentation
|
||||
url: https://litmuschaos.github.io/litmus/experiments/categories/gcp/gcp-vm-disk-loss-by-label/
|
||||
icon:
|
||||
- url:
|
||||
mediatype: ""
|
||||
chaosexpcrdlink: https://raw.githubusercontent.com/litmuschaos/chaos-charts/master/charts/gcp/gcp-vm-disk-loss-by-label/experiment.yaml
|
|
@ -0,0 +1,62 @@
|
|||
---
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
name: gcp-vm-disk-loss-by-label-sa
|
||||
namespace: default
|
||||
labels:
|
||||
name: gcp-vm-disk-loss-by-label-sa
|
||||
app.kubernetes.io/part-of: litmus
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
name: gcp-vm-disk-loss-by-label-sa
|
||||
labels:
|
||||
name: gcp-vm-disk-loss-by-label-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 & secrets details and mount it to the experiment pod (if specified)
|
||||
- apiGroups: [""]
|
||||
resources: ["secrets","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"]
|
||||
# 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: ClusterRoleBinding
|
||||
metadata:
|
||||
name: gcp-vm-disk-loss-by-label-sa
|
||||
labels:
|
||||
name: gcp-vm-disk-loss-by-label-sa
|
||||
app.kubernetes.io/part-of: litmus
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: ClusterRole
|
||||
name: gcp-vm-disk-loss-by-label-sa
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: gcp-vm-disk-loss-by-label-sa
|
||||
namespace: default
|
|
@ -1,13 +1,12 @@
|
|||
---
|
||||
apiVersion: litmuschaos.io/v1alpha1
|
||||
kind: ChaosEngine
|
||||
metadata:
|
||||
name: gcp-chaos
|
||||
name: gcp-disk-chaos
|
||||
namespace: default
|
||||
spec:
|
||||
# It can be active/stop
|
||||
engineState: 'active'
|
||||
chaosServiceAccount: litmus-admin
|
||||
chaosServiceAccount: gcp-vm-disk-loss-sa
|
||||
experiments:
|
||||
- name: gcp-vm-disk-loss
|
||||
spec:
|
||||
|
@ -25,13 +24,13 @@ spec:
|
|||
- name: GCP_PROJECT_ID
|
||||
value: ''
|
||||
|
||||
# set the disk volume name(s) as comma seperated values
|
||||
# set the disk volume name(s) as comma seperated values
|
||||
# eg. volume1,volume2,...
|
||||
- name: DISK_VOLUME_NAMES
|
||||
value: ''
|
||||
|
||||
# set the disk zone(s) as comma seperated values in the corresponding
|
||||
# order of DISK_VOLUME_NAME
|
||||
|
||||
# set the disk zone(s) as comma seperated values in the corresponding
|
||||
# order of DISK_VOLUME_NAME
|
||||
# eg. zone1,zone2,...
|
||||
- name: ZONES
|
||||
value: ''
|
|
@ -0,0 +1,86 @@
|
|||
apiVersion: litmuschaos.io/v1alpha1
|
||||
description:
|
||||
message: |
|
||||
Causes loss of a non-boot storage persistent disk from a GCP VM instance for a specified duration before attaching them back
|
||||
kind: ChaosExperiment
|
||||
metadata:
|
||||
name: gcp-vm-disk-loss
|
||||
labels:
|
||||
name: gcp-vm-disk-loss
|
||||
app.kubernetes.io/part-of: litmus
|
||||
app.kubernetes.io/component: chaosexperiment
|
||||
app.kubernetes.io/version: 3.0.0-beta7
|
||||
spec:
|
||||
definition:
|
||||
scope: Cluster
|
||||
permissions:
|
||||
# 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 & secrets details and mount it to the experiment pod (if specified)
|
||||
- apiGroups: [""]
|
||||
resources: ["secrets","configmaps"]
|
||||
verbs: ["get","list",]
|
||||
# Track and get the runner, experiment, and helper pods log
|
||||
- apiGroups: [""]
|
||||
resources: ["pods/log"]
|
||||
verbs: ["get","list","watch"]
|
||||
# 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"]
|
||||
image: "litmuschaos/go-runner:3.0.0-beta7"
|
||||
imagePullPolicy: Always
|
||||
args:
|
||||
- -c
|
||||
- ./experiments -name gcp-vm-disk-loss
|
||||
command:
|
||||
- /bin/bash
|
||||
env:
|
||||
|
||||
- name: TOTAL_CHAOS_DURATION
|
||||
value: '30'
|
||||
|
||||
- name: CHAOS_INTERVAL
|
||||
value: '30'
|
||||
|
||||
# Period to wait before and after injection of chaos in sec
|
||||
- name: RAMP_TIME
|
||||
value: ''
|
||||
|
||||
# parallel or serial; determines how chaos is injected
|
||||
- name: SEQUENCE
|
||||
value: 'parallel'
|
||||
|
||||
# set the GCP project id
|
||||
- name: GCP_PROJECT_ID
|
||||
value: ''
|
||||
|
||||
# set the disk volume name(s) as comma seperated values
|
||||
# eg. volume1,volume2,...
|
||||
- name: DISK_VOLUME_NAMES
|
||||
value: ''
|
||||
|
||||
# set the disk zone(s) as comma seperated values in the corresponding
|
||||
# order of DISK_VOLUME_NAME
|
||||
# eg. zone1,zone2,...
|
||||
- name: ZONES
|
||||
value: ''
|
||||
|
||||
labels:
|
||||
name: gcp-vm-disk-loss
|
||||
app.kubernetes.io/part-of: litmus
|
||||
app.kubernetes.io/component: experiment-job
|
||||
app.kubernetes.io/version: 3.0.0-beta7
|
||||
secrets:
|
||||
- name: cloud-secret
|
||||
mountPath: /tmp/
|
|
@ -0,0 +1,33 @@
|
|||
apiVersion: litmuchaos.io/v1alpha1
|
||||
kind: ChartServiceVersion
|
||||
metadata:
|
||||
name: gcp-vm-disk-loss
|
||||
version: 0.1.0
|
||||
annotations:
|
||||
categories: gcp
|
||||
spec:
|
||||
displayName: gcp-vm-disk-loss
|
||||
categoryDescription: >
|
||||
Causes loss of a non-boot storage persistent disk from a GCP VM instance for a specified duration before attaching them back
|
||||
keywords:
|
||||
- "Disk"
|
||||
- "GCP"
|
||||
platforms:
|
||||
- "GCP"
|
||||
maturity: alpha
|
||||
maintainers:
|
||||
- name: Neelanjan Manna
|
||||
email: neelanjan@chaosnative.com
|
||||
minKubeVersion: 1.12.0
|
||||
provider:
|
||||
name: ChaosNative
|
||||
labels:
|
||||
app.kubernetes.io/component: chartserviceversion
|
||||
app.kubernetes.io/version: 3.0.0-beta7
|
||||
links:
|
||||
- name: Documentation
|
||||
url: https://litmuschaos.github.io/litmus/experiments/categories/gcp/gcp-vm-disk-loss/
|
||||
icon:
|
||||
- url:
|
||||
mediatype: ""
|
||||
chaosexpcrdlink: https://raw.githubusercontent.com/litmuschaos/chaos-charts/master/charts/gcp/gcp-vm-disk-loss/experiment.yaml
|
|
@ -0,0 +1,62 @@
|
|||
---
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
name: gcp-vm-disk-loss-sa
|
||||
namespace: default
|
||||
labels:
|
||||
name: gcp-vm-disk-loss-sa
|
||||
app.kubernetes.io/part-of: litmus
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
name: gcp-vm-disk-loss-sa
|
||||
labels:
|
||||
name: gcp-vm-disk-loss-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 & secrets details and mount it to the experiment pod (if specified)
|
||||
- apiGroups: [""]
|
||||
resources: ["secrets","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"]
|
||||
# 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: ClusterRoleBinding
|
||||
metadata:
|
||||
name: gcp-vm-disk-loss-sa
|
||||
labels:
|
||||
name: gcp-vm-disk-loss-sa
|
||||
app.kubernetes.io/part-of: litmus
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: ClusterRole
|
||||
name: gcp-vm-disk-loss-sa
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: gcp-vm-disk-loss-sa
|
||||
namespace: default
|
|
@ -1,12 +1,11 @@
|
|||
---
|
||||
apiVersion: litmuschaos.io/v1alpha1
|
||||
kind: ChaosEngine
|
||||
metadata:
|
||||
name: gcp-chaos
|
||||
name: gcp-vm-chaos
|
||||
spec:
|
||||
# It can be active/stop
|
||||
engineState: 'active'
|
||||
chaosServiceAccount: litmus-admin
|
||||
chaosServiceAccount: gcp-vm-instance-stop-by-label-sa
|
||||
# It can be delete/retain
|
||||
experiments:
|
||||
- name: gcp-vm-instance-stop-by-label
|
||||
|
@ -20,19 +19,19 @@ spec:
|
|||
# set chaos interval (in sec) as desired
|
||||
- name: CHAOS_INTERVAL
|
||||
value: '30'
|
||||
|
||||
|
||||
- name: SEQUENCE
|
||||
value: 'parallel'
|
||||
|
||||
# GCP project ID to which the VM instances belong
|
||||
# GCP project ID to which the vm instances belong
|
||||
- name: GCP_PROJECT_ID
|
||||
value: ''
|
||||
|
||||
# Label of the target VM instance(s)
|
||||
# Label of the target vm instance(s)
|
||||
- name: INSTANCE_LABEL
|
||||
value: ''
|
||||
|
||||
# Zone in which the target VM instance(s) filtered by the label exist
|
||||
# Zone in which the target vm instance(s) filtered by the label exist
|
||||
# all the instances should lie in a single zone
|
||||
- name: ZONES
|
||||
value: ''
|
||||
|
@ -41,7 +40,7 @@ spec:
|
|||
- name: MANAGED_INSTANCE_GROUP
|
||||
value: 'disable'
|
||||
|
||||
# set the percentage value of the instances with the given label
|
||||
# set the percentage value of the instances with the given label
|
||||
# which should be targeted as part of the chaos injection
|
||||
- name: INSTANCE_AFFECTED_PERC
|
||||
value: ''
|
||||
value: ''
|
|
@ -0,0 +1,95 @@
|
|||
apiVersion: litmuschaos.io/v1alpha1
|
||||
description:
|
||||
message: |
|
||||
Stops GCP VM instances and GKE nodes filtered by a label for a specified duration and later restarts them
|
||||
kind: ChaosExperiment
|
||||
metadata:
|
||||
name: gcp-vm-instance-stop-by-label
|
||||
labels:
|
||||
name: gcp-vm-instance-stop-by-label
|
||||
app.kubernetes.io/part-of: litmus
|
||||
app.kubernetes.io/component: chaosexperiment
|
||||
app.kubernetes.io/version: 3.0.0-beta7
|
||||
spec:
|
||||
definition:
|
||||
scope: Cluster
|
||||
permissions:
|
||||
# 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 & secrets details and mount it to the experiment pod (if specified)
|
||||
- apiGroups: [""]
|
||||
resources: ["secrets","configmaps"]
|
||||
verbs: ["get","list",]
|
||||
# Track and get the runner, experiment, and helper pods log
|
||||
- apiGroups: [""]
|
||||
resources: ["pods/log"]
|
||||
verbs: ["get","list","watch"]
|
||||
# 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"]
|
||||
# for experiment to perform node status checks
|
||||
- apiGroups: [""]
|
||||
resources: ["nodes"]
|
||||
verbs: ["get","list"]
|
||||
image: "litmuschaos/go-runner:3.0.0-beta7"
|
||||
imagePullPolicy: Always
|
||||
args:
|
||||
- -c
|
||||
- ./experiments -name gcp-vm-instance-stop-by-label
|
||||
command:
|
||||
- /bin/bash
|
||||
env:
|
||||
|
||||
# set chaos duration (in sec) as desired
|
||||
- name: TOTAL_CHAOS_DURATION
|
||||
value: '30'
|
||||
|
||||
# set chaos interval (in sec) as desired
|
||||
- name: CHAOS_INTERVAL
|
||||
value: '30'
|
||||
|
||||
- name: SEQUENCE
|
||||
value: 'parallel'
|
||||
|
||||
# GCP project ID to which the vm instances belong
|
||||
- name: GCP_PROJECT_ID
|
||||
value: ''
|
||||
|
||||
# Label of the target vm instance(s)
|
||||
- name: INSTANCE_LABEL
|
||||
value: ''
|
||||
|
||||
# Zone in which the target vm instance(s) filtered by the label exist
|
||||
# all the instances should lie in a single zone
|
||||
- name: ZONES
|
||||
value: ''
|
||||
|
||||
# enable it if the target instance is a part of a managed instance group
|
||||
- name: MANAGED_INSTANCE_GROUP
|
||||
value: 'disable'
|
||||
|
||||
# set the percentage value of the instances with the given label
|
||||
# which should be targeted as part of the chaos injection
|
||||
- name: INSTANCE_AFFECTED_PERC
|
||||
value: ''
|
||||
|
||||
labels:
|
||||
name: gcp-vm-instance-stop-by-label
|
||||
app.kubernetes.io/part-of: litmus
|
||||
app.kubernetes.io/component: experiment-job
|
||||
app.kubernetes.io/version: 3.0.0-beta7
|
||||
|
||||
secrets:
|
||||
- name: cloud-secret
|
||||
mountPath: /tmp/
|
|
@ -0,0 +1,33 @@
|
|||
apiVersion: litmuchaos.io/v1alpha1
|
||||
kind: ChartServiceVersion
|
||||
metadata:
|
||||
name: gcp-vm-instance-stop-by-label
|
||||
version: 0.1.0
|
||||
annotations:
|
||||
categories: gcp
|
||||
spec:
|
||||
displayName: gcp-vm-instance-stop-by-label
|
||||
categoryDescription: >
|
||||
Stops GCP VM instances and GKE nodes filtered by a label for a specified duration and later restarts them
|
||||
keywords:
|
||||
- "VM"
|
||||
- "GCP"
|
||||
platforms:
|
||||
- "Minikube"
|
||||
maturity: alpha
|
||||
maintainers:
|
||||
- name: Neelanjan Manna
|
||||
email: neelanjan.manna@harness.io
|
||||
minKubeVersion: 1.12.0
|
||||
provider:
|
||||
name: Harness
|
||||
labels:
|
||||
app.kubernetes.io/component: chartserviceversion
|
||||
app.kubernetes.io/version: 3.0.0-beta7
|
||||
links:
|
||||
- name: Documentation
|
||||
url: https://litmuschaos.github.io/litmus/experiments/categories/gcp/gcp-vm-instance-stop-by-label/
|
||||
icon:
|
||||
- url:
|
||||
mediatype: ""
|
||||
chaosexpcrdlink: https://raw.githubusercontent.com/litmuschaos/chaos-charts/master/charts/gcp/gcp-vm-instance-stop-by-label/experiment.yaml
|
|
@ -0,0 +1,66 @@
|
|||
---
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
name: gcp-vm-instance-stop-by-label-sa
|
||||
namespace: default
|
||||
labels:
|
||||
name: gcp-vm-instance-stop-by-label-sa
|
||||
app.kubernetes.io/part-of: litmus
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
name: gcp-vm-instance-stop-by-label-sa
|
||||
labels:
|
||||
name: gcp-vm-instance-stop-by-label-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 & secrets details and mount it to the experiment pod (if specified)
|
||||
- apiGroups: [""]
|
||||
resources: ["secrets","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"]
|
||||
# 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"]
|
||||
# for experiment to perform node status checks
|
||||
- apiGroups: [""]
|
||||
resources: ["nodes"]
|
||||
verbs: ["get","list"]
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRoleBinding
|
||||
metadata:
|
||||
name: gcp-vm-instance-stop-by-label-sa
|
||||
labels:
|
||||
name: gcp-vm-instance-stop-by-label-sa
|
||||
app.kubernetes.io/part-of: litmus
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: ClusterRole
|
||||
name: gcp-vm-instance-stop-by-label-sa
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: gcp-vm-instance-stop-by-label-sa
|
||||
namespace: default
|
|
@ -1,4 +1,3 @@
|
|||
---
|
||||
apiVersion: litmuschaos.io/v1alpha1
|
||||
kind: ChaosEngine
|
||||
metadata:
|
||||
|
@ -18,18 +17,18 @@ spec:
|
|||
# set chaos interval (in sec) as desired
|
||||
- name: CHAOS_INTERVAL
|
||||
value: '30'
|
||||
|
||||
# Instance name of the target VM instance(s)
|
||||
|
||||
# Instance name of the target vm instance(s)
|
||||
# Multiple instance names can be provided as comma separated values ex: instance1,instance2
|
||||
- name: VM_INSTANCE_NAMES
|
||||
value: ''
|
||||
|
||||
# GCP project ID to which the VM instances belong
|
||||
|
||||
# GCP project ID to which the vm instances belong
|
||||
- name: GCP_PROJECT_ID
|
||||
value: ''
|
||||
|
||||
# Instance zone(s) of the target VM instance(s)
|
||||
# If more than one instance is targetted, provide zone for each in the order of their
|
||||
# Instance zone(s) of the target vm instance(s)
|
||||
# If more than one instance is targetted, provide zone for each in the order of their
|
||||
# respective instance name in VM_INSTANCE_NAME as comma separated values ex: zone1,zone2
|
||||
- name: ZONES
|
||||
value: ''
|
|
@ -0,0 +1,94 @@
|
|||
apiVersion: litmuschaos.io/v1alpha1
|
||||
description:
|
||||
message: |
|
||||
Stops GCP VM instances and GKE nodes for a specified duration and later restarts them
|
||||
kind: ChaosExperiment
|
||||
metadata:
|
||||
name: gcp-vm-instance-stop
|
||||
labels:
|
||||
name: gcp-vm-instance-stop
|
||||
app.kubernetes.io/part-of: litmus
|
||||
app.kubernetes.io/component: chaosexperiment
|
||||
app.kubernetes.io/version: 3.0.0-beta7
|
||||
spec:
|
||||
definition:
|
||||
scope: Cluster
|
||||
permissions:
|
||||
# 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 & secrets details and mount it to the experiment pod (if specified)
|
||||
- apiGroups: [""]
|
||||
resources: ["secrets","configmaps"]
|
||||
verbs: ["get","list",]
|
||||
# Track and get the runner, experiment, and helper pods log
|
||||
- apiGroups: [""]
|
||||
resources: ["pods/log"]
|
||||
verbs: ["get","list","watch"]
|
||||
# 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"]
|
||||
# for experiment to perform node status checks
|
||||
- apiGroups: [""]
|
||||
resources: ["nodes"]
|
||||
verbs: ["get","list"]
|
||||
image: "litmuschaos/go-runner:3.0.0-beta7"
|
||||
imagePullPolicy: Always
|
||||
args:
|
||||
- -c
|
||||
- ./experiments -name gcp-vm-instance-stop
|
||||
command:
|
||||
- /bin/bash
|
||||
env:
|
||||
|
||||
- name: TOTAL_CHAOS_DURATION
|
||||
value: '30'
|
||||
|
||||
- name: CHAOS_INTERVAL
|
||||
value: '30'
|
||||
|
||||
# parallel or serial; determines how the VM instances are terminated, all at once or one at a time
|
||||
- name: SEQUENCE
|
||||
value: 'parallel'
|
||||
|
||||
# period to wait before and after injection of chaos in sec
|
||||
- name: RAMP_TIME
|
||||
value: ''
|
||||
|
||||
# enable or disable; shall be set to enable if the target instances are a part of a managed instance group
|
||||
- name: MANAGED_INSTANCE_GROUP
|
||||
value: 'disable'
|
||||
|
||||
# Instance name of the target vm instance(s)
|
||||
# Multiple instance names can be provided as comma separated values ex: instance1,instance2
|
||||
- name: VM_INSTANCE_NAMES
|
||||
value: ''
|
||||
|
||||
# GCP project ID to which the vm instances belong
|
||||
- name: GCP_PROJECT_ID
|
||||
value: ''
|
||||
|
||||
# Instance zone(s) of the target vm instance(s)
|
||||
# If more than one instance is targetted, provide zone for each in the order of their
|
||||
# respective instance name in VM_INSTANCE_NAME as comma separated values ex: zone1,zone2
|
||||
- name: ZONES
|
||||
value: ''
|
||||
|
||||
labels:
|
||||
name: gcp-vm-instance-stop
|
||||
app.kubernetes.io/part-of: litmus
|
||||
app.kubernetes.io/component: experiment-job
|
||||
app.kubernetes.io/version: 3.0.0-beta7
|
||||
secrets:
|
||||
- name: cloud-secret
|
||||
mountPath: /tmp/
|
|
@ -0,0 +1,33 @@
|
|||
apiVersion: litmuchaos.io/v1alpha1
|
||||
kind: ChartServiceVersion
|
||||
metadata:
|
||||
name: gcp-vm-instance-stop
|
||||
version: 0.1.0
|
||||
annotations:
|
||||
categories: gcp
|
||||
spec:
|
||||
displayName: gcp-vm-instance-stop
|
||||
categoryDescription: >
|
||||
Stops GCP VM instances and GKE nodes for a specified duration and later restarts them
|
||||
keywords:
|
||||
- "VM"
|
||||
- "GCP"
|
||||
platforms:
|
||||
- "GCP"
|
||||
maturity: alpha
|
||||
maintainers:
|
||||
- name: Neelanjan Manna
|
||||
email: neelanjan@chaosnative.com
|
||||
minKubeVersion: 1.12.0
|
||||
provider:
|
||||
name: ChaosNative
|
||||
labels:
|
||||
app.kubernetes.io/component: chartserviceversion
|
||||
app.kubernetes.io/version: 3.0.0-beta7
|
||||
links:
|
||||
- name: Documentation
|
||||
url: https://litmuschaos.github.io/litmus/experiments/categories/gcp/gcp-vm-instance-stop/
|
||||
icon:
|
||||
- url:
|
||||
mediatype: ""
|
||||
chaosexpcrdlink: https://raw.githubusercontent.com/litmuschaos/chaos-charts/master/charts/gcp/gcp-vm-instance-stop/experiment.yaml
|
|
@ -0,0 +1,66 @@
|
|||
---
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
name: gcp-vm-instance-stop-sa
|
||||
namespace: default
|
||||
labels:
|
||||
name: gcp-vm-instance-stop-sa
|
||||
app.kubernetes.io/part-of: litmus
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
name: gcp-vm-instance-stop-sa
|
||||
labels:
|
||||
name: gcp-vm-instance-stop-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 & secrets details and mount it to the experiment pod (if specified)
|
||||
- apiGroups: [""]
|
||||
resources: ["secrets","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"]
|
||||
# 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"]
|
||||
# for experiment to perform node status checks
|
||||
- apiGroups: [""]
|
||||
resources: ["nodes"]
|
||||
verbs: ["get","list"]
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRoleBinding
|
||||
metadata:
|
||||
name: gcp-vm-instance-stop-sa
|
||||
labels:
|
||||
name: gcp-vm-instance-stop-sa
|
||||
app.kubernetes.io/part-of: litmus
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: ClusterRole
|
||||
name: gcp-vm-instance-stop-sa
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: gcp-vm-instance-stop-sa
|
||||
namespace: default
|
|
@ -0,0 +1,38 @@
|
|||
apiVersion: litmuchaos.io/v1alpha1
|
||||
kind: ChartServiceVersion
|
||||
metadata:
|
||||
name: gcp
|
||||
version: 0.1.0
|
||||
annotations:
|
||||
categories: gcp
|
||||
spec:
|
||||
displayName: gcp chaos
|
||||
categoryDescription: >
|
||||
GCP contains chaos to disrupt state of gcp resources running part of the gcp services
|
||||
experiments:
|
||||
- gcp-vm-instance-stop
|
||||
- gcp-vm-disk-loss
|
||||
- gcp-vm-instance-stop-by-label
|
||||
- gcp-vm-disk-loss-by-label
|
||||
keywords:
|
||||
- "VM"
|
||||
- "Disk"
|
||||
- "GCP"
|
||||
- "Infra"
|
||||
maintainers:
|
||||
- name: Neelanjan Manna
|
||||
email: neelanjan.manna@harness.io
|
||||
minKubeVersion: 1.12.0
|
||||
provider:
|
||||
name: Harness
|
||||
links:
|
||||
- name: GCP Website
|
||||
url: https://cloud.google.com/
|
||||
- name: Documentation
|
||||
url: https://litmuschaos.github.io/litmus/experiments/categories/contents/#cloud-infrastructure
|
||||
- name: Community Slack
|
||||
url: https://app.slack.com/client/T09NY5SBT/CNXNB0ZTN
|
||||
icon:
|
||||
- url:
|
||||
mediatype: ""
|
||||
chaosexpcrdlink: https://raw.githubusercontent.com/litmuschaos/chaos-charts/master/charts/gcp/experiments.yaml
|
|
@ -1,15 +1,14 @@
|
|||
---
|
||||
packageName: gcp
|
||||
faults:
|
||||
experiments:
|
||||
- name: gcp-vm-instance-stop
|
||||
CSV: gcp-vm-instance-stop.chartserviceversion.yaml
|
||||
desc: "gcp-vm-instance-stop"
|
||||
- name: gcp-vm-disk-loss
|
||||
CSV: gcp-vm-disk-loss.chartserviceversion.yaml
|
||||
desc: "gcp-vm-disk-loss"
|
||||
- name: gcp-vm-instance-stop-by-label
|
||||
CSV: gcp-vm-instance-stop-by-label.chartserviceversion.yaml
|
||||
desc: "gcp-vm-instance-stop-by-label"
|
||||
- name: gcp-vm-disk-loss-by-label
|
||||
CSV: gcp-vm-disk-loss-by-label.chartserviceversion.yaml
|
||||
desc: "gcp-vm-disk-loss-by-label"
|
||||
- name: gcp-vm-disk-loss
|
||||
CSV: gcp-vm-disk-loss.chartserviceversion.yaml
|
||||
desc: "gcp-vm-disk-loss"
|
Before Width: | Height: | Size: 39 KiB After Width: | Height: | Size: 39 KiB |
Before Width: | Height: | Size: 39 KiB After Width: | Height: | Size: 39 KiB |
Before Width: | Height: | Size: 67 KiB After Width: | Height: | Size: 67 KiB |
Before Width: | Height: | Size: 67 KiB After Width: | Height: | Size: 67 KiB |
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 30 KiB |
|
@ -0,0 +1,48 @@
|
|||
apiVersion: litmuchaos.io/v1alpha1
|
||||
kind: ChartServiceVersion
|
||||
metadata:
|
||||
createdAt: 2019-10-15T10:28:08Z
|
||||
name: container-kill
|
||||
version: 0.1.13
|
||||
annotations:
|
||||
categories: "Kubernetes"
|
||||
vendor: "CNCF"
|
||||
support: https://slack.openebs.io/
|
||||
spec:
|
||||
displayName: container-kill
|
||||
categoryDescription: |
|
||||
Container kill contains chaos to disrupt state of kubernetes resources. Experiments can inject random container delete failures against specified application.
|
||||
- Executes SIGKILL on containers of random replicas of an application deployment.
|
||||
- Tests deployment sanity (replica availability & uninterrupted service) and recovery workflows of the application pod.
|
||||
keywords:
|
||||
- Kubernetes
|
||||
- K8S
|
||||
- Pod
|
||||
- Container
|
||||
platforms:
|
||||
- GKE
|
||||
- Minikube
|
||||
- Packet(Kubeadm)
|
||||
- EKS
|
||||
- AKS
|
||||
maturity: alpha
|
||||
maintainers:
|
||||
- name: ksatchit
|
||||
email: karthik.s@mayadata.io
|
||||
minKubeVersion: 1.12.0
|
||||
provider:
|
||||
name: Mayadata
|
||||
labels:
|
||||
app.kubernetes.io/component: chartserviceversion
|
||||
app.kubernetes.io/version: 3.0.0-beta7
|
||||
links:
|
||||
- name: Source Code
|
||||
url: https://github.com/litmuschaos/litmus-go/tree/master/experiments/generic/container-kill
|
||||
- name: Documentation
|
||||
url: https://litmuschaos.github.io/litmus/experiments/categories/pods/container-kill/
|
||||
- name: Video
|
||||
url: https://www.youtube.com/watch?v=XKyMNdVsKMo
|
||||
icon:
|
||||
- url:
|
||||
mediatype: ""
|
||||
chaosexpcrdlink: https://raw.githubusercontent.com/litmuschaos/chaos-charts/master/charts/generic/container-kill/experiment.yaml
|
|
@ -1,4 +1,3 @@
|
|||
---
|
||||
apiVersion: litmuschaos.io/v1alpha1
|
||||
kind: ChaosEngine
|
||||
metadata:
|
||||
|
@ -8,9 +7,9 @@ spec:
|
|||
# It can be active/stop
|
||||
engineState: 'active'
|
||||
appinfo:
|
||||
appns: ''
|
||||
applabel: ''
|
||||
appkind: ''
|
||||
appns: 'default'
|
||||
applabel: 'app=nginx'
|
||||
appkind: 'deployment'
|
||||
chaosServiceAccount: container-kill-sa
|
||||
experiments:
|
||||
- name: container-kill
|
||||
|
@ -26,7 +25,8 @@ spec:
|
|||
value: '10'
|
||||
|
||||
# provide the name of container runtime
|
||||
# it supports docker, containerd, crio
|
||||
# for litmus LIB, it supports docker, containerd, crio
|
||||
# for pumba LIB, it supports docker only
|
||||
- name: CONTAINER_RUNTIME
|
||||
value: 'containerd'
|
||||
|
||||
|
@ -39,3 +39,4 @@ spec:
|
|||
|
||||
- name: TARGET_CONTAINER
|
||||
value: ''
|
||||
|
|
@ -0,0 +1,46 @@
|
|||
apiVersion: litmuschaos.io/v1alpha1
|
||||
kind: ChaosEngine
|
||||
metadata:
|
||||
name: nginx-chaos
|
||||
namespace: nginx
|
||||
spec:
|
||||
# It can be active/stop
|
||||
engineState: 'active'
|
||||
#ex. values: ns1:name=percona,ns2:run=nginx
|
||||
auxiliaryAppInfo: ''
|
||||
appinfo:
|
||||
appns: 'nginx'
|
||||
applabel: 'app=nginx'
|
||||
appkind: 'deployment'
|
||||
chaosServiceAccount: container-kill-sa
|
||||
# It can be delete/retain
|
||||
jobCleanUpPolicy: 'delete'
|
||||
experiments:
|
||||
- name: container-kill
|
||||
spec:
|
||||
components:
|
||||
env:
|
||||
# provide the total chaos duration
|
||||
- name: TOTAL_CHAOS_DURATION
|
||||
value: '20'
|
||||
|
||||
# provide the chaos interval
|
||||
- name: CHAOS_INTERVAL
|
||||
value: '10'
|
||||
|
||||
# provide the name of container runtime
|
||||
# for litmus LIB, it supports docker, containerd, crio
|
||||
# for pumba LIB, it supports docker only
|
||||
- name: CONTAINER_RUNTIME
|
||||
value: 'containerd'
|
||||
|
||||
# provide the socket file path
|
||||
- name: SOCKET_PATH
|
||||
value: '/run/containerd/containerd.sock'
|
||||
|
||||
- name: PODS_AFFECTED_PERC
|
||||
value: ''
|
||||
|
||||
- name: TARGET_CONTAINER
|
||||
value: ''
|
||||
|
|
@ -0,0 +1,121 @@
|
|||
apiVersion: litmuschaos.io/v1alpha1
|
||||
description:
|
||||
message: "Kills a container belonging to an application pod \n"
|
||||
kind: ChaosExperiment
|
||||
metadata:
|
||||
name: container-kill
|
||||
labels:
|
||||
name: container-kill
|
||||
app.kubernetes.io/part-of: litmus
|
||||
app.kubernetes.io/component: chaosexperiment
|
||||
app.kubernetes.io/version: 3.0.0-beta7
|
||||
spec:
|
||||
definition:
|
||||
scope: Namespaced
|
||||
permissions:
|
||||
# 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"]
|
||||
image: "litmuschaos/go-runner:3.0.0-beta7"
|
||||
imagePullPolicy: Always
|
||||
args:
|
||||
- -c
|
||||
- ./experiments -name container-kill
|
||||
command:
|
||||
- /bin/bash
|
||||
env:
|
||||
|
||||
- name: TARGET_CONTAINER
|
||||
value: ''
|
||||
|
||||
# Period to wait before and after injection of chaos in sec
|
||||
- name: RAMP_TIME
|
||||
value: ''
|
||||
|
||||
- name: TARGET_PODS
|
||||
value: ''
|
||||
|
||||
# provide the chaos interval
|
||||
- name: CHAOS_INTERVAL
|
||||
value: '10'
|
||||
|
||||
- name: SIGNAL
|
||||
value: 'SIGKILL'
|
||||
|
||||
# provide the socket file path
|
||||
- name: SOCKET_PATH
|
||||
value: '/run/containerd/containerd.sock'
|
||||
|
||||
# provide the name of container runtime
|
||||
# for litmus LIB, it supports docker, containerd, crio
|
||||
# for pumba LIB, it supports docker only
|
||||
- name: CONTAINER_RUNTIME
|
||||
value: 'containerd'
|
||||
|
||||
# provide the total chaos duration
|
||||
- name: TOTAL_CHAOS_DURATION
|
||||
value: '20'
|
||||
|
||||
## percentage of total pods to target
|
||||
- name: PODS_AFFECTED_PERC
|
||||
value: ''
|
||||
|
||||
# To select pods on specific node(s)
|
||||
- name: NODE_LABEL
|
||||
value: ''
|
||||
|
||||
- name: LIB_IMAGE
|
||||
value: 'litmuschaos/go-runner:3.0.0-beta7'
|
||||
|
||||
## it defines the sequence of chaos execution for multiple target pods
|
||||
## supported values: serial, parallel
|
||||
- name: SEQUENCE
|
||||
value: 'parallel'
|
||||
|
||||
labels:
|
||||
name: container-kill
|
||||
app.kubernetes.io/part-of: litmus
|
||||
app.kubernetes.io/component: experiment-job
|
||||
app.kubernetes.io/runtime-api-usage: "true"
|
||||
app.kubernetes.io/version: 3.0.0-beta7
|
|
@ -0,0 +1,86 @@
|
|||
---
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
name: container-kill-sa
|
||||
namespace: default
|
||||
labels:
|
||||
name: container-kill-sa
|
||||
app.kubernetes.io/part-of: litmus
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: Role
|
||||
metadata:
|
||||
name: container-kill-sa
|
||||
namespace: default
|
||||
labels:
|
||||
name: container-kill-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"]
|
||||
# use litmus psp
|
||||
- apiGroups: ["policy"]
|
||||
resources: ["podsecuritypolicies"]
|
||||
verbs: ["use"]
|
||||
resourceNames: ["litmus"]
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: RoleBinding
|
||||
metadata:
|
||||
name: container-kill-sa
|
||||
namespace: default
|
||||
labels:
|
||||
name: container-kill-sa
|
||||
app.kubernetes.io/part-of: litmus
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: Role
|
||||
name: container-kill-sa
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: container-kill-sa
|
||||
namespace: default
|
||||
|
|
@ -0,0 +1,81 @@
|
|||
---
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
name: container-kill-sa
|
||||
namespace: default
|
||||
labels:
|
||||
name: container-kill-sa
|
||||
app.kubernetes.io/part-of: litmus
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: Role
|
||||
metadata:
|
||||
name: container-kill-sa
|
||||
namespace: default
|
||||
labels:
|
||||
name: container-kill-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: container-kill-sa
|
||||
namespace: default
|
||||
labels:
|
||||
name: container-kill-sa
|
||||
app.kubernetes.io/part-of: litmus
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: Role
|
||||
name: container-kill-sa
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: container-kill-sa
|
||||
namespace: default
|
||||
|
|
@ -0,0 +1,78 @@
|
|||
---
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
name: container-kill-sa
|
||||
namespace: nginx
|
||||
labels:
|
||||
name: container-kill-sa
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: Role
|
||||
metadata:
|
||||
name: container-kill-sa
|
||||
namespace: nginx
|
||||
labels:
|
||||
name: container-kill-sa
|
||||
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: container-kill-sa
|
||||
namespace: nginx
|
||||
labels:
|
||||
name: container-kill-sa
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: Role
|
||||
name: container-kill-sa
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: container-kill-sa
|
||||
namespace: nginx
|
||||
|
|
@ -1,40 +1,48 @@
|
|||
---
|
||||
apiVersion: litmuschaos.io/v1alpha1
|
||||
apiVersion: litmuchaos.io/v1alpha1
|
||||
kind: ChartServiceVersion
|
||||
metadata:
|
||||
createdAt: 2019-11-11T10:28:08Z
|
||||
name: disk-fill
|
||||
version: 0.1.0
|
||||
version: 0.0.12
|
||||
annotations:
|
||||
categories: Kubernetes
|
||||
vendor: LitmusChaos
|
||||
vendor: CNCF
|
||||
support: https://slack.kubernetes.io/
|
||||
spec:
|
||||
displayName: Disk Fill
|
||||
displayName: disk-fill
|
||||
categoryDescription: |
|
||||
Disk fill fault disrupts state of kubernetes resources.
|
||||
Disk fill contains chaos to disrupt state of kubernetes resources.
|
||||
- Causes (forced/graceful) Disk Stress by filling up the Ephemeral Storage of the Pod using one of it containers.
|
||||
- Causes Pod to get Evicted if the Pod exceeds it Ephemeral Storage Limit.
|
||||
- Tests the Ephemeral Storage Limits, to ensure those parameters are sufficient.
|
||||
keywords:
|
||||
- Kubernetes
|
||||
- K8S
|
||||
- Pod
|
||||
- Disk
|
||||
platforms:
|
||||
- GKE
|
||||
- EKS
|
||||
- AKS
|
||||
maturity: alpha
|
||||
chaosType: infra
|
||||
maintainers:
|
||||
- name: ksatchit
|
||||
email: karthik.s@harness.io
|
||||
experiments:
|
||||
- sock-shop
|
||||
- sock-shop-promProbe
|
||||
chaosType: infra
|
||||
email: karthik.s@mayadata.io
|
||||
minKubeVersion: 1.12.0
|
||||
provider:
|
||||
name: Mayadata
|
||||
labels:
|
||||
app.kubernetes.io/component: chartserviceversion
|
||||
app.kubernetes.io/version: ci
|
||||
app.kubernetes.io/version: 3.0.0-beta7
|
||||
links:
|
||||
- name: Source Code
|
||||
url: https://github.com/litmuschaos/litmus-go/tree/master/experiments/generic/disk-fill
|
||||
- name: Documentation
|
||||
url: https://litmuschaos.github.io/litmus/experiments/categories/contents
|
||||
url: https://litmuschaos.github.io/litmus/experiments/categories/pods/disk-fill/
|
||||
- name: Video
|
||||
url: https://www.youtube.com/watch?v=pbok737rUPQ
|
||||
icon:
|
||||
- url:
|
||||
- url:
|
||||
mediatype: ""
|
||||
chaosexpcrdlink: https://raw.githubusercontent.com/litmuschaos/chaos-charts/master/charts/generic/disk-fill/experiment.yaml
|
|
@ -1,4 +1,3 @@
|
|||
---
|
||||
apiVersion: litmuschaos.io/v1alpha1
|
||||
kind: ChaosEngine
|
||||
metadata:
|
||||
|
@ -10,9 +9,9 @@ spec:
|
|||
#ex. values: ns1:name=percona,ns2:run=nginx
|
||||
auxiliaryAppInfo: ''
|
||||
appinfo:
|
||||
appns: ''
|
||||
applabel: ''
|
||||
appkind: ''
|
||||
appns: 'default'
|
||||
applabel: 'app=nginx'
|
||||
appkind: 'deployment'
|
||||
chaosServiceAccount: disk-fill-sa
|
||||
experiments:
|
||||
- name: disk-fill
|
||||
|
@ -29,12 +28,10 @@ spec:
|
|||
- name: PODS_AFFECTED_PERC
|
||||
value: ''
|
||||
|
||||
# provide the name of container runtime, it supports docker, containerd, crio
|
||||
- name: CONTAINER_RUNTIME
|
||||
value: 'containerd'
|
||||
|
||||
# provide the socket file path
|
||||
- name: SOCKET_PATH
|
||||
value: "/run/containerd/containerd.sock"
|
||||
|
||||
# provide the name of container runtime
|
||||
# it supports docker, containerd, crio
|
||||
- name: CONTAINER_RUNTIME
|
||||
value: "containerd"
|
||||
|
||||
value: '/run/containerd/containerd.sock'
|
|
@ -0,0 +1,123 @@
|
|||
apiVersion: litmuschaos.io/v1alpha1
|
||||
description:
|
||||
message: |
|
||||
Fillup Ephemeral Storage of a Resource
|
||||
kind: ChaosExperiment
|
||||
metadata:
|
||||
name: disk-fill
|
||||
labels:
|
||||
name: disk-fill
|
||||
app.kubernetes.io/part-of: litmus
|
||||
app.kubernetes.io/component: chaosexperiment
|
||||
app.kubernetes.io/version: 3.0.0-beta7
|
||||
spec:
|
||||
definition:
|
||||
scope: Namespaced
|
||||
permissions:
|
||||
# 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"]
|
||||
image: "litmuschaos/go-runner:3.0.0-beta7"
|
||||
imagePullPolicy: Always
|
||||
args:
|
||||
- -c
|
||||
- ./experiments -name disk-fill
|
||||
command:
|
||||
- /bin/bash
|
||||
env:
|
||||
|
||||
- name: TARGET_CONTAINER
|
||||
value: ''
|
||||
|
||||
- name: FILL_PERCENTAGE
|
||||
value: '80'
|
||||
|
||||
- name: TOTAL_CHAOS_DURATION
|
||||
value: '60'
|
||||
|
||||
# Period to wait before and after injection of chaos in sec
|
||||
- name: RAMP_TIME
|
||||
value: ''
|
||||
|
||||
# provide the data block size
|
||||
# supported unit is KB
|
||||
- name: DATA_BLOCK_SIZE
|
||||
value: '256'
|
||||
|
||||
- name: TARGET_PODS
|
||||
value: ''
|
||||
|
||||
- name: EPHEMERAL_STORAGE_MEBIBYTES
|
||||
value: ''
|
||||
|
||||
# To select pods on specific node(s)
|
||||
- name: NODE_LABEL
|
||||
value: ''
|
||||
|
||||
## percentage of total pods to target
|
||||
- name: PODS_AFFECTED_PERC
|
||||
value: ''
|
||||
|
||||
- name: LIB_IMAGE
|
||||
value: 'litmuschaos/go-runner:3.0.0-beta7'
|
||||
|
||||
# provide the name of container runtime, it supports docker, containerd, crio
|
||||
- name: CONTAINER_RUNTIME
|
||||
value: 'containerd'
|
||||
|
||||
# provide the socket file path
|
||||
- name: SOCKET_PATH
|
||||
value: '/run/containerd/containerd.sock'
|
||||
|
||||
## it defines the sequence of chaos execution for multiple target pods
|
||||
## supported values: serial, parallel
|
||||
- name: SEQUENCE
|
||||
value: 'parallel'
|
||||
|
||||
labels:
|
||||
name: disk-fill
|
||||
app.kubernetes.io/part-of: litmus
|
||||
app.kubernetes.io/component: experiment-job
|
||||
app.kubernetes.io/host-path-usage: "true"
|
||||
app.kubernetes.io/version: 3.0.0-beta7
|
|
@ -0,0 +1,85 @@
|
|||
---
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
name: disk-fill-sa
|
||||
namespace: default
|
||||
labels:
|
||||
name: disk-fill-sa
|
||||
app.kubernetes.io/part-of: litmus
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: Role
|
||||
metadata:
|
||||
name: disk-fill-sa
|
||||
namespace: default
|
||||
labels:
|
||||
name: disk-fill-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"]
|
||||
# use litmus psp
|
||||
- apiGroups: ["policy"]
|
||||
resources: ["podsecuritypolicies"]
|
||||
verbs: ["use"]
|
||||
resourceNames: ["litmus"]
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: RoleBinding
|
||||
metadata:
|
||||
name: disk-fill-sa
|
||||
namespace: default
|
||||
labels:
|
||||
name: disk-fill-sa
|
||||
app.kubernetes.io/part-of: litmus
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: Role
|
||||
name: disk-fill-sa
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: disk-fill-sa
|
||||
namespace: default
|
|
@ -0,0 +1,80 @@
|
|||
---
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
name: disk-fill-sa
|
||||
namespace: default
|
||||
labels:
|
||||
name: disk-fill-sa
|
||||
app.kubernetes.io/part-of: litmus
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: Role
|
||||
metadata:
|
||||
name: disk-fill-sa
|
||||
namespace: default
|
||||
labels:
|
||||
name: disk-fill-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: disk-fill-sa
|
||||
namespace: default
|
||||
labels:
|
||||
name: disk-fill-sa
|
||||
app.kubernetes.io/part-of: litmus
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: Role
|
||||
name: disk-fill-sa
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: disk-fill-sa
|
||||
namespace: default
|
|
@ -0,0 +1,47 @@
|
|||
apiVersion: litmuchaos.io/v1alpha1
|
||||
kind: ChartServiceVersion
|
||||
metadata:
|
||||
createdAt: 2020-07-14T10:28:08Z
|
||||
name: docker-service-kill
|
||||
version: 0.1.1
|
||||
annotations:
|
||||
categories: Kubernetes
|
||||
vendor: CNCF
|
||||
support: https://slack.kubernetes.io/
|
||||
spec:
|
||||
displayName: docker-service-kill
|
||||
categoryDescription: |
|
||||
docker-service-kill contains killing docker service gracefully for a certain chaos duration.
|
||||
- Causes replicas may be evicted or becomes unreachable on account on nodes turning unschedulable (Not Ready) due to docker service kill.
|
||||
- The application node should be healthy once chaos is stopped and the services are reaccessable.
|
||||
keywords:
|
||||
- Kubernetes
|
||||
- K8S
|
||||
- Node
|
||||
- Service
|
||||
- Docker
|
||||
platforms:
|
||||
- GKE
|
||||
- AKS
|
||||
maturity: alpha
|
||||
maintainers:
|
||||
- name: Ankur Ghosh
|
||||
email: ankur.ghosh3@wipro.com
|
||||
minKubeVersion: 1.12.0
|
||||
provider:
|
||||
name: Wipro
|
||||
labels:
|
||||
app.kubernetes.io/component: chartserviceversion
|
||||
app.kubernetes.io/version: 3.0.0-beta7
|
||||
links:
|
||||
- name: Source Code
|
||||
url: https://github.com/litmuschaos/litmus-go/tree/master/experiments/generic/docker-service-kill
|
||||
- name: Documentation
|
||||
url: https://litmuschaos.github.io/litmus/experiments/categories/nodes/docker-service-kill/
|
||||
- name: Video
|
||||
url:
|
||||
|
||||
icon:
|
||||
- base64data: ""
|
||||
mediatype: ""
|
||||
chaosexpcrdlink: https://raw.githubusercontent.com/litmuschaos/chaos-charts/master/charts/generic/docker-service-kill/experiment.yaml
|
|
@ -1,4 +1,3 @@
|
|||
---
|
||||
apiVersion: litmuschaos.io/v1alpha1
|
||||
kind: ChaosEngine
|
||||
metadata:
|
||||
|
@ -13,15 +12,12 @@ spec:
|
|||
- name: docker-service-kill
|
||||
spec:
|
||||
components:
|
||||
# nodeSelector:
|
||||
# nodeSelector:
|
||||
# # provide the node labels
|
||||
# kubernetes.io/hostname: 'node02'
|
||||
env:
|
||||
- name: TOTAL_CHAOS_DURATION
|
||||
value: '90' # in seconds
|
||||
|
||||
|
||||
- name: TARGET_NODE
|
||||
value: ''
|
||||
|
||||
- name: NODE_LABEL
|
||||
value: ""
|
||||
value: ''
|
|
@ -1,8 +1,7 @@
|
|||
---
|
||||
apiVersion: litmuschaos.io/v1alpha1
|
||||
description:
|
||||
message: |
|
||||
Kills the Docker service on the application node to check the resiliency.
|
||||
Kills the docker service on the application node to check the resiliency.
|
||||
kind: ChaosExperiment
|
||||
metadata:
|
||||
name: docker-service-kill
|
||||
|
@ -10,7 +9,7 @@ metadata:
|
|||
name: docker-service-kill
|
||||
app.kubernetes.io/part-of: litmus
|
||||
app.kubernetes.io/component: chaosexperiment
|
||||
app.kubernetes.io/version: ci
|
||||
app.kubernetes.io/version: 3.0.0-beta7
|
||||
spec:
|
||||
definition:
|
||||
scope: Cluster
|
||||
|
@ -18,76 +17,66 @@ spec:
|
|||
# Create and monitor the experiment & helper pods
|
||||
- apiGroups: [""]
|
||||
resources: ["pods"]
|
||||
verbs:
|
||||
[
|
||||
"create",
|
||||
"delete",
|
||||
"get",
|
||||
"list",
|
||||
"patch",
|
||||
"update",
|
||||
"deletecollection",
|
||||
]
|
||||
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"]
|
||||
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
|
||||
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 commands inside target container
|
||||
verbs: ["get","list","watch"]
|
||||
# for creating and managing to execute comands inside target container
|
||||
- apiGroups: [""]
|
||||
resources: ["pods/exec"]
|
||||
verbs: ["get", "list", "create"]
|
||||
verbs: ["get","list","create"]
|
||||
# for configuring and monitor the experiment job by the chaos-runner pod
|
||||
- apiGroups: ["batch"]
|
||||
resources: ["jobs"]
|
||||
verbs: ["create", "list", "get", "delete", "deletecollection"]
|
||||
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"]
|
||||
resources: ["chaosengines","chaosexperiments","chaosresults"]
|
||||
verbs: ["create","list","get","patch","update","delete"]
|
||||
# for experiment to perform node status checks
|
||||
- apiGroups: [""]
|
||||
resources: ["nodes"]
|
||||
verbs: ["get", "list"]
|
||||
image: "litmuschaos.docker.scarf.sh/litmuschaos/go-runner:latest"
|
||||
verbs: ["get","list"]
|
||||
image: "litmuschaos/go-runner:3.0.0-beta7"
|
||||
imagePullPolicy: Always
|
||||
args:
|
||||
- -c
|
||||
- ./experiments -name docker-service-kill
|
||||
- -c
|
||||
- ./experiments -name docker-service-kill
|
||||
command:
|
||||
- /bin/bash
|
||||
- /bin/bash
|
||||
env:
|
||||
- name: TOTAL_CHAOS_DURATION
|
||||
value: "90" # in seconds
|
||||
|
||||
- name: TOTAL_CHAOS_DURATION
|
||||
value: '90' # in seconds
|
||||
|
||||
# Period to wait before injection of chaos in sec
|
||||
- name: RAMP_TIME
|
||||
value: ""
|
||||
# Period to wait before injection of chaos in sec
|
||||
- name: RAMP_TIME
|
||||
value: ''
|
||||
|
||||
- name: NODE_LABEL
|
||||
value: ""
|
||||
- name: NODE_LABEL
|
||||
value: ''
|
||||
|
||||
# provide lib image
|
||||
- name: LIB_IMAGE
|
||||
value: "ubuntu:16.04"
|
||||
|
||||
# provide the target node name
|
||||
- name: TARGET_NODE
|
||||
value: ""
|
||||
|
||||
- name: DEFAULT_HEALTH_CHECK
|
||||
value: "false"
|
||||
# provide lib image
|
||||
- name: LIB_IMAGE
|
||||
value: 'ubuntu:16.04'
|
||||
|
||||
# provide the target node name
|
||||
- name: TARGET_NODE
|
||||
value: ''
|
||||
|
||||
labels:
|
||||
name: docker-service-kill
|
||||
app.kubernetes.io/part-of: litmus
|
||||
app.kubernetes.io/component: experiment-job
|
||||
app.kubernetes.io/service-kill: "true"
|
||||
app.kubernetes.io/version: ci
|
||||
app.kubernetes.io/version: 3.0.0-beta7
|
||||
|
|
@ -0,0 +1,71 @@
|
|||
---
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
name: docker-service-kill-sa
|
||||
namespace: default
|
||||
labels:
|
||||
name: docker-service-kill-sa
|
||||
app.kubernetes.io/part-of: litmus
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
name: docker-service-kill-sa
|
||||
labels:
|
||||
name: docker-service-kill-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"]
|
||||
# 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"]
|
||||
# for experiment to perform node status checks
|
||||
- apiGroups: [""]
|
||||
resources: ["nodes"]
|
||||
verbs: ["get","list"]
|
||||
# use litmus psp
|
||||
- apiGroups: ["policy"]
|
||||
resources: ["podsecuritypolicies"]
|
||||
verbs: ["use"]
|
||||
resourceNames: ["litmus"]
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRoleBinding
|
||||
metadata:
|
||||
name: docker-service-kill-sa
|
||||
labels:
|
||||
name: docker-service-kill-sa
|
||||
app.kubernetes.io/part-of: litmus
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: ClusterRole
|
||||
name: docker-service-kill-sa
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: docker-service-kill-sa
|
||||
namespace: default
|
|
@ -0,0 +1,66 @@
|
|||
---
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
name: docker-service-kill-sa
|
||||
namespace: default
|
||||
labels:
|
||||
name: docker-service-kill-sa
|
||||
app.kubernetes.io/part-of: litmus
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
name: docker-service-kill-sa
|
||||
labels:
|
||||
name: docker-service-kill-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"]
|
||||
# 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"]
|
||||
# for experiment to perform node status checks
|
||||
- apiGroups: [""]
|
||||
resources: ["nodes"]
|
||||
verbs: ["get","list"]
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRoleBinding
|
||||
metadata:
|
||||
name: docker-service-kill-sa
|
||||
labels:
|
||||
name: docker-service-kill-sa
|
||||
app.kubernetes.io/part-of: litmus
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: ClusterRole
|
||||
name: docker-service-kill-sa
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: docker-service-kill-sa
|
||||
namespace: default
|
|
@ -0,0 +1,80 @@
|
|||
apiVersion: litmuchaos.io/v1alpha1
|
||||
kind: ChartServiceVersion
|
||||
metadata:
|
||||
createdAt: 2019-09-26T10:28:08Z
|
||||
name: generic
|
||||
version: 0.1.16
|
||||
annotations:
|
||||
categories: Kubernetes
|
||||
chartDescription: Injects generic kubernetes chaos
|
||||
spec:
|
||||
displayName: Generic Chaos
|
||||
categoryDescription: >
|
||||
Kubernetes is an open-source system for automating deployment, scaling, and management of containerized applications. It groups containers that make up an application into logical units for easier management and discovery. It will install all the experiments which can be used to inject chaos into containerized applications.
|
||||
|
||||
experiments:
|
||||
- pod-delete
|
||||
- container-kill
|
||||
- pod-cpu-hog
|
||||
- pod-network-loss
|
||||
- pod-network-latency
|
||||
- pod-network-corruption
|
||||
- node-drain
|
||||
- node-cpu-hog
|
||||
- disk-fill
|
||||
- node-memory-hog
|
||||
- pod-memory-hog
|
||||
- kubelet-service-kill
|
||||
- pod-network-duplication
|
||||
- node-taint
|
||||
- docker-service-kill
|
||||
- pod-autoscaler
|
||||
- node-io-stress
|
||||
- pod-io-stress
|
||||
- node-restart
|
||||
- pod-dns-error
|
||||
- pod-dns-spoof
|
||||
- pod-cpu-hog-exec
|
||||
- pod-memory-hog-exec
|
||||
- pod-network-partition
|
||||
- pod-http-latency
|
||||
- pod-http-status-code
|
||||
- pod-http-modify-header
|
||||
- pod-http-modify-body
|
||||
- pod-http-reset-peer
|
||||
keywords:
|
||||
- Kubernetes
|
||||
- K8S
|
||||
- Container
|
||||
- Node
|
||||
- Pod
|
||||
- Disk
|
||||
- IO
|
||||
- Filesystem
|
||||
- Network
|
||||
- CPU
|
||||
- Memory
|
||||
- Stress
|
||||
- Service
|
||||
- DNS
|
||||
- Scale
|
||||
- Http
|
||||
maintainers:
|
||||
- name: ksatchit
|
||||
email: karthik.s@mayadata.io
|
||||
minKubeVersion: 1.12.0
|
||||
provider:
|
||||
name: Mayadata
|
||||
links:
|
||||
- name: Kubernetes Website
|
||||
url: https://kubernetes.io
|
||||
- name: Source Code
|
||||
url: https://github.com/kubernetes/kubernetes
|
||||
- name: Kubernetes Slack
|
||||
url: https://slack.kubernetes.io/
|
||||
- name: Documentation
|
||||
url: https://litmuschaos.github.io/litmus/experiments/categories/contents/#generic
|
||||
icon:
|
||||
- url: https://raw.githubusercontent.com/litmuschaos/charthub.litmuschaos.io/master/public/litmus.ico
|
||||
mediatype: image/png
|
||||
chaosexpcrdlink: https://raw.githubusercontent.com/litmuschaos/chaos-charts/master/charts/generic/experiments.yaml
|
|
@ -1,6 +1,5 @@
|
|||
---
|
||||
packageName: kubernetes
|
||||
faults:
|
||||
packageName: generic
|
||||
experiments:
|
||||
- name: pod-delete
|
||||
CSV: pod-delete.chartserviceversion.yaml
|
||||
desc: "pod-delete"
|
||||
|
@ -9,7 +8,7 @@ faults:
|
|||
desc: "container-kill"
|
||||
- name: pod-network-loss
|
||||
CSV: pod-network-loss.chartserviceversion.yaml
|
||||
desc: "pod-network-loss"
|
||||
desc: "Pod-network-loss"
|
||||
- name: pod-network-latency
|
||||
CSV: pod-network-latency.chartserviceversion.yaml
|
||||
desc: "pod-network-latency"
|
||||
|
@ -31,12 +30,6 @@ faults:
|
|||
- name: node-memory-hog
|
||||
CSV: node-memory-hog.chartserviceversion.yaml
|
||||
desc: "node-memory-hog"
|
||||
- name: node-poweroff
|
||||
CSV: node-poweroff.chartserviceversion.yaml
|
||||
desc: "node-poweroff"
|
||||
- name: node-restart
|
||||
CSV: node-restart.chartserviceversion.yaml
|
||||
desc: "node-restart"
|
||||
- name: pod-memory-hog
|
||||
CSV: pod-memory-hog.chartserviceversion.yaml
|
||||
desc: "pod-memory-hog"
|
||||
|
@ -61,6 +54,9 @@ faults:
|
|||
- name: pod-io-stress
|
||||
CSV: pod-io-stress.chartserviceversion.yaml
|
||||
desc: "pod-io-stress"
|
||||
- name: node-restart
|
||||
CSV: node-restart.chartserviceversion.yaml
|
||||
desc: "node-restart"
|
||||
- name: pod-dns-error
|
||||
CSV: pod-dns-error.chartserviceversion.yaml
|
||||
desc: "pod-dns-error"
|
||||
|
@ -91,12 +87,3 @@ faults:
|
|||
- name: pod-http-reset-peer
|
||||
CSV: pod-http-reset-peer.chartserviceversion.yaml
|
||||
desc: "pod-http-reset-peer"
|
||||
- name: node-network-latency
|
||||
CSV: node-network-latency.chartserviceversion.yaml
|
||||
desc: "node-network-latency"
|
||||
- name: node-network-loss
|
||||
CSV: node-network-loss.chartserviceversion.yaml
|
||||
desc: "node-network-loss"
|
||||
- name: pod-network-rate-limit
|
||||
CSV: pod-network-rate-limit.chartserviceversion.yaml
|
||||
desc: "pod-network-rate-limit"
|
Before Width: | Height: | Size: 959 B After Width: | Height: | Size: 959 B |
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.2 KiB |
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.7 KiB |
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 2.6 KiB |
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.4 KiB |
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 1.9 KiB |
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 2.0 KiB After Width: | Height: | Size: 2.0 KiB |
Before Width: | Height: | Size: 2.0 KiB After Width: | Height: | Size: 2.0 KiB |
Before Width: | Height: | Size: 959 B After Width: | Height: | Size: 959 B |
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |