Guest post originally published on Chaos Mesh’s blog by Debabrata Panigrahi, LFX Mentee at Chaos Mesh

About Me#

I’m a junior undergraduate majoring in Biomedical Engineering in the Department of Biotechnology and Medical Engineering at the National Institute of Technology Rourkela, India. For someone who started to code only because I was fascinated by it, it was all a journey of self-learning, filled with various adversities. But when I started with open-source contributions, it was all very beginner-friendly and I came across a lot of people who helped me learn the tech stack better.

Screenshot of Debabrata Panigrahi mentee page

The journey through the application#

In the spring of 2021, I got to know about this LFX mentorship program and after browsing through all the projects, it felt quite intimidating to me as I wasn’t acquainted with most of the terms and was confused, and I thought it was not for newbies like me. Then I went through the program docs, the mentorship FAQ’s followed the steps mentioned there and applied for a few projects that interested me, and used tech-stacks that I am familiar with, like Docker, AWS, Python, etc.

Then I applied to both projects offered by Chaos Mesh and submitted my CV and cover letter as immediate tasks. After a few days, I received an email from my mentor regarding an additional task to be submitted.

Screenshot showing email of Zhou Zhiqiang regarding small quiz as interview question

I completed the above-mentioned task, uploaded the files to GitHub, and shared the link with my mentor.

The selection and Initial days as a mentee#

I distinctly remember the day when I received an email from my mentor regarding my selection in the mentorship program. I was elated, as it was my first involvement in any open-source program. I was glad to be accepted as a mentee in the program, I even received an email from CNCF regarding my selection.

Screenshot showing email from LF Engineering Team congratulate Debabrata for being accepted as a mentee to the CNCF - Chaos Mesh: Enrhicing AWS chaos mentorship

Along with my mentor, we decided on our mode of communication: through Slack. He also enquired about my knowledge of Kubernetes and GOlang, as I didn’t have much knowledge about either of them. He suggested a few resources and gave me 2 weeks to go through them. In the meantime, he also planned a few experiments for me to get acquainted with all these technologies.

As I was getting more comfortable with Kubernetes, I started exploring Chaos Mesh and completed the interactive tutorial, which gave me a clearer idea about the usage of Chaos Mesh. I then implemented the hello-world chaos, which helped me to know more about controllers and CRDs, considered to be the most important part of Chaos Mesh. Also, I got to know about the boilerplate codes, the kube-builder client, and how to use them for scaffolding, followed by writing our own controllers.

After the initial days of experimenting and getting to know the project better, I started with solving a few good first issues to get acquainted with upstream contributions to Chaos Mesh.

Debabrata's contributions to Chaos Mesh

In one of my contributions, I tried to add multi-container support to stress-chaos, which was not possible before. Though it was successfully implemented, it broke a few other features and couldn’t be merged for the upcoming release. What’s more, for the 2.0.0 release, this refactoring was already done, so this particular contribution was a learning experience for both me and my mentor. After that, we became careful and the next time we tried to implement any new features, we would first submit an RFC and have discussions with the other contributors before starting.

My contribution to AWS Chaos#

Initially, I was asked to implement one type of AWS Chaos as part of this project, but as I started exploring more about it, I found awsssmchaosrunner, and given its functionality, we wanted to integrate it into Chaos Mesh.

We planned to do it in two parts, one part is the “runner thing” project, which integrates with awsssmchaosrunner, that part should be written in kotlin, and a docker image is to be built out of it.

Another part is the definition of the AWS Chaos and its controller, which is to be written in go, the controller of AWS Chaos will create a pod with that “kotlin cli image”, and send commands to AWS.

Other opportunities#

I was invited to one of the Chaos Mesh community meetings towards the end of the mentorship where I showcased my project.

Afterwards, I applied for the CFP for Kubernetes Community Days Bangalore, scheduled virtually from June 25–26, 2021, and was selected as a speaker and now I’m all set to present my talk there.

Graduation and Next steps#

Yayyyy!! After 12 weeks, I successfully graduated from the program, thanks to my mentor Zhou Zhiqiang and his guidance, because without whom, this wouldn’t have been possible.

I had an amazing time with the Chaos Mesh community, with the amazing members supporting and helping me throughout the journey. I look forward to contributing more to this project and being more active in the community.

Join the Chaos Mesh community#

To join and learn more about Chaos Mesh, find the #project-chaos-mesh channel in CNCF slack workspace or their GitHub.