<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Nagesh Bansal</title>
    <description>The latest articles on Forem by Nagesh Bansal (@nageshbansal).</description>
    <link>https://forem.com/nageshbansal</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F719060%2F98312c30-e184-453d-8d53-bdb55c9a84c3.jpeg</url>
      <title>Forem: Nagesh Bansal</title>
      <link>https://forem.com/nageshbansal</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/nageshbansal"/>
    <language>en</language>
    <item>
      <title>Discovering Chaos: My LFX Mentorship Journey with LitmusChaos</title>
      <dc:creator>Nagesh Bansal</dc:creator>
      <pubDate>Fri, 01 Sep 2023 17:22:12 +0000</pubDate>
      <link>https://forem.com/nageshbansal/discovering-chaos-my-lfx-mentorship-with-litmuschaos-1e32</link>
      <guid>https://forem.com/nageshbansal/discovering-chaos-my-lfx-mentorship-with-litmuschaos-1e32</guid>
      <description>&lt;p&gt;Diving into Kubernetes as a newcomer can be quite overwhelming. Have you ever thought about contributing to CNCF projects? If so, you've probably had a lot of questions. Where do you begin? Which project is best suited to you? And how can you properly engage the community in order to get answers?&lt;/p&gt;

&lt;p&gt;I can surely relate to these concerns because I've experienced them myself. The CNCF arena is home to many projects, each excelling in its own field and requiring specific prerequisites.&lt;/p&gt;

&lt;p&gt;As I navigated this complex landscape, I came across a valuable resource - 'LFX Mentorships for CNCF projects.' It was like discovering a powerful tool that turned me into a Kubernetes superhero, much like Thor."&lt;/p&gt;

&lt;p&gt;"So, I'm here to share my journey and shed light on how I entered the world of chaos engineering, particularly with LitmusChaos."&lt;/p&gt;

&lt;h2&gt;
  
  
  What Is the LFX Mentorship Program and How Can You Apply?
&lt;/h2&gt;

&lt;p&gt;The LFX Mentorship Program is a targeted 12-week initiative tailored to connect emerging contributors with seasoned mentors within the open-source realm. Its primary goal is to foster both personal and professional development by offering mentees invaluable guidance, unwavering support, and valuable insights.&lt;/p&gt;

&lt;p&gt;To learn more about the program, be sure to check out the comprehensive &lt;a href="https://docs.linuxfoundation.org/lfx/mentorship/mentees/apply-to-a-project"&gt;LFX Mentorship Docs&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The application process for this program is uncomplicated. It starts with the creation of an LFX Mentee account, followed by the selection of projects from the platform. As part of your application, you'll need to submit both a resume and a cover letter. It's worth emphasizing that this isn't the final step, and this is where many students often make mistakes.&lt;/p&gt;

&lt;p&gt;While applying for the project, I mentioned the approach I may use in the cover letter. I read the project Description and then created a github gist for the approach.  So getting to know the project before applying is a good idea.&lt;/p&gt;

&lt;h2&gt;
  
  
  Choosing my Destiny: Project Pick and Confirmation
&lt;/h2&gt;

&lt;p&gt;Ah, the moment of truth had arrived - it was decision time in my mentorship journey, and I had to pick a project. After setting up my LFX Mentee account and exploring the available projects, I had a list of options to consider. Each project seemed interesting in its own way.&lt;/p&gt;

&lt;p&gt;But there was one project that stood out: "&lt;a href="https://mentorship.lfx.linuxfoundation.org/project/bd6e875a-a64c-4405-af1c-677d8c45014b"&gt;Enhance Chaos-Operator and Chaos-Exporter&lt;/a&gt;" by &lt;a href="//litmuschaos.io/"&gt;LitmusChaos&lt;/a&gt;. I decided to go for it, as I want to work with litmuschaos from 1st Term of LFX mentorship, and this project aligned my interest for Operator and Prometheus. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--cg-T7oqL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/miyq2kosd0j72bzo9y4y.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--cg-T7oqL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/miyq2kosd0j72bzo9y4y.png" alt="Image description" width="800" height="471"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;With a simple click on the "Apply" button, I threw my digital dice into the ring and submitted my application. Now, all I had to do was wait for a confirmation email.&lt;/p&gt;

