My Experience Working on the KWOK Project as an LFX Mentee

Charles Uneze - Aug 27 - - Dev Community

Table of Contents

In June 2024, I got the amazing notification that I’d been selected as an LFX mentee in Term 2, 2024. This was my second attempt to participate in the LFX mentorship program. I found out about the program from Divine Odazie in one of his Twitter spaces.

I was selected to work on the Kubernetes without Kubelet (KWOK) project with mentorship support from the DaoCloud software engineering team, Shiming Zhang and Zhenghao Zhu.

What’s the KWOK Project About?

CNCF - KWOK

Source: CNCF

KWOK is a Kubernetes sub-project, people often refer to these sub-projects as Kubernetes Special Interest Group (SIG) projects.

It allows developers to simulate large clusters with hundreds of nodes and pods that consume little resources. It uses real Kubernetes components but operates without a Kubelet.

How I Got Accepted

I never knew about the project in the past. However, I was studying the Certified Kubernetes Administrator (CKA) topics, so I understood how Kubernetes works from the perspective of an administrator. I just needed an extra push to understand the KWOK project.

Step 1: Use the Project

I spun up a virtual machine on AWS and installed the requirements needed to test the project in action. I tried various scenarios, as you would when you are learning a certification like the CKA. You can find the scenarios I tried in this repository.

Along the way, I noticed issues both in the project documentation and in the code outputs when interacting with the tool via the CLI. For each issue, I opened a PR, and when I got confused, I shared my questions on the Slack channel.

Step 2: Analyze the Expected Outcome

Each project specifies its expected outcome. While building my confidence, I made sure to know that I could achieve the outcome. So I reviewed each project outlined in the referenced GitHub issue. I read each pull request and blog post to learn how the project uses KWOK. When I was confident that I understood it to a great extent, I sent in my mentee application.

New Concepts I Learned

  • New cloud native projects: While working on the project, I had the opportunity to learn about other projects too. For example, Kubevirt, Kyverno, Clusterpedia, etc.
  • How to generate an image from a bash script: A tool called Asciiema allows developers to test their bash script in action while also recording the execution from their terminal. This is helpful because it validates that your script works. There were times when I assumed my documentation was accurate, however, when I tried the instructions using the tool, it failed. Thankfully, I got it fixed.
  • How other cloud-native projects utilize custom control planes: While studying the CKA topics, I only knew about the Kubernetes control plane. This mentorship exposed me to other cloud-native tools that use additional custom control planes for their specific needs.
  • How projects uniquely utilize etcd: I initially knew that configuration data was stored in etcd. However, I never knew that a project could utilize it to store other important information. For example, Kyverno uses it to store policy reports.

What I Struggled With

  • Git: I struggle with not knowing when to use a git rebase vs git merge. KWOK rolled out a new feature that needed to be integrated into my branch. I wanted to show only my commit history in my pull request, but I was confused about which command to use. I ended up using a git rebase because it produces a cleaner commit history. It integrates the new changes into my branch without including the commit history from the original branch in my pull request.
  • Time difference: My mentor is based in China, so he is 7 hours ahead of me. When resolving a GitHub suggestion, I often need to start addressing issues from 4 or 5 a.m. in my time zone.

My Contributions

Conclusion

The mentorship program was an amazing learning experience. I don't think the LFX mentorship is an easy program to get into. Most of the time, you need at least a CKA, CKAD, or CKS level of understanding to stand a chance. My tasks involved a lot of references to CKA topics.

This experience broadened my understanding of Kubernetes, and I’m excited to apply the skills and knowledge I have gained to new cloud-native projects and also to continue contributing to open-source software.

I’m also thankful to my mentors for giving me a chance to showcase and improve my skills. I encourage others who’d like to break into the cloud-native industry to leverage the LFX mentorship program to get hands-on experience, you won’t regret it.

. . . . . . . . .
Terabox Video Player