Releases: litmuschaos/litmus
2.10.0
Release Notes (2.10.0)
Core Component Updates -
-
Adds HTTP chaos experiment for Kubernetes applications using toxiproxy. This will allow you to introduce latency in the target application service and check the application availability.
-
Introduces the first Beta version for m-agent (machine-agent) which enable us to run chaos on non-k8s target. It also includes a new cpu-stress experiment that can run CPU chaos on the target VM(s).
-
Adds the missing –stress-image parameter for the pod-io-stress experiment that enables us to add a custom stress image for the experiment when using Pumba lib.
-
Enhanced the recovery of node cordon experiment when app status check fails during the chaos.
-
Fixes the chaos result verdict update for GCP disk loss by label experiment during the different stages of chaos.
-
Fixes node level e2e check for every build on a pull request for the litmus-go repository.
-
Adds docs for the new HTTP chaos experiment, updates the GCP experiment docs, and introduces some more examples in docs for pod network latency experiment with jitter.
-
Adds chaos charts for AWS AZ down experiment in the hub this will help to get the manifest for the experiment workflow preparation.
-
Fixes the GCP and m-agent e2e pipeline to run the automated tests seamlessly.
ChaosCenter Updates -
-
Refactored graphql-server for extracting queries, mutations, and subscriptions to the respective schema files
-
Added support for Envoy proxy when using frontend nginx.
-
Added UI enhancement for allowing scrolling to the invitations tab after clicking on the Invitations button.
-
Fixed issues with httpProbe and promProbe in tune workflow section due to the addition of
httpProbe/inputs: {}
when adding multiple probes. -
Added check for invalid schedule type when trying to proceed in workflow construction wizard without selecting schedule type.
-
Fixed issue in GitOps when updating the git repository configuration.
-
Added CHAOS_CENTER_UI_ENDPOINT env for specifying a one-time UI endpoint for the control plane, so that all external agents can be provided with the same (Available for cluster and namespace scope).
-
Added support for automatically adding imagePullSecrets in for Engine, Runner & Experiments pods from configured image registry.
Litmusctl Updates:
-
Added commands like
litmusctl get workflows
,litmusctl create workflow
,litmsuctl describe workflow
,litmusctl delete workflow
andlitmusctl get workflow-runs
for workflow CRUD operations. -
Renamed
litmusctl create agent
command tolitmusctl connect agent
-
Added new command
disconnect agent
for disconnecting agents from the Control plane. -
Enhanced logging for better debugging.
Note:
- For using newly added commands, users will have to download the v0.11.0 version of litmusctl.
- litmusctl v0.11.0 only supports litmus v2.10.0 or higher versions
New Contributors
- @QAInsights made their first contribution in #3612
Full Changelog: 2.9.0...2.10.0
2.9.0
Release Notes (2.9.0)
Core Component Updates -
-
Adds GCP Instance Stop and Disk Fill Experiments by the label that supports multiple target selection using common labels.
-
Refactor the GCP disk loss experiment to remove the device name input and auto-derive it within the experiment.
-
Enhance EC2 Terminate experiment checks when the managed nodegroup env is enabled to validate the node recovery through AWS APIs instead of Kubernetes APIs.
-
Introduces GCP IAM integration through workload identity for keyless authentication in GKE clusters.
-
Fixes Litmus SDK and introduces the default app health check feature in the SDK template.
-
Fixes error handling for an invalid appinfo input. The experiments are now supposed to fail in the pre chaos validation and won’t go to the chaos injection stage.
-
Fixes chaos injection issues on OpenShift due to the helper pod failure caused due to the same IP it was assigned as the experiment pod, it occurs due to the same annotation shared by helper and experiment pods. Now, this can be tuned via an env called SET_HELPER_DATA if we don’t want to use the experiment data inside helper pods we can enable it.
-
Adds chaos charts for process kill experiment which is in beta version and runs with the help of m-agent.
-
Fixes the default value of the chaos tunable in the stress chaos experiment to support the default execution of the experiment.
-
Cleanup the stale workflows from chaos charts and retain the active workflows only.
-
Adds document fixes for stress chaos experiment and introduces docs for GCP IAM integration.
-
Adds m-agent e2e pipeline that includes tests for process kill experiment.
ChaosCenter Updates -
-
Weight and experiments mapping logic has been updated for handling cases where one workflow contains more than one instance of the same experiment. Now chaosengine name will be used for mapping experiment to the corresponding weight.
-
Refactored GQL server APIs for better documentation & following a standard schema.
-
Updated API docs according to new changes and added missing APIs.
-
Added support for using a custom image registry inside the experiment when using a custom image registry.
-
Updated the namespaced scope manifest to reduce the complexity of installation instructions.
-
Fixed permission issue for event-tracker in namespaced mode.
-
Fixed image version in revert-chaos step for using versioned tag instead of latest.
-
Fixed error logging in subscriber for handling error when there are fewer permissions available due to old installation.
-
Fixed error logging in Control-plane upgrade agent when new and current versions are the same by providing a warning instead of the error.
NOTE: As all the APIs on graphql-server have been updated for following a standard schema, Litmusctl has also been updated for supporting the same. So, ChaosCenter v2.9.0 will be compatible with Litmusctl v0.10.0. Please make sure to upgrade the litmusctl before using with ChaosCenter v2.9.0.
Installation
Litmus-2.9.0 (Stable) cluster scope manifest
kubectl apply -f https://raw.githubusercontent.com/litmuschaos/litmus/2.9.0/mkdocs/docs/2.9.0/litmus-2.9.0.yaml
Or
Litmus-2.9.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.9.0/litmus-portal-crds-2.9.0.yml
#Install ChaosCenter
kubectl apply -f https://raw.githubusercontent.com/litmuschaos/litmus/master/mkdocs/docs/2.9.0/litmus-namespaced-2.9.0.yaml -n litmus
Upgrading from 2.8.0 to 2.9.0
kubectl apply -f https://raw.githubusercontent.com/litmuschaos/litmus/2.9.0/mkdocs/docs/2.9.0/upgrade-agent.yaml
2.8.0
Release Notes (2.8.0)
Core Component Updates
-
Fixes the incorrect target container name passed to the helper pod. This occurs when multiple different applications containing different container names were selected as chaos candidates. litmuschaos/litmus-go#496
-
Fixes the statusCheckTimeout feature for container kill experiment to enable the helper pod to use custom timeouts. The helper pod of the container kill experiment was only using 180sec as a timeout. litmuschaos/litmus-go#498
-
Fixes the default path of the SSM docs (fault template) used in the SSM chaos experiments to support the chaos execution. The SSM docs contain the chaos injection logic, one can also provide their own docs to run this experiment using configmap or secrets. litmuschaos/litmus-go#508
-
Enhance experiment logs to handle warnings like “Neither --kubeconfig nor --master was specified for InClusterConfig” - such warnings were appearing in experiment logs for every run which are now handled properly. litmuschaos/litmus-go#507
-
Fixes litmus-python vulnerability issues by bumping the python version from 3.8 to 3.8.13. litmuschaos/litmus-python#41
-
Enable litmus snyk image to support python libraries which also fixes snyk security scan check on litmus-python.
-
Adds docs examples to show the selection of target pods from a specific node using a NODE_LABEL env.
Chaos Center Updates
-
Migrated FluxCD to ArgoCD and added terraform scripts to provision EKS cluster to deploy LitmusChaos applications (v1-Docs, Docs, Hub)
-
Added ability to configure self-agent component's node selector and tolerations
-
Added support to subscriber and event tracker to store and retrieve CLUSTER_ID and ACCESS_KEY in Kubernetes secrets
-
Added email validation and RBAC check get_user_with_project API
-
Added workflow type filter, pre-defined workflow redirect link, and updated analytics routes
-
Fixed workflow failure issue while adding experiments with the same name
-
Synced the ChaosCenter APIs document with the latest schema changes
-
Upgraded Workflow-controller (v3.2.9), Argo-executor(v3.2.9) and LitmusCore(2.7.0)
Installation
Litmus-2.8.0 (Stable) cluster scope manifest
kubectl apply -f https://raw.githubusercontent.com/litmuschaos/litmus/2.8.0/mkdocs/docs/2.8.0/litmus-2.8.0.yaml
Or
Litmus-2.8.0 (Stable) namespace scope manifest.
export LITMUS_PORTAL_NAMESPACE="<namespace>"
kubectl create ns ${LITMUS_PORTAL_NAMESPACE}
kubectl apply -f https://raw.githubusercontent.com/litmuschaos/litmus/2.8.0/litmus-portal/litmus-portal-crds.yml
curl https://raw.githubusercontent.com/litmuschaos/litmus/2.8.0/mkdocs/docs/2.8.0/litmus-namespaced-2.8.0.yaml --output litmus-portal-namespaced-k8s-template.yml
envsubst '${LITMUS_PORTAL_NAMESPACE}' < litmus-portal-namespaced-k8s-template.yml > ${LITMUS_PORTAL_NAMESPACE}-ns-scoped-litmus-portal-manifest.yml
kubectl apply -f ${LITMUS_PORTAL_NAMESPACE}-ns-scoped-litmus-portal-manifest.yml -n ${LITMUS_PORTAL_NAMESPACE}
Upgrading from 2.7.0 to 2.8.0
kubectl apply -f https://raw.githubusercontent.com/litmuschaos/litmus/2.8.0/mkdocs/docs/2.8.0/upgrade-agent.yaml
2.7.0
Release Updates
Core Component Updates
-
Fixes the higher image vulnerabilities for different litmus components by updating the binaries used in it.
-
Fixes the code scan vulnerabilities (CVEs) by updating the go packages for different litmus components. Also, adds sync actions to get the code vulnerabilities on every code commit.
-
Enhance pod-level experiments by supporting randomized chaos tunables which enable us to provide the range of value in chaos parameter.
-
Adds support for cgroup version 2 in stress chaos experiments(pod cpu/mem/io).This will be backward compatible with the version 1 as well.
-
Adds node label filter for selecting the target pods in pod-level experiments. This helps us to select the pods scheduled on specific nodes as chaos candidates. This feature requires having a node-level permission for filtering pods on a specific node.
-
Adds some more experiment example docs at https://litmuschaos.github.io/litmus/
Chaos Center Updates
-
Added RBAC checks in all the APIs of the chaos center to make it more secure
-
Optimized MyHub APIs to fetch the data more efficiently
-
Added /readiness route for readiness probes
-
Following changes in the deployment manifest and helm charts
- Added resource {limit, request}, automountServiceAccountToken, readOnlyRootFilesystem and securityContexts for all the components
- Separated auth-server container from litmus-server deployment and made it as deployment
- Moved some credentials from configmap to secrets
- Added a headless service to mongo statefulsets
Installation
Litmus-2.7.0 (Stable) cluster scope manifest
kubectl apply -f https://raw.githubusercontent.com/litmuschaos/litmus/2.7.0/mkdocs/docs/2.7.0/litmus-2.7.0.yaml
Or
Litmus-2.7.0 (Stable) namespace scope manifest.
export LITMUS_PORTAL_NAMESPACE="<namespace>"
kubectl create ns ${LITMUS_PORTAL_NAMESPACE}
kubectl apply -f https://raw.githubusercontent.com/litmuschaos/litmus/2.7.0/litmus-portal/litmus-portal-crds.yml
curl https://raw.githubusercontent.com/litmuschaos/litmus/2.7.0/mkdocs/docs/2.7.0/litmus-namespaced-2.7.0.yaml --output litmus-portal-namespaced-k8s-template.yml
envsubst '${LITMUS_PORTAL_NAMESPACE}' < litmus-portal-namespaced-k8s-template.yml > ${LITMUS_PORTAL_NAMESPACE}-ns-scoped-litmus-portal-manifest.yml
kubectl apply -f ${LITMUS_PORTAL_NAMESPACE}-ns-scoped-litmus-portal-manifest.yml -n ${LITMUS_PORTAL_NAMESPACE}
Upgrading from 2.6.0 to 2.7.0
kubectl apply -f https://raw.githubusercontent.com/litmuschaos/litmus/2.7.0/mkdocs/docs/2.7.0/upgrade-agent.yaml
2.6.0
Release Updates
-
Enhance CPU stress experiments (both node-cpu-hog and pod-cpu-hog) to consume the resources in percentage of available CPU cores.
-
Fixes the permission issue faced by container user of experiment image to access its directory in an Openshift cluster.
-
Adds AWS AZ (Availability Zone) experiment in litmus python which disables availability zones for load-balancer. litmuschaos/litmus-python#36
-
Fixes the verdict metrics in chaos exporter now it won't export/override the metrics if chaosengine is in completed state and experiment's final verdict is already exported.
-
Adds more docs examples for the new experiment tunables in https://litmuschaos.github.io/litmus/
-
Enhances the interface to make workflows more auditable by adding a new field “Executed by” in the runs/schedules table that shows the username who scheduled the corresponding workflow.
-
Bug fixed to ignore deleted workflows during the schedule of a new workflow.
-
Lower down the vulnerabilities of the docker images.
-
Added a new set of API tests for MyHub & User related operations.
Installation
Litmus-2.6.0 (Stable) Cluster Scope manifest
kubectl apply -f https://raw.githubusercontent.com/litmuschaos/litmus/2.6.0/mkdocs/docs/2.6.0/litmus-2.6.0.yaml
Or
Litmus-2.6.0 (Stable) namespace scope manifest.
export LITMUS_PORTAL_NAMESPACE="<namespace>"
kubectl create ns ${LITMUS_PORTAL_NAMESPACE}
kubectl apply -f https://raw.githubusercontent.com/litmuschaos/litmus/2.6.0/litmus-portal/litmus-portal-crds.yml
curl https://raw.githubusercontent.com/litmuschaos/litmus/2.6.0/mkdocs/docs/2.6.0/litmus-namespaced-2.6.0.yaml --output litmus-portal-namespaced-k8s-template.yml
envsubst '${LITMUS_PORTAL_NAMESPACE}' < litmus-portal-namespaced-k8s-template.yml > ${LITMUS_PORTAL_NAMESPACE}-ns-scoped-litmus-portal-manifest.yml
kubectl apply -f ${LITMUS_PORTAL_NAMESPACE}-ns-scoped-litmus-portal-manifest.yml -n ${LITMUS_PORTAL_NAMESPACE}
Upgrading from 2.5.0 to 2.6.0
kubectl apply -f https://raw.githubusercontent.com/litmuschaos/litmus/master/mkdocs/docs/2.6.0/upgrade-agent.yaml
Shoutouts!
Thanks to our existing and new contributors for this release- @victorlcm @Aman-Codes @neelanjan00 @amityt @gdsoumya @Jonsy13 @rajdas98 @uditgaurav
2.5.0
Core Component Updates
-
Introduce a pre-alpha version of litmus m-agent (Machine Agent) which is a platform-generic daemon agent that can remotely inject faults into an OS scoped resource, as part of the LitmusChaos Experiments.
-
Adds an pre-alpha version of process kill experiment that makes use of m-agent to inject process kill chaos in the target OS.
-
Enhance pod network latency experiment to support jitter functionality in the network delay simulated by the experiment.
-
Introduces new helm charts (kube-azure and kube-gcp) for azure and gcp chaos experiments.
-
Fixes to support the custom experiment for pod level stress-chaos experiment (cpu, memory, IO). This will enable us to use any custom names for the experiment.
-
Adds new e2e-pipeline for testing the azure chaos experiments from hub. It supports both nightly and manual builds.
-
Updates failstep messages for Litmus Go SDK and refactor azure chaos experiment to improve the code quality.
Chaos Center Updates
-
Adds support for skipping SSL verification & Self-signed certificates for agent connection.
-
Updates the API documentation.
-
Fixes the issue with Minikube & GRPC by making localhost as grpc endpoint.
-
Fixes the Role-based permission issues in some specific APIs.
-
Enhances the logs for better debugging & logging.
-
Adds E2E Tests for observability dashboards configuration & deletion.
Notes
- For using Self-signed certificates & skip-agent-ssl flag, users will have to use litmusctl v0.9.0
Installation
Litmus-2.5.0 (Stable) Cluster Scope manifest
kubectl apply -f https://raw.githubusercontent.com/litmuschaos/litmus/2.5.0/mkdocs/docs/2.5.0/litmus-2.5.0.yaml
Or
Litmus-2.5.0 (Stable) namespace scope manifest.
export LITMUS_PORTAL_NAMESPACE="<namespace>"
kubectl create ns ${LITMUS_PORTAL_NAMESPACE}
kubectl apply -f https://raw.githubusercontent.com/litmuschaos/litmus/2.5.0/litmus-portal/litmus-portal-crds.yml
curl https://raw.githubusercontent.com/litmuschaos/litmus/2.5.0/mkdocs/docs/2.5.0/litmus-namespaced-2.5.0.yaml --output litmus-portal-namespaced-k8s-template.yml
envsubst '${LITMUS_PORTAL_NAMESPACE}' < litmus-portal-namespaced-k8s-template.yml > ${LITMUS_PORTAL_NAMESPACE}-ns-scoped-litmus-portal-manifest.yml
kubectl apply -f ${LITMUS_PORTAL_NAMESPACE}-ns-scoped-litmus-portal-manifest.yml -n ${LITMUS_PORTAL_NAMESPACE}
2.4.0
Core Component Updates
-
Fixes the permission issue faced by container user (of different litmus components) to access its directory in an Openshift cluster as the openshift cluster runs the container with an arbitrary uid in the root group.
-
Enhance the stress chaos experiments to gracefully terminate the stress process in case it is not completed and remove on its own.
-
Enhance the node drain experiment to skip the uncordon step post chaos if the target node is not available. It occurs if we enable the autoscaling for the node pool on the cloud provider.
-
Updates the experiment contributing docs with the usage of litmus SDK and also adds the chaos-chart details in the repo readme.
-
Adds an overview section in litmus-python with the detailed steps for preparing and using the experiment and workflows in python.
-
Adds new e2e-pipeline for testing the vm-ware experiments from hub. It supports both nightly and manual builds.
-
Enhance the e2e-dashboard to show the logs of the tests running in the e2e pipeline.
-
Enhance GitHub Chaos Actions to support AWS EKS clusters, with this now we can integrate any external EKS cluster with chaos action to run the experiments.
Chaos Center Updates
-
Upgrading argo workflow and event tracker API versions to support chaos center on Kubernetes 1.22.0+
-
Addition of a new event tracker policy operator (known as Change) to track values of any field in the Kubernetes resource and removed the dependency of event tracker from last applied configuration annnotation
-
Addition of new permissions to docker images of ChaosCenter server to OpenShift friendly
-
Migration of APIs from graphql-server to auth-server and introduction of gRPC for the internal communication
-
Addition of "--skipSSL" flag in litmusctl to disable SSL for the communication between control-plane and execution plan
-
IPV6 support for control plane
-
Addition of new E2E tests for observability.
Notes
- The CRDs for ChaosCenter will be versioned now . So, CRDs for ChaosCenter v2.x.x will be available in 2.x.x branch.
- The Project DB migration has been done in this release along with some enhancements (like addition of new flag --skipSSL), so any version of litmusctl below v0.7.0 won't be compatible with ChaosCenter 2.4.0 or above.
Installation
Litmus-2.4.0 (Stable) Cluster Scope manifest
kubectl apply -f https://raw.githubusercontent.com/litmuschaos/litmus/2.4.0/mkdocs/docs/2.4.0/litmus-2.4.0.yaml
Or
Litmus-2.4.0 (Stable) namespace scope manifest.
export LITMUS_PORTAL_NAMESPACE="<namespace>"
kubectl create ns ${LITMUS_PORTAL_NAMESPACE}
kubectl apply -f https://raw.githubusercontent.com/litmuschaos/litmus/2.4.0/litmus-portal/litmus-portal-crds.yml
curl https://raw.githubusercontent.com/litmuschaos/litmus/2.4.0/mkdocs/docs/2.4.0/litmus-namespaced-2.4.0.yaml --output litmus-portal-namespaced-k8s-template.yml
envsubst '${LITMUS_PORTAL_NAMESPACE}' < litmus-portal-namespaced-k8s-template.yml > ${LITMUS_PORTAL_NAMESPACE}-ns-scoped-litmus-portal-manifest.yml
kubectl apply -f ${LITMUS_PORTAL_NAMESPACE}-ns-scoped-litmus-portal-manifest.yml -n ${LITMUS_PORTAL_NAMESPACE}
Shoutouts!
Thanks to our existing and new contributors for this release- @Aman-Codes @DhananjayPurohit @tuananh @andrewhu-hcl @Vr00mm @nicjohnson145 @DarthBenro008 @mehabhalodiya @bbarin @amityt @gdsoumya @Saranya-jena @SarthakJain26 @ispeakc0de @Jonsy13 @rajdas98 @uditgaurav
2.3.0
New Features & Enhancements
-
Adds support for ipv6 inside network experiments and other litmus components which enable us to run litmus on ipv6 (ipFamily) clusters
-
During the initial few seconds of the pod run, sometimes pods failed to request the kubeapi server. Adds the retries inside experiment & runner pods while querying kubeapi server.
-
Upgrade the Pumba older version(0.8.0) to the latest version. It fixes the vulnerability of the Pumba binaries.
-
Adds the networking policies permissions(which are required for the pod-network-partition experiment) inside the litmus-admin rbac.
-
Removes an extra job-name label from the helper pods and refactor the experiment code to improve the logs
-
Fixes stress chaos experiment with Pumba lib to take custom stress image
-
Reorder the RBAC permissions and add comments description for all the experiments
-
Updates the Kyverno pod security policies. Also, enhance the FAQ and PSP in the experiment-docs
-
Adds test-cases, readme, and rbac for pod-delete experiment in litmus-python. Modified the litmus-python SDK documentation for the latest changes
-
Introduces chaosresult tag annotation to the dashboard for Postgres to add.
-
Enhance e2e-dashboard to include card view for different pipelines, support dark-mode, and add all-workflows.
ChaosCenter -
-
Fixed Subscriber version compatibility check for the smooth upgrade process.
-
Upgraded Litmus-ui version for components optimization.
-
Updated the token name to litmus-cc-token.
-
Added advanced tune section for workflows for better visibility & allowing users to have more control over workflows.
-
Optimized upload functionality for allowing upload of basic argo workflow ( Users will be able to run any generic workflow )
-
Fixed some bugs in the frontend & graphql-server.
-
Enhanced E2E pipeline by adding resource validation on k8s cluster after scheduling the workflows.
Note:
- With this release of ChaosCenter, Litmus core components are upgraded to v2.2.0 & default chaoshub is updated to 2.2.x
Installation
Litmus-2.3.0 (Stable) Cluster Scope manifest
kubectl apply -f https://raw.githubusercontent.com/litmuschaos/litmus/2.3.0/mkdocs/docs/2.3.0/litmus-2.3.0.yaml
Or
Litmus-2.3.0 (Stable) namespace scope manifest.
export LITMUS_PORTAL_NAMESPACE="<namespace>"
kubectl create ns ${LITMUS_PORTAL_NAMESPACE}
kubectl apply -f https://raw.githubusercontent.com/litmuschaos/litmus/master/litmus-portal/litmus-portal-crds.yml
curl https://raw.githubusercontent.com/litmuschaos/litmus/2.3.0/mkdocs/docs/2.3.0/litmus-namespaced-2.3.0.yaml --output litmus-portal-namespaced-k8s-template.yml
envsubst '${LITMUS_PORTAL_NAMESPACE}' < litmus-portal-namespaced-k8s-template.yml > ${LITMUS_PORTAL_NAMESPACE}-ns-scoped-litmus-portal-manifest.yml
kubectl apply -f ${LITMUS_PORTAL_NAMESPACE}-ns-scoped-litmus-portal-manifest.yml -n ${LITMUS_PORTAL_NAMESPACE}
2.2.0
New Features & Enhancements
-
Adds more secure litmus hardened alpine base images to all litmus components.
-
Fixes the image vulnerability, add security scanner and health checks for all the litmus components
-
Adds the ability to provide terminationGracePeriodSeconds inside the helper pods. This also fixes the execution of node-level service kill experiments for a longer chaos duration.
-
Refactor the experiments with enhanced logging, error handling, and go-report.
-
Adds support to execute the vm-poweroff experiment in serial or parallel sequence
-
Adds the okteto configuration to test the experiments generated by litmus python-sdk
-
Introduces E2E tests for the litmus-python repository via GitHub actions
-
Adds kyverno pod security policies for the litmus pods to enable the execution of all supported (out-of-the-box) experiments listed in the chaoshub.
-
Adds the support of the hostNetwork inside the cmdProbe in workflows.
-
Introduced a first-cut visualization of the e2e dashboard to monitor different pipelines and stability of an experiment
-
Add a new pipeline to test GCP based chaos experiments that is vm-instance-stop and vm-disk-loss tests
ChaosCenter
-
Adds frontend Bug fixes in Probes wizard, Analytics & Teaming
-
Adds Nginx configuration in a separate configMap for more configuration
-
Adds kelseyhightower/envconfig pkg for validating the environment variables
-
Adds RBAC for the newly added mutations
-
Adds Agent Upgrade feature, which will help in upgrading agents when the control plane is upgraded.
-
Moves DB_ADMIN, DB_PASSWORD, and JWT_SECRET environment variables to k8s secret
-
Adds option for adding tolerations to the agent plane components using litmusctl
-
Enhances the ChaosCenter e2e pipeline for testing with LoadBalancer & Ingress based access setups.
Note:
-
With this release of ChaosCenter, Litmus core components are upgraded to v2.1.1, which is having cmd probeSchema changes. In case users have their workflows scheduled with an older schema, they will have to update it according to the new schema.
-
For using agent upgrade feature & tolerations addition to agents plane components, Users have to use v0.5.0 of litmusctl
Installation
Litmus-2.2.0 (Stable) Cluster Scope manifest
kubectl apply -f https://raw.githubusercontent.com/litmuschaos/litmus/2.2.0/mkdocs/docs/2.2.0/litmus-2.2.0.yaml
Or
Litmus-2.2.0 (Stable) namespace scope manifest.
export LITMUS_PORTAL_NAMESPACE="<namespace>"
kubectl create ns ${LITMUS_PORTAL_NAMESPACE}
kubectl apply -f https://raw.githubusercontent.com/litmuschaos/litmus/master/litmus-portal/litmus-portal-crds.yml
curl https://raw.githubusercontent.com/litmuschaos/litmus/2.2.0/mkdocs/docs/2.2.0/litmus-namespaced-2.2.0.yaml --output litmus-portal-namespaced-k8s-template.yml
envsubst '${LITMUS_PORTAL_NAMESPACE}' < litmus-portal-namespaced-k8s-template.yml > ${LITMUS_PORTAL_NAMESPACE}-ns-scoped-litmus-portal-manifest.yml
kubectl apply -f ${LITMUS_PORTAL_NAMESPACE}-ns-scoped-litmus-portal-manifest.yml -n ${LITMUS_PORTAL_NAMESPACE}
2.1.0
New Features & Enhancements
-
Introduces azure-disk-loss experiment, which detaches the virtual disk from an Azure instance
-
Introduces pod-network-partition experiment, which blocks Ingress and Egress traffic of the target application. It provides the option to specify the pod-selector, namespace-selector, and ports.
-
Introduces the ability to provide default application status checks as a tunable for the pod-specific experiments from the ChaosEngine. It is helpful for the scenarios where we don’t want to validate the application status as a mandatory check during pre & post chaos.
-
Enhance the GCP VM Instance Stop experiment for VMs that are a part of an Autoscaling Group, where the VMs are now awaited to fully stop before proceeding with the experiment.
-
Enhancements for the cmdProbe to run the probe pod with the host network.
-
Enhance probe pod functionality where the experiment serviceAccount is now passed to the probe pod. It is helpful for the scenarios where the probe pod needs specific RBAC permissions for the execution.
-
litmuschaos_awaited_experiment metric contains an injection_time label. Adds injection_time label as a tunable via the INJECTION_TIME_FILTER ENV. Which can be used for the annotations inside the interleaving dashboards
-
Enhance the chaos-scheduler to specify the minutes and hours separately. This provides the ability to schedule the chaos at the nth minutes per x hours. Which will be helpful for the staggered schedules to avoid collisions.
-
Adds the ability to search experiments based on certain keywords in Chaos Hub. Added all the related keywords for individual experiments.
-
Improves the error handling in the chaos-operator for chaosengine status nil check
-
Removes the init container which modifies the permissions of the docker socket path, and instead provides the docker socket path inside the DOCKER_HOST ENV for the Pumba Lib.
-
litmus metrics are now exported only for the active ChaosEngines. It stops overriding the value of existing metrics as soon as ChaosEngine comes to the completed state.
-
Enhance the e2e pipeline by adding debug steps and using shared runners to run tests in parallel, also allow the ability to run a test with a custom service account to validate a specific set of permissions required for an experiment.
Major Bug Fixes
- Fixes chaos-result name generation where the experiment-name and instance-id are passed inside the helper pods, which are used to generate the chaos-result name.
Installation
kubectl apply -f https://litmuschaos.github.io/litmus/litmus-operator-v2.1.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