&lt;p&gt;The email arrived, and the subject line said it all, "Congratulations! You're In!" My excitement knew no bounds as I read the email, knowing that I had secured my place in the LitmusChaos for LFX mentorship program.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--SRPz7CA2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gwqe7pjxo0hkjmlx5y5q.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SRPz7CA2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gwqe7pjxo0hkjmlx5y5q.png" alt="Image description" width="800" height="388"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;With my choice made and confirmation in hand, I was ready for the next chapter of my mentorship journey, where I'd explore the world of Chaos Engineering with LitmusChaos. The adventure was about to begin, and I couldn't wait to dive in.&lt;/p&gt;

&lt;h2&gt;
  
  
  Getting My Hands Dirty: The Work I Took On
&lt;/h2&gt;

&lt;p&gt;With my project selected and my spot in the  mentorship program secured, it was time to roll up my sleeves and dive into the thick of things. In this section, I'll walk you through the tasks, challenges, and discoveries I encountered as I got to work on the project. Let's jump right in!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--9YeNQDgv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://miro.medium.com/v2/resize:fit:640/format:webp/1%2AeP_eFE7HDLu4Fz2uFxsFTg.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--9YeNQDgv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://miro.medium.com/v2/resize:fit:640/format:webp/1%2AeP_eFE7HDLu4Fz2uFxsFTg.jpeg" alt="" width="414" height="311"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;My Project Included to work on several Litmuschaos Components, i.e chaos-exporter, chaos-operator, litmusctl. &lt;br&gt;
and !!!&lt;br&gt;
&lt;a href="https://github.com/ispeakc0de"&gt;Shubham Chaudhary&lt;/a&gt;, &lt;a href="https://github.com/vanshBhatia-A4k9"&gt;Vansh Bhatia&lt;/a&gt; were my mentors during this mentorship. Later on, &lt;a href="https://github.com/Saranya-jena"&gt;Saranya Jena&lt;/a&gt;, &lt;a href="https://github.com/SarthakJain26"&gt;Sarthak Jain&lt;/a&gt; also joins.I had weekly sync-up meetings with them. In this meeting, we reviewed the goals we set in our previous meetings, discussed the progress, reviewed PRs I made, and identified any new goals or objectives that I would like to work towards. In our case, we documented our meetings in Docs, as shown in the photo below.&lt;/p&gt;

&lt;p&gt;Firstly I started with reading &lt;a href="https://docs.litmuschaos.io/"&gt;Litmuschaos Docs&lt;/a&gt;, setting up my local environment, using the litmus  and running the litmus on my local cluster. This helped my to get brief idea how litmus works, also Shubham bhaiya explained me several components of litmus and it's architecture. &lt;/p&gt;

&lt;p&gt;Now, it was time to get into the project: I kicked off the project with the task of adding the Unit tests in&lt;a href="https://github.com/litmuschaos/chaos-exporter"&gt; Chaos-Exporter&lt;/a&gt;, with weekly sync meeting being held, and discussion , i raised my First PR. From this task I learned about unit testing in golang, mocking the function and a lot more things. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--GZCorrTG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/tm79sjcc3e2wcdov4q9u.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--GZCorrTG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/tm79sjcc3e2wcdov4q9u.png" alt="Image description" width="800" height="446"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now, Let's get to second task, so now Sarthak and Saranya joins us, and i've been assigned the task to make &lt;a href="https://github.com/litmuschaos/litmusctl"&gt;litmusctl&lt;/a&gt;, a command-line utility developed by the LitmusChaos community, offers a powerful set of commands to manage, configure, and control various aspects of chaos engineering experiments. We're keeping tracks of tasks in a docs.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--oO3cdWBd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/16e2e1lw16qxn2wm7ojc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--oO3cdWBd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/16e2e1lw16qxn2wm7ojc.png" alt="Image description" width="800" height="446"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As I was working on this task, I faced a lot of challenges but everything set sort out in the weekly sync up meetings. This task took me a long time, and finally raised the PR. Now it's was time test the changes, review the PR and after all resolving failing check again and again ( and force push ) we got something:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--hQFyQc-_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wioyt0hb2f52c6nuyfmr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--hQFyQc-_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wioyt0hb2f52c6nuyfmr.png" alt="Image description" width="583" height="273"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;and amazing part is that, the changes introduced by were part of new release of &lt;a href="https://github.com/litmuschaos/litmusctl/releases/tag/0.23.0"&gt;litmusctl&lt;/a&gt;:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--6zY3n36L--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/k8d2ix5mywrzrjr1prea.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6zY3n36L--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/k8d2ix5mywrzrjr1prea.png" alt="Image description" width="638" height="474"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I've been contributing since the mentorship started, making small bugs fixed to introducing new changes. All of these contributions made the mentorship more interesting. If i started to explain all of these may this blog will never end. (just exaggerating)&lt;/p&gt;

