Skip to content

Commit

Permalink
chore(spring-boot): adding spring boot charts
Browse files Browse the repository at this point in the history
Signed-off-by: Shubham Chaudhary <[email protected]>
  • Loading branch information
ispeakc0de committed Nov 17, 2022
1 parent 6596977 commit 5871cce
Show file tree
Hide file tree
Showing 29 changed files with 1,298 additions and 0 deletions.
74 changes: 74 additions & 0 deletions .idea/workspace.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

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.
30 changes: 30 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,30 @@
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:
# set chaos duration (in sec) as desired
- name: TOTAL_CHAOS_DURATION
value: '30'

# Cron expression like */1 * * * * ? can be set to enable chaos monkey AppKiller assault on a schedule
- name: CM_KILL_APPLICATION_CRON
value: '*/1 * * * * ?'

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

84 changes: 84 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,84 @@
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:

# Cron expression like */1 * * * * ? can be set to enable chaos monkey AppKiller assault on a schedule
- name: CM_KILL_APPLICATION_CRON
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-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
34 changes: 34 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,34 @@
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'

# Cron expression like */1 * * * * ? can be set to enable cpu assault on a schedule
- name: CM_CPU_CRON
value: '*/1 * * * * ?'

# Final fraction of used cpu by assault. 0.95 equals 95 %.
- name: CM_CPU_LOAD_TARGET_FRACTION
value: '0.8'

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

Loading

0 comments on commit 5871cce

Please sign in to comment.