New Features and Enhancements
- Introduces admin mode of chaos execution by which all chaos resources can be maintained in a single namespace while injecting chaos on applications across multiple namespaces
- Introduces helm charts for litmus infrastructure components and chaos charts
- Supports download of versioned chaos chart bundles on the chaoshub
- Supports custom/user-specified annotation filters to determine application chaos candidates
- Makes the chaos exporter a cluster-wide component deployed alongside the operator to extract metrics for all chaosengines
- Adds increased Kubernetes events to track failures (ex: inability to create chaos resources, access/patch chaosengine etc.,)
- Adds ability to re-trigger experiments for completed chaosengines via a patch operation
- Adds OpenEBS NFS provisioner failure experiment with external liveness checks to verify provisioner functionality & data persistence
- Introduces the Cassandra chaos chart with cassandra node failure experiment along with external liveness checks to perform database CRUD operations during chaos
- Adds pod level memory hog experiment with provision for users to provide memory to consume (in MB)
- Enhances the chaostoolkit based pod delete experiment to use python modules with added support for a json (blob) result artifact and different failure modes (i.e., single/multi pod failure)
- Enhances the node cpu hog experiment to accept cpu core count as a user input
- Enhances the container kill experiment to repeat chaos actions over a total chaos duration instead of being a single-action test
- Restructures the chaoslib to categorize chaos injection functions/taskfiles under respective tool-based lib
- Improves the experiment logs (task banners) based on the category/function performed by the tasks
- Adds (aquasecurity) trivy based static security scans for all litmus component images as part of respective CI builds
- Includes lint-checks with custom/project-specific rules for ansible playbooks in litmus CI build
- Improves the litmus e2e pipelines with addition of new tests around admin mode, multiple parallel chaosengine execution across namespaces, validation for engine status patch
- Improves e2e infra (scripts) to be able to launch e2e pipelines with custom image versions
- Adds pipeline history information in the litmus-e2e repo to track experiment status
- Introduces a new repo to hold charts and experiment icons linked to respective CSVs on the chaoshub.
- Adds documentation to explain the plugin model in litmus and integration with other chaos tools
- Adds a new artifact in the litmus repository called releases to track salient resource schema changes and provide references to detailed release notes
Major Bug Fixes
- Fixes the incorrect experiment status on chaosengine (“Awaited”) despite completion of experiment
- Fixes failure to schedule auxiliary/helper pods with nodeSelector specification on EKS clusters
- Fixes ambiguity/missing steps in developer guide and updates experiment artefacts templates with latest changes (since v1.0)
- Fixes the event source names in case of events generated by chaos-runners to bear chaos-runner pod name
- Fixes the failure to verify successful app reschedule post drain operation in node-drain experiment
- Fixes the crash of powerfulseal deployment due to use of improper service account
Getting Started
Prerequisites to install
- Make sure you have a healthy Kubernetes Cluster.
- Kubernetes 1.11+ is installed
Installation
kubectl apply -f https://litmuschaos.github.io/litmus/litmus-operator-v1.3.0.yaml
Verify your installation
-
Verify if the chaos operator is running
kubectl get pods -n litmus
-
Verify if chaos CRDs are installed
kubectl get crds | grep chaos
For more details refer to the documentation at Docs