&lt;h2&gt;
  
  
  Okay, you did this and that
&lt;/h2&gt;

&lt;p&gt;This mentorship has been great, working on several projects with amazing mentors, will play a crucial role in my open-source journey. &lt;br&gt;
Throughout my mentorship, I created a total of 5 pull requests. Out of these, 2 of them were successfully merged into the project, while 3 were still under review.&lt;br&gt;
I also create a blog post &lt;a href="https://dev.to/nageshbansal/exploring-litmusctl-a-comprehensive-guide-170k"&gt;'Exploring litmusctl: A Comprehensive Guide'&lt;/a&gt; to &lt;a href="https://dev.to/t/litmuschaos"&gt;Litmus Blogs&lt;/a&gt;. This blog explains how to use new release of Litmusctl.&lt;/p&gt;

&lt;p&gt;LitmusChaos hosts Community and Contributor meeting every month and I had a chance to present my work and show it's demo in meet.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--zp7zo6CS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/t55rm3swci502g6gh0ob.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--zp7zo6CS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/t55rm3swci502g6gh0ob.png" alt="Image description" width="800" height="452"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And i got graduated from LFX mentorship.. But exploring chaos doesn't end here. &lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion: From Chaos to Clarity
&lt;/h2&gt;

&lt;p&gt;In summary, my journey through the LFX Mentorship Program with LitmusChaos has been both challenging and rewarding. Navigating the vast CNCF project landscape as a newcomer can be overwhelming, but with the right resources and guidance, it becomes an exciting adventure.&lt;/p&gt;

&lt;p&gt;The LFX Mentorship Program connected me with experienced mentors who provided crucial support throughout my journey. Key takeaways include the importance of selecting a project aligned with your interests, submitting a well-prepared application, and actively engaging with mentors and the community.&lt;/p&gt;

&lt;p&gt;During the mentorship, I made meaningful contributions to LitmusChaos. These contributions not only enhanced my skills but also enriched the LitmusChaos ecosystem and helped others.&lt;/p&gt;

&lt;p&gt;As I graduate from the program, I look forward to continuing my exploration of Chaos Engineering and open source. To those considering a similar journey, I encourage you to embrace the opportunity, learn, and grow in the open-source world. Your adventure awaits!&lt;/p&gt;

&lt;p&gt;And before we sign off, a big shoutout and heartfelt thanks go to the amazing folks —the Litmus team! Your dedication to crafting a tool as awesome as litmusc doesn't go unnoticed.&lt;/p&gt;

&lt;p&gt;Discover more about LitmusChaos by becoming part of our community on &lt;a href="https://github.com/litmuschaos/litmus"&gt;GitHub&lt;/a&gt; and &lt;a href="https://kubernetes.slack.com/?redir=%2Farchives%2FCNXNB0ZTN"&gt;Slack&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;It's time to let the chaos begin! 🚀🔥&lt;/p&gt;

