As promised, we are back with another edition of monthly updates from the LitmusChaos community. With the growth of the Chaos Engineering community as well as the LitmusChaos community, we appreciate this massive participation and immense engagement and strive for the community to prosper and contribute back to its development.
This article is written to share monthly updates with the community from August 2022
to update the community on the latest happenings and updates around the LitmusChaos project.
LitmusChaos is a dynamic open source chaos engineering platform that enables teams to identify weaknesses and potential outages in infrastructures by inducing chaos engineering tests/experiments in a controlled manner. LitmusChaos is driven by the principles of Cloud-Native innovation and gave rise to the principles of Cloud-Native Chaos Engineering. Chaos engineering verifies the resilience of business services and helps DevOps pipelines proactively build code that is more resilient against software and infrastructure faults.
The LitmusChaos project was started in late 2017 to provide simple chaos jobs in Kubernetes. It became a CNCF sandbox project in 2020 and was promoted as a CNCF incubating project in January 2022. Today, it has maintainers from 5 different organizations across cloud-native vendors, solution providers, and end-users.
The project is used in production by more than 30 organizations, including large end-users like Adidas, FIS, iFood, Cyren, Intuit, Lenskart, Orange, and more as well as technology organizations like Red Hat and VMware.
LitmusChaos Releases 2.12.0
LitmusChaos version 2.12.0 was released on the 13th of August with some great new updates to the core components, the chaos center, and the Litmusctl.
Check out the release notes for deeper details on the release:
Release Notes (2.12.0)
Core Component Updates:
- Adds toxicity support in HTTP Chaos experiments. Toxicity can be used to define the percentage of HTTP requests that should be affected for example 50% toxicity will mean only half of the HTTP requests will be affected. litmuschaos/litmus-go#544
- Introduce randomized status code selection when multiple status code is provided as a fault in input for HTTP status code chaos experiment. litmuschaos/litmus-go#545
- Adds support for experiments with helper pod in chaoslib in litmus SDK with this, the user can create a chaos template with helper pod model using the same litmus SDK. litmuschaos/litmus-go#546
- Adds support for imagePullSecret in source cmd Probe this will enable the user run cmd probe pod with private image. litmuschaos/chaos-operator#415
- Fixes litmus-e2e pipeline and unit test pipeline by specifying version for creating k3s cluster. litmuschaos/litmus-e2e#391
- Fixes chaos execution on openshift-4.x by providing finalizer permission to chaos-operator service account, with the new operator upgrade in litmus 2.11.0 brings down this requirement. litmuschaos/chaos-operator#413
- Fixes chaos-operator vulnerabilities detected by snyc and trivy in the build pipeline. litmuschaos/chaos-operator#414
ChaosCenter Updates –
- Adds an advanced tuning feature for experiments individually with more supported configurations #3715
- Adds a new feature for connecting a remote ChaosHub to ChaosCenter #3722
- Adds a new API getServerVersion for fetching GQL server version #3721
- Makes clusterIP to be used by default for generating endpoints for internal delegates/self-agent #3709
- Adds an additional permission required for execution plane to be deployed in openshift clusters #3708
- Upgrades gopkgs for Chaos-Operator to v2.11.0 & Argo to v3.3.1 reducing some of the vulnerabilities in Graphql-server & Subscriber. #3718
- Removes the support for dashboards & datasources configuration from UI. #3716
- Fixes a bug of workflow getting failed when using dex/ providing email as username #3705
- Fixes a bug of frontend crashing when providing invalid cron-syntax #3714
- Fixes a bug when editing schedule for first time due to state not getting cleaned up #3727
- Adds fix for workflows comparison plot not coming #3729
- Adds fix for logs not coming for install experiments step #3729
- Adds fix for UI not getting updated for deactivate user and created_at column showing invalid date in Users Table in admin-account #3733
Litmusctl Updates –
- With litmusctl 0.12.0 release, we have updated some commands with the new terminologies ✨:
- litmusctl connect agent is now litmusctl connect chaos-delegate
- litmusctl disconnect agent is now litmusctl disconnect chaos-delegate
- litmusctl get agents is now litmusctl get chaos-delegates
- litmusctl create workflow is now litmusctl create chaos-scenario
- litmusctl delete workflow is now litmusctl delete chaos-scenario
- litmusctl describe workflow is now litmusctl describe chaos-scenario
- litmusctl get workflows is now litmusctl get chaos-scenarios
- litmusctl get workflowruns is now litmusctl get chaos-scenario-runs
- litmusctl upgrade agent is now litmusctl upgrade chaos-delegate
- Improves error handling logic for upgrade chaos-delegate, describe chaos-scenario and disconnect agent commands. litmuschaos/litmusctl#81
- Adds –kubeconfig flag in upgrade chaos-delegate command. litmuschaos/litmusctl#89
- Adds fix for passing namespace in the SelfSubjectAccessReviews function. litmuschaos/litmusctl#82
- litmusctl will now prompt if installed version of litmusctl is not compatible with installed litmus control plane. litmuschaos/litmusctl#84
- Users can check the compatibility matrix in the readme or by using litmusctl version command. litmuschaos/litmusctl#84
Users can also find the commands in the readme: https://github.com/litmuschaos/litmusctl#readme
NOTE: – Along with the above terminologies updates, we will also be updating the directory structure of ChaosHub for better readability and scalability of experiments and scenarios. With the upcoming release, the charts directory will be renamed to experiments directory and workflows will be renamed to scenarios directory. Same changes have been already done in 2.11.0 branch/version of ChaosHub. So, Users are requested to upgrade their ChaosHub directory structure with provided changes before upgrading to upcoming release – 2.13.0 version of ChaosCenter.
Thanks to our existing and new contributors for this release- @dnielsen @deividMatos @amityt @Saranya-jena @SarthakJain26 @Adarshkumar14 @imrajdas @Jonsy13
Full Changelog: 2.11.0…2.12.0
Litmus-2.12.0 (Stable) cluster scope manifest
kubectl apply -f https://raw.githubusercontent.com/litmuschaos/litmus/2.12.0/mkdocs/docs/2.12.0/litmus-2.12.0.yaml
Litmus-2.12.0 (Stable) namespace scope manifest.
#Create a namespace eg: litmus kubectl create ns litmus #Install CRDs, if SELF_AGENT env is set to TRUE kubectl apply -f https://raw.githubusercontent.com/litmuschaos/litmus/master/mkdocs/docs/2.12.0/litmus-portal-crds-2.12.0.yml #Install ChaosCenter kubectl apply -f https://raw.githubusercontent.com/litmuschaos/litmus/master/mkdocs/docs/2.12.0/litmus-namespaced-2.12.0.yaml -n litmus
Upgrading from 2.11.0 to 2.12.0
kubectl apply -f https://raw.githubusercontent.com/litmuschaos/litmus/2.12.0/mkdocs/docs/2.12.0/upgrade-agent.yaml
Latest from the LitmusChaos Community
Here is a sneak-peek into the adopter story presented by CI&T as well as AB-Inbev on how they are using LitmusChaos:
After an evaluation period of some Chaos Engineering tools, we chose LitmusChaos because it is a more mature tool that would meet most of our needs. We are in the implementation, configuration, and process definition phase.
AB-Inbev’s BEES is a huge project that has hundreds of microservices, it has been a great challenge to adapt Litmus in this process, making customizations and counting on the help of the Litmus community to evolve the tool and thus achieve our goal of making it available to the teams.
Some points that made us choose Litmus:
- Based on K8S resources
- Customization of attacks, attacks in parallel
- Installation on multiple clusters
Community Content –
As the community continues to grow, so does the content. Over the month the community members have created some amazing and exciting content to uplift the presence of LitmusChaos on the Cloud Native map. Check out all the latest content curated by the community for the community:
Here are our monthly updates from July 2022, Check out the LitmusChaos July update blog: https://www.cncf.io/blog/2022/08/11/litmuschaos-july-2022-update/
Chaos Engineering Meetup:
To inculcate the knowledge of Chaos Engineering, we kick started the initiative of organizing Chaos Engineering Meetups every month to talk about all things Chaos Engineering and move beyond the scope of LitmusChaos to give the community an opportunity to learn principles, concepts and larger ideas around chaos.
In the last edition of the Chaos Engineering Meetup, we had the core contributors of the LitmusChaos project from Harness share some amazing insight into the Litmus SDK as well as the latest HTTP chaos experiments. Here’s an overview of the agenda:
Topic – Bring Your Own Chaos With Litmus SDK by Shubham Chaudhary
Description – If you are looking for a SDK to generate a custom chaos experiment then Litmus SDK can help you. In this talk we will explain the process to generate a new custom chaos experiment with Litmus SDK.
Topic: HTTP Chaos using LitmusChaos by Akash Srivastava
Description: If you want to test how your application will handle broken APIs or incorrect data, HTTP Chaos is here. This talk will cover HTTP experiments that can modify the response status code or the response body or header. Followed by a live demo on a simple application.
Check out the recording from the Chaos Engineering Meetup August Edition:
Chaos Engineering Meetup – August 2022 Edition
The LitmusChaos Community meetings continue as a monthly cadence call to discuss the latest updates, happenings, and questions from the community. They are hosted every 3rd Wednesday of the month. Check out the latest from our last community meeting held on August 17th. The call started off with a quick community roundup on the latest community updates by community leader Prithvi Raj and was followed by a detailed discussion on the release notes by core contributor Vedant Shrotria (Senior Software Engineer, Harness)
Check out the recording of the meeting:
LitmusChaos-Community-Sync-up- August 2022| Open Source Chaos Engineering |
GCP IAM Integration for LitmusChaos with Workload Identity:
August was a month full of amazing videos which turned out to be really informative and useful to the community. Here are the three popular videos that turned out to drive community engagement for the month:
In this video, Sayan Mondal (LitmusChaos Contributor) explains the LitmusChaos project in just a few minutes. This is one of the best videos to start your Chaos Engineering journey with LitmusChaos in quick time:
LitmusChaos Overview in Under 10 Minutes | Chaos Engineering Made Easy
What is Chaos Engineering? How did it start? How to get involved?
In this episode of the Open Source Cafe hosted by @kunalstwt , Prithvi Raj and Neelanjan Manna from the LitmusChaos community joined in to talk about all things Chaos Engineering and the features that LitmusChaos has to offer.
Introduction to Chaos Engineering With @Litmus Chaos
The last video in the video series involves a thorough project update delivered as a CNCF Webinar by Sayan Mondal and Neelanjan Manna who share a complete update on the project in recent times with an interesting demo
Project Update: The latest on Chaos Engineering with LitmusChaos
In the end…
The LitmusChaos community continues to grow with amazing contributions (issues, suggestions, PRs) from the community and looks forward to more members joining in and contributing to the growth of the project.
Join the #litmus channel on the Kubernetes Slack to become a part of the community. Learn, Ask, and Contribute by being a part of the community.
Check out the Contributing Guide to get started with contributions
Subscribe to the LitmusChaos YouTube Channel for the latest videos.
Follow @LitmusChaos on Twitter for the latest social updates.
Check out the LitmusChaos blogs to learn more about LitmusChaos and you can write one too by using the tag #litmuschaos on DEV.to