Skip to content

Commit

Permalink
[Cherry Pick to 1.5.1] Inhibit experiment image creation from branche…
Browse files Browse the repository at this point in the history
…s of litmus repo (#1682)

* (chore)releases: updated release artefacts (#1552)

Signed-off-by: ksatchit <karthik.s@mayadata.io>

* (chore)roadmap: add item for litmus portal (#1553)

Signed-off-by: ksatchit <karthik.s@mayadata.io>

* Add merge label and auto-merge feature in gihtub actions (#1556)

Signed-off-by: Udit Gaurav <uditgaurav@gmail.com>

* refactor(readme): Add more details in pod network corruption readme (#1555)

* refactor(readme): Add more details in ood network corruption readme

Signed-off-by: Udit Gaurav <uditgaurav@gmail.com>

* Update experiments/generic/pod_network_corruption/README.md

Co-authored-by: Karthik Satchitanand <karthik.s@mayadata.io>

Co-authored-by: Karthik Satchitanand <karthik.s@mayadata.io>

* refactor(experiment): Add pod memory hog default memory consumption (#1576)

Signed-off-by: Udit Gaurav <uditgaurav@gmail.com>

* bug(indentation): Fix the indentation in kubelet service kill experiment (#1581)

Signed-off-by: Udit Gaurav <uditgaurav@gmail.com>

* (chore)roadmap: update availability of scaffold scripts to generate experiment code (#1584)

Signed-off-by: ksatchit <karthik.s@mayadata.io>

* (chore): update schematic representation of litmus arch (#1589)

* (chore): update schematic representation of litmus arch

Signed-off-by: ksatchit <karthik.s@mayadata.io>

* (refactor)demo: add an updated demo video

Signed-off-by: ksatchit <karthik.s@mayadata.io>

* (chore)governance: update maintainer email IDs (#1599)

Signed-off-by: ksatchit <karthik.s@mayadata.io>

* (chore)content: add folder to discuss chaos engg (#1619)

Signed-off-by: ksatchit <karthik.s@mayadata.io>

* Update the backlog in Roadmap with IO-Chaos

* Stopped CircleCi Build for master branch (#1625)

* Stopped CircleCi Build for master

Signed-off-by: gdsoumya <gdsoumya@gmail.com>

* Update config.yml

* Update config.yml

* Update config.yml

* Update config.yml

* Update config.yml

* (chore)roadmap: add backlog item on chaos workflows for application benchmarks (#1626)

Signed-off-by: ksatchit <karthik.s@mayadata.io>

* (chore)ci: inhibit push of ansible-runner image from litmus (#1660)

Signed-off-by: ksatchit <karthik.s@mayadata.io>

Co-authored-by: UDIT GAURAV <35391335+uditgaurav@users.noreply.github.com>
Co-authored-by: Uma Mukkara <uma@mayadata.io>
Co-authored-by: Soumya Ghosh Dastidar <44349253+gdsoumya@users.noreply.github.com>
  • Loading branch information
4 people committed Jul 9, 2020
1 parent 993d2e7 commit 8ba20bc
Show file tree
Hide file tree
Showing 15 changed files with 174 additions and 47 deletions.
9 changes: 9 additions & 0 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
version: 2
jobs:
build:
branches:
ignore:
- master
machine: true
steps:
- run: echo "hello"
23 changes: 23 additions & 0 deletions .github/auto-merge.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# Configuration for probot-auto-merge - https://github.com/bobvanderlinden/probot-auto-merge

reportStatus: true
updateBranch: true
deleteBranchAfterMerge: true
mergeMethod: squash

minApprovals:
COLLABORATOR: 0
maxRequestedChanges:
NONE: 0
blockingLabels:
- DO NOT MERGE
- WIP
- blocked

# Will merge whenever the above conditions are met, but also
# the owner has approved or merge label was added.
rules:
- minApprovals:
OWNER: 1
- requiredLabels:
- merge
20 changes: 17 additions & 3 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,9 @@ jobs:
EXPERIMENT_IMAGE: litmuschaos/ansible-runner
EXPERIMENT_IMAGE_TAG: ci
IMAGE_PULL_POLICY: IfNotPresent
CONTAINER_KILL_HELPER_IMAGE: litmuschaos/container-kill-helper
CONTAINER_KILL_HELPER_TAG: latest
LIB: containerd
LITMUS_CLEANUP: true

- name: Running node-cpu-hog chaos experiment
Expand Down Expand Up @@ -114,7 +117,8 @@ jobs:
- name: Check the test run
if: |
startsWith(github.event.comment.body, '/run-e2e-pod-delete') || startsWith(github.event.comment.body, '/run-e2e-container-kill') ||
startsWith(github.event.comment.body, '/run-e2e-node-cpu-hog') || startsWith(github.event.comment.body, '/run-e2e-node-memory-hog')
startsWith(github.event.comment.body, '/run-e2e-node-cpu-hog') || startsWith(github.event.comment.body, '/run-e2e-node-memory-hog') ||
startsWith(github.event.comment.body, '/run-e2e-all')
run: |
echo ::set-env name=TEST_RUN::true
Expand All @@ -125,7 +129,7 @@ jobs:
comment-id: "${{ github.event.comment.id }}"
body: |
**Test Result:** All tests are passed
reactions: hooray
reactions: hooray

- name: Check for any job failed
if: ${{ failure() }}
Expand All @@ -147,4 +151,14 @@ jobs:
comment-id: "${{ github.event.comment.id }}"
body: |
**Test Result:** No test found
reactions: eyes
reactions: eyes

merge:
if: contains(github.event.comment.html_url, '/pull/') && startsWith(github.event.comment.body, '/merge')
runs-on: ubuntu-latest
steps:
- name: Add a merge label when all jobs are passed
uses: actions-ecosystem/action-add-labels@v1
with:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
labels: merge
4 changes: 2 additions & 2 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,5 +29,5 @@ script:
- make lint-checks
- make security-checks
after_success:
- make push
- if [[ $TRAVIS_PULL_REQUEST == 'false' ]]; then sonar-scanner; fi
#- make push
- if [[ $TRAVIS_PULL_REQUEST == 'false' ]]; then sonar-scanner; fi
24 changes: 12 additions & 12 deletions MAINTAINERS
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Official list of LitmusChaos Maintainers.
#
# Names added to this file should be in the following format:
# Individual's name,@githubhandle, Company Name
# Individual's Name,@githubhandle, Email Address, Company Name
#
# Each of the LitmusChaos sub project may have one or more of the
# following maintainers and list of reviewers who are
Expand All @@ -11,17 +11,17 @@
#
#Maintainers

"Chandan Kumar",@chandankumar4,MayaData
"Jayesh Kumar",@k8s-dev,Self
"Karthik Satchitanand",@ksatchit,MayaData
"Maria Kotlyarevskaya",@Jasstkn,Dino Systems
"Sumit Nagal",@sumitnagal,Intuit
"Uma Mukkara",@umamukkara,MayaData
"Chandan Kumar",@chandankumar4,chandan.kumar@mayadata.io,MayaData
"Jayesh Kumar",@k8s-dev,jayeshece08@gmail.com,Self
"Karthik Satchitanand",@ksatchit,karthik.s@mayadata.io,MayaData
"Maria Kotlyarevskaya",@Jasstkn,jasssstkn@yahoo.com,Dino Systems
"Sumit Nagal",@sumitnagal,sumit_nagal@intuit.com,Intuit
"Uma Mukkara",@umamukkara,uma@mayadata.io,MayaData


#Reviewers
"Amit Bhatt",@amitbhatt818,MayaData
"Rahul M Chheda",@rahulchheda,MayaData
"Raj Das",@rajdas98,MayaData
"Shubham Chaudhary",@ispeakc0de,MayaData
"Udit Gaurav",@uditgaurav,MayaData
"Amit Bhatt",@amitbhatt818,amit.bhatt@mayadata.io,MayaData
"Rahul M Chheda",@rahulchheda,rahul.chheda1997@gmail.com,InfraCloud Technologies
"Raj Das",@rajdas98,raj.das@mayadata.io,MayaData
"Shubham Chaudhary",@ispeakc0de,shubham.chaudhary@mayadata.io,MayaData
"Udit Gaurav",@uditgaurav,udit.gaurav@mayadata.io,MayaData
18 changes: 9 additions & 9 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ IS_DOCKER_INSTALLED = $(shell which docker >> /dev/null 2>&1; echo $$?)
PLAYBOOKS = $(shell find ./ -iname *.yml -printf '%P\n' | grep 'ansible_logic.yml')

.PHONY: all
all: deps build syntax-checks lint-checks security-checks push
all: deps build syntax-checks lint-checks security-checks

.PHONY: help
help:
Expand Down Expand Up @@ -44,14 +44,14 @@ ansible-runner-build:
@echo "------------------"
sudo docker build . -f build/ansible-runner/Dockerfile -t litmuschaos/ansible-runner:ci

.PHONY: push
push: ansible-runner-push
#.PHONY: push
#push: ansible-runner-push

ansible-runner-push:
@echo "------------------"
@echo "--> Push ansible-runner image"
@echo "------------------"
REPONAME="litmuschaos" IMGNAME="ansible-runner" IMGTAG="ci" ./hack/push
#ansible-runner-push:
# @echo "------------------"
# @echo "--> Push ansible-runner image"
# @echo "------------------"
# REPONAME="litmuschaos" IMGNAME="ansible-runner" IMGTAG="ci" ./hack/push

.PHONY: syntax-checks
syntax-checks: ansible-syntax-check
Expand Down Expand Up @@ -85,4 +85,4 @@ ansible-lint-check:
@echo "------------------"
@echo "--> Check ansible lint"
@echo "------------------"
docker run -ti litmuschaos/ansible-runner:ci bash -c "bash ansiblelint/lint-check.sh"
docker run -ti litmuschaos/ansible-runner:ci bash -c "bash ansiblelint/lint-check.sh"
18 changes: 14 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@


## Overview

Litmus is a toolset to do cloud-native chaos engineering. Litmus provides tools to orchestrate chaos on Kubernetes to help SREs find weaknesses in their deployments. SREs use Litmus to run chaos experiments initially in the staging environment and eventually in production to find bugs, vulnerabilities. Fixing the weaknesses leads to increased resilience of the system.

Litmus takes a cloud-native approach to create, manage and monitor chaos. Chaos is orchestrated using the following Kubernetes Custom Resource Definitions (**CRDs**):
Expand All @@ -24,6 +25,7 @@ Litmus takes a cloud-native approach to create, manage and monitor chaos. Chaos

Chaos experiments are hosted on <a href="https://hub.litmuschaos.io" target="_blank">hub.litmuschaos.io</a>. It is a central hub where the application developers or vendors share their chaos experiments so that their users can use them to increase the resilience of the applications in production.

![Litmus Schematic](./images/litmus-schematic.png)

## Use cases

Expand All @@ -33,8 +35,7 @@ Chaos experiments are hosted on <a href="https://hub.litmuschaos.io" target="_bl


## Demo
[![asciicast](https://asciinema.org/a/MOPQfmzA5NxgBs8DkMGROXpQw.svg)](https://asciinema.org/a/MOPQfmzA5NxgBs8DkMGROXpQw)

[![asciicast](https://asciinema.org/a/mq3rxRd8q9ZIrgMgPHZOeaLfi.svg)](https://asciinema.org/a/mq3rxRd8q9ZIrgMgPHZOeaLfi)

## Getting Started with Litmus
See <a href="https://docs.litmuschaos.io/docs/next/getstarted.html" target="_blank">Litmus Docs</a>.
Expand Down Expand Up @@ -68,8 +69,17 @@ Litmus is licensed under the Apache License, Version 2.0. See [LICENSE](./LICENS

[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Flitmuschaos%2Flitmus.svg?type=large)](https://app.fossa.io/projects/git%2Bgithub.com%2Flitmuschaos%2Flitmus?ref=badge_large)

## Community notes
https://hackmd.io/a4Zu_sH4TZGeih-xCimi3Q
## Community

The Litmus community meets on the third wednesday of every month at 10:00PM IST/9.30 AM PST.

Community Resources:

- [Community Slack](https://app.slack.com/client/T09NY5SBT/CNXNB0ZTN)
- [Sync Up Meeting Link](https://zoom.us/j/91358162694)
- [Sync Up Agenda & Meeting Notes](https://hackmd.io/a4Zu_sH4TZGeih-xCimi3Q)
- [Youtube Channel (demos, meeting recordings, virtual meetups](https://www.youtube.com/channel/UCa57PMqmz_j0wnteRa9nCaw)
- [Release Tracker](https://github.com/litmuschaos/litmus/milestones)


## Important Links
Expand Down
44 changes: 43 additions & 1 deletion RELEASES.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,55 @@ while providing the links to release details. Meant to be a helpful chronicler o

<table>

<tr>
<td>1.5.0</td>
<td>15th June, 2020</td>
<td>
<ul>
<li><b>Deprecated</b> (chaosschedule): <code>.spec.schedule.type</code></li>
<li><b>New</b> (chaosschedule): <code>.spec.schedule.once.exectionTime</code> replaces: <code>.spec.schedule.exectionTime</code></li>
<li><b>New</b> (chaosschedule): <code>.spec.schedule.repeat.startTime/endTime</code> replaces: <code>.spec.schedule.startTime/endTime</code></li>
<li><b>New</b> (chaosexperiment): <code>.spec.definition.imagePullPolicy</code></li>
</ul>
</td>
<td><a href="https://github.com/litmuschaos/litmus/releases/tag/1.5.0">Release Notes</a></td>
<td><a href="https://docs.litmuschaos.io/docs/getstarted">Documentation</a></td>
<td>N/A</td>
<td><a href="https://github.com/litmuschaos/chaos-charts/releases/tag/1.5.0">Chaos Charts Bundle</a></td>
</tr>


<tr>
<td>1.4.1</td>
<td>3rd June, 2020</td>
<td>No Schema changes</td>
<td><a href="https://github.com/litmuschaos/litmus/releases/tag/1.4.1">Release Notes</a></td>
<td><a href="https://docs.litmuschaos.io/docs/1.4.0/getstarted/">Documentation</a></td>
<td>N/A</td>
<td><a href="https://github.com/litmuschaos/chaos-charts/releases/tag/1.4.1">Chaos Charts Bundle</a></td>
</tr>

<tr>
<td>1.4.0</td>
<td>15th May, 2020</td>
<td>
<ul>
<li><b>New</b> (chaosschedule): Introduce custom resource to schedule chaos on targets</li>
</ul>
</td>
<td><a href="https://github.com/litmuschaos/litmus/releases/tag/1.4.0">Release Notes</a></td>
<td><a href="https://docs.litmuschaos.io/docs/1.4.0/getstarted/">Documentation</a></td>
<td>N/A</td>
<td><a href="https://github.com/litmuschaos/chaos-charts/releases/tag/1.4.0">Chaos Charts Bundle</a></td>
</tr>

<tr>
<td>1.3.0</td>
<td>15th April, 2020</td>
<td>No Schema changes</td>
<td><a href="https://github.com/litmuschaos/litmus/releases/tag/1.3.0">Release Notes</a></td>
<td><a href="https://docs.litmuschaos.io/docs/getstarted">Documentation</a></td>
<td>Coming Up!</td>
<td>N/A</td>
<td><a href="https://github.com/litmuschaos/chaos-charts/releases/tag/1.3.0">Chaos Charts Bundle</a></td>
</tr>

Expand Down
28 changes: 27 additions & 1 deletion RELEASE_GUIDELINES.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,17 +3,22 @@
- There is a scheduled release on the 15th of every month on the following repositories:
- [Litmus](https://github.com/litmuschaos/litmus)
- [Chaos-Operator](https://github.com/litmuschaos/chaos-operator)
- [Chaos-Runner](https://github.com/litmuschaos/chaos-runner)
- [Chaos-Exporter](https://github.com/litmuschaos/chaos-exporter)
- [Chaos-Charts](https://github.com/litmuschaos/chaos-charts)

- Repositories use release version according to the [Semantic Versioning](https://semver.org/)

- Docker images with release tags are pushed upon creation of a github release (commits to master push images with `ci` tags)
- Docker images with release tags are pushed upon creation of a github release

- Following are the docker images:
- [litmuschaos/ansible-runner](https://cloud.docker.com/u/litmuschaos/repository/docker/litmuschaos/ansible-runner)
- [litmuschaos/chaos-operator](https://cloud.docker.com/u/litmuschaos/repository/docker/litmuschaos/chaos-operator)
- [litmuschaos/chaos-runner](https://cloud.docker.com/u/litmuschaos/repository/docker/litmuschaos/chaos-runner)
- [litmuschaos/chaos-exporter](https://cloud.docker.com/u/litmuschaos/repository/docker/litmuschaos/chaos-exporter)

- The chaos chart bundles are created by publishing the github releases for the [chaos-charts](https://github.com/litmuschaos/chaos-charts) repo. This is picked by the chaos [charthub](https://hub.litmuschaos.io) for user download.

- Tracking of releases is done on Github [project board](https://github.com/litmuschaos/litmus/projects)

- The release flow consists of the following steps:
Expand All @@ -27,3 +32,24 @@
- Doc sanity tests
- Litmus release with change log

### Release Checklist

* [ ] Release branch creation on litmus component repos
* [ ] Release candidate github tags/images created
* [ ] Full e2e pipelines on the release candidates
* [ ] Fixes to litmus components based on test results & e2e re-runs
* [ ] Cherry-pick commits to release branches & additional RC tags/images
* [ ] GA tags/images creation
* [ ] Release branch creation on chaos-charts repo, GA image updates & chart GA bundle creation
* [ ] PRs to user artefact/deploy repos:
* [ ] litmuschaos/pages (operator.yaml)
* [ ] litmuschaos/litmus-helm (litmus infra helm chart)
* [ ] litmuschaos/chaos-helm (chaosexperiment bundles)
* [ ] Chaos ChartHub Sanity Check
* [ ] Sanity e2e runs on GA images
* [ ] Docs sanity & (docusaurus) versioned docs creation
* [ ] Release Notes publish
* [ ] Updates to Releases & Roadmap artefacts
* [ ] Updates to downstream repos (litmuschaos/litmus-demo) etc.,
* [ ] Community Announcements, sync up & contributor shout out!

12 changes: 8 additions & 4 deletions ROADMAP.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,34 +11,37 @@ This document captures only the high level roadmap items. For the detailed backl
- Helm3 charts for Litmus Chaos (operator, kubernetes/generic chaos charts)
- Support for Kubernetes events for chaos experiments
- Support for admin mode (centralized chaos management)
- Centralized Hub for chaos experiments
- Self sufficient, Centralized Hub for chaos experiments
- Scaffolding scripts to help bootstrap a new chaos experiment in Go, Ansible
- Documentation (user & developer guides, integration with other chaos tools)
- Gitlab e2e pipeline for chaos experiments
- Define community sync up schedule
- Integration with Argo project for Chaos workflows, support for scenario creation with experiments
- Support for scheduled (continuous/background) chaos
- Support for halt/resume capabilities with ChaosSchedule
- Support for halt/resume capabilities with ChaosSchedule
- Basic support for OpenShift platform (non-network chaos) & Openshift resources (deploymentconfig)

------

### In-Progress (Near-term)

- A UI portal for LitmusChaos to trigger and schedule chaos experiments & workflows. Ongoing development [here](https://github.com/litmuschaos/litmus-portal)
- Off the shelf chaos-integrated grafana dashboards for OpenEBS, Kafka, Cassandra [#1280](https://github.com/litmuschaos/litmus/issues/1280)
- Support for OpenShift platform/resources [1406](https://github.com/litmuschaos/litmus/issues/1406)
- Support for network chaos on OpenShift platform
- Support for complete chaos abort via pre-stop hooks [#1284](https://github.com/litmuschaos/litmus/issues/1284)
- Go, Python SDK for Litmus Experiments [1466](https://github.com/litmuschaos/litmus/issues/1466) [#1259](https://github.com/litmuschaos/litmus/issues/1259)
- Support for user defined chaos experiment result definition (ex:json blob as chaos result) [#1254](https://github.com/litmuschaos/litmus/issues/1254)
- Pod level resource chaos libraries (disk stress)
- HTTP proxy Chaos libraries [#1179](https://github.com/litmuschaos/litmus/issues/1179)
- Support for chaos on containerd, CRIO runtimes [#1245](https://github.com/litmuschaos/litmus/issues/1245)
- Self-sufficient ChaosHub with downloadable sample chaosengine, experiment-level RBAC manifests & versioned chaos charts [#1228](https://github.com/litmuschaos/litmus/issues/1228)
- Support for custom override of chaos-operator, chaos-runner and chaos-experiment attributes [#1253](https://github.com/litmuschaos/litmus/issues/1253) [#1252](https://github.com/litmuschaos/litmus/issues/1252) [#1227](https://github.com/litmuschaos/litmus/issues/1227)
- Detailed design [#1282](https://github.com/litmuschaos/litmus/issues/1282)

------

### Backlog

- Pre-defined chaos workflows to inject chaos during application benchmark runs
- Support for Kubernetes pod scheduling policies (affinity rules for chaos resources)
- Support for cloudevents compliant chaos events
- Kubectl plugin for CLI based execution of chaos experiments
Expand All @@ -47,3 +50,4 @@ This document captures only the high level roadmap items. For the detailed backl
- Migration to native Kubernetes ansible modules for ansible-based experiments
- Improved application Chaos Suites (OpenEBS, Kafka, Cassandra)
- Support for platform (AWS, GKE, vSphere) Chaos
- Support for IO-Chaos [#1623](https://github.com/litmuschaos/litmus/issues/1623)
Empty file added chaos-engineering/.gitkeep
Empty file.
4 changes: 2 additions & 2 deletions chaoslib/litmus/kubelet_service_kill/kubelet-service-kill.j2
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ metadata:
app: service-kill
name: service-kill-{{ run_id }}
{% if chaos_uid is defined and chaos_uid != '' %}
chaosUID: {{ chaos_uid }}
chaosUID: {{ chaos_uid }}
{% endif %}
spec:
nodeName: {{ node_name }}
Expand Down Expand Up @@ -39,4 +39,4 @@ spec:
- name: root
hostPath:
path: /
type: ""
type: ""

0 comments on commit 8ba20bc

Please sign in to comment.