&lt;p&gt;Nagesh Bansal&lt;br&gt;
LitmusChaos Contributor&lt;br&gt;
&lt;a href="https://www.linkedin.com/in/nagesh-bansal/"&gt;Linkedin&lt;/a&gt; | &lt;a href="https://github.com/Nageshbansal"&gt;Github&lt;/a&gt;&lt;/p&gt;

</description>
      <category>litmuschaos</category>
      <category>lfx</category>
      <category>opensource</category>
      <category>cncf</category>
    </item>
    <item>
      <title>Exploring litmusctl: A Comprehensive Guide</title>
      <dc:creator>Nagesh Bansal</dc:creator>
      <pubDate>Wed, 23 Aug 2023 13:36:41 +0000</pubDate>
      <link>https://forem.com/nageshbansal/exploring-litmusctl-a-comprehensive-guide-170k</link>
      <guid>https://forem.com/nageshbansal/exploring-litmusctl-a-comprehensive-guide-170k</guid>
      <description>&lt;p&gt;This blog is a guide that explains how to run LitmusChaos on a remote cluster using Litmusctl. It's not just about scheduling Chaos Scenarios on your main cluster – Litmus also lets you set up Chaos on a remote cluster.&lt;/p&gt;

&lt;p&gt;Litmusctl, a command-line utility developed by the LitmusChaos community, offers a powerful set of commands to manage, configure, and control various aspects of chaos engineering experiments. &lt;br&gt;
In this guide, we will dive into the syntax, usage, and capabilities of litmusctl, making it easier for you to leverage this tool effectively.&lt;/p&gt;
&lt;h2&gt;
  
  
  Pre-Requisites
&lt;/h2&gt;

&lt;p&gt;To run this experiment, we need a few things beforehand:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Minikube cluster. Recommended sizing of at least: 2 vCPUs, 8GB memory, 10GB of disk space (for persistent volume creation)&lt;/li&gt;
&lt;li&gt;Helm3 or Kubectl&lt;/li&gt;
&lt;li&gt;Access to Internet from Cluster&lt;/li&gt;
&lt;li&gt;Have Litmus 3.0.0-beta9 or later installed.&lt;/li&gt;
&lt;li&gt;A Google Cloud Account&lt;/li&gt;
&lt;li&gt;A GCP project with privileges to access GKE.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  Setting Up LitmusChaos Cluster on GCP
&lt;/h2&gt;

&lt;p&gt;I'm using the GCP Kubernetes Engine to Run a LitmusChaos Chaoscenter instance on a remote cluster.&lt;br&gt;
PS: You can use some other alternatives or maybe even a local cluster using minikube.&lt;/p&gt;
&lt;h3&gt;
  
  
  Install Litmus
&lt;/h3&gt;
&lt;h4&gt;
  
  
  Mongo installation via Helm - Bitnami Mongo
&lt;/h4&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;helm repo add bitnami https://charts.bitnami.com/bitnami 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h5&gt;
  
  
  mongo-values.yml
&lt;/h5&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;auth:
  enabled: true
  rootPassword: "1234"
  # -- existingSecret Existing secret with MongoDB(&amp;amp;reg;) credentials (keys: `mongodb-passwords`, `mongodb-root-password`, `mongodb-metrics-password`, ` mongodb-replica-set-key`)
  existingSecret: ""
architecture: replicaset
replicaCount: 3
persistence:
  enabled: true
volumePermissions:
  enabled: true
metrics:
  enabled: false
  prometheusRule:
    enabled: false

# bitnami/mongodb is not yet supported on ARM.
# Using unofficial tools to build bitnami/mongodb (arm64 support)
# more info: https://github.com/ZCube/bitnami-compat
#image:
#  registry: ghcr.io/zcube
#  repository: bitnami-compat/mongodb
#  tag: 6.0.5
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;




&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;helm install my-release bitnami/mongodb --values mongo-values.yml -n litmus --create-namespace
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Apply the Manifest
&lt;/h4&gt;

&lt;p&gt;Applying the manifest file will install all the required service account configuration and ChaosCenter.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;kubectl apply -f https://litmuschaos.github.io/litmus/3.0.0-beta10/litmus-3.0.0-beta10.yaml
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Verify the Installation
&lt;/h4&gt;

