Skip to content

Commit

Permalink
chore(spring-boot): adding spring boot charts (#575)
Browse files Browse the repository at this point in the history
* chore(spring-boot): adding spring boot charts

Signed-off-by: Shubham Chaudhary <[email protected]>
  • Loading branch information
ispeakc0de authored Nov 21, 2022
1 parent 6596977 commit f41ae89
Show file tree
Hide file tree
Showing 33 changed files with 1,588 additions and 0 deletions.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added charts/spring-boot/icons/spring-boot.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
26 changes: 26 additions & 0 deletions charts/spring-boot/spring-boot-app-kill/engine.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
apiVersion: litmuschaos.io/v1alpha1
kind: ChaosEngine
metadata:
name: spring-boot-chaos
namespace: default
spec:
appinfo:
appns: 'default'
applabel: 'app=spring-boot'
appkind: 'deployment'
# It can be active/stop
engineState: 'active'
chaosServiceAccount: spring-boot-app-kill-sa
experiments:
- name: spring-boot-app-kill
spec:
components:
env:
# port of the spring boot application
- name: CM_PORT
value: ''

## percentage of total pods to target
- name: PODS_AFFECTED_PERC
value: ''

89 changes: 89 additions & 0 deletions charts/spring-boot/spring-boot-app-kill/experiment.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
apiVersion: litmuschaos.io/v1alpha1
description:
message: |
It can target random pods with a Spring Boot application and allows configuring the assaults to inject app-kill
kind: ChaosExperiment
metadata:
name: spring-boot-app-kill
labels:
name: spring-boot-app-kill
app.kubernetes.io/part-of: litmus
app.kubernetes.io/component: chaosexperiment
app.kubernetes.io/version: latest
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" ]
# 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
- 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:latest"
imagePullPolicy: Always
args:
- -c
- ./experiments -name spring-boot-app-kill
command:
- /bin/bash
env:
# port of the spring boot application
- name: CM_PORT
value: ''

#it contains number of requests are to be attacked
# n value means nth request will be affected
- name: CM_LEVEL
value: '1'

# it limits watched packages/classes/methods
- name: CM_WATCHED_CUSTOM_SERVICES
value: ''

# provide name of watcher
# it supports controller, restController, service, repository, component, webClient
- name: CM_WATCHERS
value: 'restController'

## percentage of total pods to target
- name: PODS_AFFECTED_PERC
value: ''

## Period to wait before and after injection of chaos
- name: RAMP_TIME
value: ''

## it defines the sequence of chaos execution for multiple target pods
## supported values: serial, parallel
- name: SEQUENCE
value: 'parallel'

## env var that describes the library used to execute the chaos
## default: litmus. Supported values: litmus
- name: LIB
value: 'litmus'

labels:
name: spring-boot-app-kill
app.kubernetes.io/part-of: litmus
app.kubernetes.io/component: experiment-job
app.kubernetes.io/version: latest
61 changes: 61 additions & 0 deletions charts/spring-boot/spring-boot-app-kill/rbac.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: spring-boot-app-kill-sa
namespace: default
labels:
name: spring-boot-app-kill-sa
app.kubernetes.io/part-of: litmus
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: spring-boot-app-kill-sa
namespace: default
labels:
name: spring-boot-app-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"]
# 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
- 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: spring-boot-app-kill-sa
namespace: default
labels:
name: spring-boot-app-kill-sa
app.kubernetes.io/part-of: litmus
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: spring-boot-app-kill-sa
subjects:
- kind: ServiceAccount
name: spring-boot-app-kill-sa
namespace: default

Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
apiVersion: litmuchaos.io/v1alpha1
kind: ChartServiceVersion
metadata:
createdAt: 2022-11-17T10:28:08Z
name: spring-boot-app-kill
version: 0.1.0
annotations:
categories: Spring Boot
vendor: CNCF
support: https://slack.kubernetes.io/
spec:
displayName: spring-boot-app-kill
categoryDescription: |
This experiment allows injecting Chaos Monkey app-kill assaults on Spring Boot applications, which have the [Chaos Monkey for Spring Boot](https://codecentric.github.io/chaos-monkey-spring-boot/) in their classpath.
It can target random pods with a Spring Boot application and allows configuring the assaults to inject app-kill. It tests the resiliency of the system when some applications are having unexpected faulty behavior.
keywords:
- Kubernetes
- K8S
- Spring Boot
- Pod
platforms:
- GKE
- Konvoy
- Packet(Kubeadm)
- Minikube
- EKS
maturity: alpha
maintainers:
- name: Stephane Cazeaux
email: [email protected]
- name: Shubham Chaudhary
email: [email protected]
minKubeVersion: 1.12.0
provider:
name: Orange
labels:
app.kubernetes.io/component: chartserviceversion
app.kubernetes.io/version: latest
links:
- name: Source Code
url: https://github.com/litmuschaos/litmus-go/tree/master/experiments/spring-boot/spring-boot-app-kill
- name: Documentation
url: https://litmuschaos.github.io/litmus/experiments/categories/spring-boot/spring-boot-app-kill
- name: Video
url:
icon:
- url:
mediatype: ""
chaosexpcrdlink: https://raw.githubusercontent.com/litmuschaos/chaos-charts/master/charts/spring-boot-app-kill/experiment.yaml
35 changes: 35 additions & 0 deletions charts/spring-boot/spring-boot-cpu-stress/engine.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
apiVersion: litmuschaos.io/v1alpha1
kind: ChaosEngine
metadata:
name: spring-boot-chaos
namespace: default
spec:
appinfo:
appns: 'default'
applabel: 'app=spring-boot'
appkind: 'deployment'
# It can be active/stop
engineState: 'active'
chaosServiceAccount: spring-boot-cpu-stress-sa
experiments:
- name: spring-boot-cpu-stress
spec:
components:
env:
# set chaos duration (in sec) as desired
- name: TOTAL_CHAOS_DURATION
value: '30'

# it contains fraction of used cpu. 0.95 equals 95%.
# it supports value in range [0.1,1.0]
- name: CPU_LOAD_FRACTION
value: '0.9'

# port of the spring boot application
- name: CM_PORT
value: ''

## percentage of total pods to target
- name: PODS_AFFECTED_PERC
value: ''

98 changes: 98 additions & 0 deletions charts/spring-boot/spring-boot-cpu-stress/experiment.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
apiVersion: litmuschaos.io/v1alpha1
description:
message: |
It can target random pods with a Spring Boot application and allows configuring the assaults to inject cpu-stress
kind: ChaosExperiment
metadata:
name: spring-boot-cpu-stress
labels:
name: spring-boot-cpu-stress
app.kubernetes.io/part-of: litmus
app.kubernetes.io/component: chaosexperiment
app.kubernetes.io/version: latest
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" ]
# 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
- 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:latest"
imagePullPolicy: Always
args:
- -c
- ./experiments -name spring-boot-cpu-stress
command:
- /bin/bash
env:

# it contains fraction of cpu to be stressed(0.95 equals 95%)
# it supports value in range [0.1,1.0]
- name: CPU_LOAD_FRACTION
value: '0.9'

# port of the spring boot application
- name: CM_PORT
value: ''

#it contains number of requests are to be attacked
# n value means nth request will be affected
- name: CM_LEVEL
value: '1'

# it limits watched packages/classes/methods
- name: CM_WATCHED_CUSTOM_SERVICES
value: ''

# provide name of watcher
# it supports controller, restController, service, repository, component, webClient
- name: CM_WATCHERS
value: 'restController'

- name: TOTAL_CHAOS_DURATION
value: '30'

## percentage of total pods to target
- name: PODS_AFFECTED_PERC
value: ''

## Period to wait before and after injection of chaos
- name: RAMP_TIME
value: ''

## it defines the sequence of chaos execution for multiple target pods
## supported values: serial, parallel
- name: SEQUENCE
value: 'parallel'

## env var that describes the library used to execute the chaos
## default: litmus. Supported values: litmus
- name: LIB
value: 'litmus'

labels:
name: spring-boot-cpu-stress
app.kubernetes.io/part-of: litmus
app.kubernetes.io/component: experiment-job
app.kubernetes.io/version: latest
Loading

0 comments on commit f41ae89

Please sign in to comment.