LFX Mentorship: Where to start to become a good OpenSource Contributor

dusdjhyeon
4 min readSep 3, 2024

--

Introduction

With open source on the rise, contributing to open source is on the minds of many developers. However, finding out where, how, and to what extent you can contribute can be very challenging. I would highly recommend LFX Mentorship to anyone in this situation.

With LFX Mentorship, you’ll receive active support from the Linux Foundation and project mentors. In addition, the issue that the mentee will be working on is already set, which is a great point to start.

Among many projects, I ended up working with LitmusChaos, an open source Chaos Engineering platform that enables teams to identify weaknesses & potential outages in infrastructures by inducing chaos tests in a controlled way. My mentors were @Vedant Shrotria, @Sayan Mondal, and @Raj Babu Das.

What’s my background when I join?

When I applied for mentorship, I was just a senior computer science student. And I didn’t know much about Chaos Engineering.

It’s just that I heard about LitmusChaos at a conference a while back, and that piqued my interest, so I applied.

I have experience with Golang and Kubernetes in project skills, and I emphasized this in my Resume and Cover Letter. I’ve also always had a hunger for open source, so I mentioned this several times.
As a result, I was fortunate enough to get a mentorship opportunity.

What I experienced during my mentorship?

My issue was titled Revamp Litmus Helm Agent, UBI migration of Images.
There were two main processes here.

  1. Existing Docker Images Migration(alpine base -> UBI)
  2. Remove Login process when installing litmus helm-agent

Image Migration

Previously, several Docker Images of LitmusChaos used a custom image based on alpine as a UBI(RHEL-based) image(infra-alpine, experiment-alpine). This improves the vulnerability issues of the previous base image and ensures OpenShift compatibility.

I needed to migrate the following images:

Improve Helm-Agent

helm install litmus-agent litmuschaos/litmus-agent \
--namespace litmus --create-namespace \
--set "INFRA_NAME=helm-agent" \
--set "INFRA_DESCRIPTION=My first agent deployed with helm !" \
--set "LITMUS_URL=https://chaos-center.domain.com" \ # FOR REMOTE AGENT (INGRESS)
--set "LITMUS_URL=http://litmusportal-frontend-service.litmus.svc.cluster.local:9091" \ # FOR SELF AGENT (SVC)
--set "LITMUS_BACKEND_URL=http://litmusportal-server-service.litmus.svc.cluster.local:9002" \ # FOR SELF AGENT (SVC)
--set "LITMUS_USERNAME=admin" \
--set "LITMUS_PASSWORD=litmus" \
--set "LITMUS_PROJECT_ID=<PROJECT_ID>" \
--set "global.INFRA_MODE=cluster"

For a traditional litmus helm-agent, we get the USERNAME and PASSWORD as shown in the code above and log into Infra with them, as shown in the code above.
This can seem ambiguous to the user and involves an unnecessary process that is more straightforward than just getting the Infra information via ACCESS_KEY and SECRET_KEY.
So, I’ve fixed this so that helm-agent no longer relies on login credentials.

How do our meetings work?

We had weekly Sync meetings. They organized our meetings into Google Docs so that I could easily check them in Tasks. As a non-native English speaker, this made sure that I didn’t miss anything in the meetings.
I also shared my questions and concerns in Google Docs to make sure I got everything. We tried to actively communicate with each other, and this was very enlightening for me!

Challenges I faced

Compared to other image migrations, migrating a go-runner image was challenging. The go-runner(litmus-go) actually implements the commands we use in the experiment, so we needed to install several binaries to run the commands. There were many things to consider, such as the version, permissions, and storage location of each binary. So I met several errors, including the screenshot below.

But with the guidance of my mentors and the testing process, I was able to finish well. (Also, I didn’t know much about UBI and the OpenShfit environment, so I had to learn the basics….)

Also, in the case of Helm-agent, it wasn’t that the task was difficult, but that I didn’t know enough about Helm to understand how it works. However, I went through the process of diagramming the process. And, while exploring several other Helm Charts, organizing both the folder structure and the role of each file.

Conclusion

I opened 8 PRs during the mentorship period, 4 of which were merged. Three are under review. I plan to make additional contributions after the mentorship and will continue to be interested in open source and LitmusChaos in the future.

I didn’t just get open source experience or careers from this mentorship, but also gained confidence in my communication style and English. I believe this program is very popular, but there are not many applicants from Korea. I think there is probably a big language barrier. However, the mentors are very friendly and the meeting minutes is very well done, so there is less confusion about the tasks. Also, if you have any questions, you can make use of the weekly meetings to ask them, record them, and listen to them multiple times.

Don’t be afraid to apply!!!

--

--