&lt;p&gt;Check if the Litmus control plane components comprising the Web-UI (frontend), GraphQL server(server), Auth-server &amp;amp; MongoDB pods are created and running successfully.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;litmusctl-guide@cloudshell:~ (litmus-393109)$ kubectl get po -n litmus
NAME                                       READY   STATUS    RESTARTS     
litmusportal-auth-server-78dfb9f65-hq4lm   1/1     Running   0     
litmusportal-frontend-8cd79bb47-88qgm      1/1     Running   0
litmusportal-server-7b85867b95-j2ndz       1/1     Running   0         
my-release-mongodb-0                       1/1     Running   0    
my-release-mongodb-1                       1/1     Running   0
my-release-mongodb-2                       1/1     Running   0 
my-release-mongodb-arbiter-0               1/1     Running   0     
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It might take a few minutes for all the pods to have a running state. Give it some time.&lt;/p&gt;

&lt;h4&gt;
  
  
  Access the ChaosCenter
&lt;/h4&gt;

&lt;p&gt;To access the litmus frontend, we need to know what service exposes this frontend. To get a list of running services in the litmus namespace, run the below command.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;kubectl get svc -n litmus
NAME                                  TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)                       
litmusportal-auth-server-service      NodePort    10.8.xxx.xxx   &amp;lt;none&amp;gt;        9003:xxxxx/TCP,3030:xxxxx/TCP
litmusportal-frontend-service         NodePort    10.8.xxx.xxx   &amp;lt;none&amp;gt;        9091:xxxxx/TCP               
litmusportal-server-service           NodePort    10.8.xxx.xxx   &amp;lt;none&amp;gt;      9002:xxxxx/TCP,8000:xxxxx/TCP
my-release-mongodb-arbiter-headless   ClusterIP   None           &amp;lt;none&amp;gt;        27017/TCP                    
my-release-mongodb-headless           ClusterIP   None           &amp;lt;none&amp;gt;        27017/TCP                    
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;From the above, we can see that the frontend is exposed via a NodePort service and it has the name of litmusportal-frontend-service. It exposes this service on a TCP port that looks something like 9091:xxxxx/TCP where xxxxx is the corresponding node port of the service.&lt;/p&gt;

&lt;p&gt;To access the ChaosCenter, we need to expose this port by using a firewall rule. We can do this by running this command:&lt;/p&gt;

&lt;h4&gt;
  
  
  Expose the node port
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;gcloud compute firewall-rules create frontend-service-rule &lt;span class="nt"&gt;--allow&lt;/span&gt; tcp:&amp;lt;NODE_PORT&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Replace the NODE_PORT in the command above with your service's node port. You should expose the firewall for both the litmusportal-frontend-service and the litmusportal-server-service.&lt;/p&gt;

&lt;p&gt;You can now access the ChaosCenter, but first, you need to get the external IPs of your node.&lt;/p&gt;

&lt;h4&gt;
  
  
  Get node external IPs
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;nageshbansal59@cloudshell:~ (litmus-393109)$ kubectl get nodes -o wide
NAME                                           STATUS   ROLES    AGE   VERSION            INTERNAL-IP   EXTERNAL-IP     OS-IMAGE                             KERNEL-VERSION   CONTAINER-RUNTIME
gk3-autopilot-cluster-1-pool-1-243efeac-8xwq   Ready    &amp;lt;none&amp;gt;   19d   v1.26.5-gke.1400   10.xxx.xx.xxx   34.xxx.xx.xxx   Container-Optimized OS from Google   5.15.107+        containerd://1.6.18
gk3-autopilot-cluster-1-pool-1-936f0a64-4rmh   Ready    &amp;lt;none&amp;gt;   19d   v1.26.5-gke.1400   10.xxx.xx.xxx   34.xxx.xx.xxx    Container-Optimized OS from Google   5.15.107+        containerd://1.6.18
gk3-autopilot-cluster-1-pool-1-dcd5ea45-xx28   Ready    &amp;lt;none&amp;gt;   8d    v1.26.5-gke.1400   10.xxx.xx.xxx   34.xxx.xx.xxx    Container-Optimized OS from Google   5.15.107+        containerd://1.6.18
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Copy the external IP of any of the above nodes and paste it into your browser's URL, followed by a :xxxxx where xxxxx corresponds to your node port. You will be presented with a screen showing the ChaosCenter's homepage.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--BqHyCxaR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4lx2pg6i17bcq4uqxv81.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--BqHyCxaR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4lx2pg6i17bcq4uqxv81.png" alt="Image description" width="800" height="405"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Accessing the Chaos-Center
&lt;/h3&gt;

&lt;p&gt;Use Following Credinatls to login into the Chaos-Center:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;Username&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;admin&lt;/span&gt;
&lt;span class="na"&gt;Password&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;litmus&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;and here is the your Chaos-Center:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--lNsgCbmc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pvq2h57tpwsbxfnijoy8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--lNsgCbmc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pvq2h57tpwsbxfnijoy8.png" alt="Image description" width="800" height="405"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ouPIk8_x--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://media.tenor.com/o3C8dCoGGWoAAAAC/dwight-michaelscott.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ouPIk8_x--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://media.tenor.com/o3C8dCoGGWoAAAAC/dwight-michaelscott.gif" alt="And...Finally your Litmus cluster is running up high" width="350" height="198"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  Litmusctl
&lt;/h3&gt;

&lt;p&gt;The Litmuschaos command-line tool, litmusctl, allows you to manage litmuschaos's execution plane. You can use litmusctl to connect Chaos Infrastructures, create project, schedule Chaos Experiments, disconnect Chaos Experiments and manage multiple litmuschaos accounts.&lt;/p&gt;

&lt;p&gt;Litmusctl binaries can be downloaded from the &lt;a href="https://github.com/litmuschaos/litmusctl#installation"&gt;Litmusctl Releases&lt;/a&gt; according to the &lt;a href="https://github.com/litmuschaos/litmusctl#compatibility-matrix"&gt;Compatibility Matrix&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;As for now we're using the Litmus-3.0.0-beta10, so &lt;a href="https://github.com/litmuschaos/litmusctl#installation"&gt;litmusctl-0.23.0&lt;/a&gt; will be the version you should download according to OS.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;NOTE: The binary should be downloaded to the target cluster and not the GKE cluster where the control plane is situated. &lt;/p&gt;

&lt;h3&gt;
  
  
  Installing litmusctl
&lt;/h3&gt;

&lt;p&gt;For Linux/MacOS&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Extract the binary
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;tar&lt;/span&gt; &lt;span class="nt"&gt;-zxvf&lt;/span&gt; litmusctl-&amp;lt;OS&amp;gt;-&amp;lt;ARCH&amp;gt;-&amp;lt;VERSION&amp;gt;.tar.gz
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Provide necessary permissions
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;chmod&lt;/span&gt; +x litmusctl
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Move the litmusctl binary to /usr/local/bin/litmusctl. Note: Make sure to use root user or use sudo as a prefix
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;mv &lt;/span&gt;litmusctl /usr/local/bin/litmusctl
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Verify Installation
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt; litmusctl version 
Litmusctl version:  0.23.0
Compatible ChaosCenter versions: 

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Using Litmusctl commands
&lt;/h3&gt;

&lt;p&gt;litmusctl commands in Linux/macOS:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;litmusctl &amp;lt;&lt;span class="nb"&gt;command&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &amp;lt;subcommand&amp;gt; &amp;lt;subcommand&amp;gt; &lt;span class="o"&gt;[&lt;/span&gt;options and parameters]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For using the v0.23.0 with Litmus-3.0.0-beta9 or later you can refer to the &lt;a href="https://github.com/litmuschaos/litmusctl/blob/master/Usage_0.23.0.md"&gt;User Guide for v0.23.0&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Connecting a Chaos Infrastucture to Chaos-Center
&lt;/h3&gt;

&lt;p&gt;Litmusctl has the following requirements:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;kubeconfig - litmusctl needs the kubeconfig of the k8s cluster where we need to connect litmus chaos delegates. The CLI currently uses the default path of kubeconfig.
kubectl - litmusctl is using kubectl under the hood to apply the manifest. To install kubectl, follow: kubectl
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;em&gt;NOTE : I'm using a Minikube Cluster Locally.&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;To setup an account with litmusctl
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;litmusctl config set-account
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Next, you need to enter ChaosCenter details to login into your ChaosCenter account. Fields to be filled in:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;ChaosCenter URL:&lt;/strong&gt; Enter the URL used to access the ChaosCenter.(The Url we used to get to the frontend)&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Example, &lt;a href="https://34.xxx.xx.xxx:XXXX"&gt;https://34.xxx.xx.xxx:XXXX&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Username:&lt;/strong&gt; Enter your ChaosCenter username. &lt;br&gt;
&lt;strong&gt;Password:&lt;/strong&gt; Enter your ChaosCenter password.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Host endpoint where litmus is installed: 34.xxx.xx.xxx
Username [Default: admin]: admin

Password:
account.username/admin configured
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;To Get a List of Projects
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;litmusctl get projects
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--GVlXIAgL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/image-3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--GVlXIAgL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/image-3.png" alt="Alt text" width="" height=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;To connect a Chaos Infrastructure in a cluster mode&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Before a connecting a new Infrastructure check if you have an existing environment in your chaos-center.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s---2z27hbE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/grxvgua9prhjosyb69ys.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s---2z27hbE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/grxvgua9prhjosyb69ys.png" alt="Image description" width="800" height="409"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you don't have any, new environments can be created using the command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;litmusctl create chaos-environment      

Enter the Project ID: f20b7907-8644-42ad-b813-fbac39fb8eb4

Enter the Environment Name: demo-env

🚀 New Chaos Environment creation successful!! 🎉
EnvironmentID: demo_env

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--RN07MZJ4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/weo3bkvyhw2o2h6v03d4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--RN07MZJ4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/weo3bkvyhw2o2h6v03d4.png" alt="Image description" width="800" height="144"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now finally connecting a new Infrastructure&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;litmusctl connect chaos-infra
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After Running this command, several details are required to connect the new Infrastructure:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--keB7iFUi--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lnkui3iymv6zbtl0391x.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--keB7iFUi--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lnkui3iymv6zbtl0391x.png" alt="Image description" width="800" height="553"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And, after applying the manifest to your local cluster, we will get:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--6uGxRyWx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/sc0lgwib1n2izcwysfth.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6uGxRyWx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/sc0lgwib1n2izcwysfth.png" alt="Image description" width="672" height="33"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;also, you can see the new Infrastructure in chaos-center:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--h7SDyisE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/55xq39rts0r2xzlsq68u.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--h7SDyisE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/55xq39rts0r2xzlsq68u.png" alt="Image description" width="800" height="398"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now,I would suggest you to try to run a Chaos Experiment Using the Litmusctl and Chaos-Center both and, let me know how it goes. ( Refer to Usage Guide if you hit any blocker :-).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;And before we sign off, a big shoutout and heartfelt thanks go to the amazing folks behind the scenes—the Litmus team! Your dedication to crafting a tool as awesome as litmusctl doesn't go unnoticed&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Discover more about LitmusChaos by becoming part of our community on &lt;a href="https://github.com/litmuschaos/litmus"&gt;GitHub&lt;/a&gt; and &lt;a href="https://kubernetes.slack.com/?redir=%2Farchives%2FCNXNB0ZTN"&gt;Slack&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;It's time to let the chaos begin! 🚀🔥&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Nagesh Bansal&lt;br&gt;
LitmusChaos Contributor&lt;br&gt;
&lt;a href="https://www.linkedin.com/in/nagesh-bansal/"&gt;Linkedin&lt;/a&gt; | &lt;a href="https://github.com/Nageshbansal"&gt;Github&lt;/a&gt;&lt;/p&gt;

</description>
      <category>litmuschaos</category>
      <category>kubernetes</category>
      <category>chaosengineering</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
