My experience as an LFX mentee for the project CRI-O(Conmon-rs)
Introduction
I am glad to share my experience as an LFX Mentee for CRI-O(Conmon-rs), an open-source project that focuses on Monitoring within the cloud native ecosystem. My passion for open-source projects and emerging technologies led me to explore the world of DevOps and Cloud Native tools.
In the application Period, I used all three attempts to draft proposals as well as cover letters for different projects in which I was interested as I was not sure to get selected in any one of them specifically but as the result came I was selected for this project of fall term as a mentee!.
Being selected as a mentee for CRI-O(Conmon-rs) was a moment of great excitement. It affirmed my commitment to diving deep into the Container runtime ecosystem.
When I had my first meet and greet session with Peter Hunt and Sascha Grunert it went as smoothly as it should and I knew my journey going to be exceptional with a lot of learning along the way as my mentors were both supportive and helped me with a better understanding of the project.
Throughout my mentorship, I contributed to the Conmon-rs as this was my primary task to add different log driver support apart from the default CRI logger as it will enhance the readability and user experience when using Conmon-rs. This experience allowed me to sharpen my coding skills while also understanding the complexities of a real-world, production-ready open-source project. Working with Conmon-rs gave me a deep understanding of the Conmon-rs architecture and Container monitoring insights as well as how conmon (the original one) fits into the big picture and how conmon-rs will be a better replacement for conmon which was written in C. This knowledge was invaluable for my DevOps aspirations. I understood the importance of Container monitoring for troubleshooting and optimizing performance.
This mentorship significantly boosted my confidence as a developer and my understanding of open-source contributions. I now have clarity regarding my career goals and a network of professionals to learn from and collaborate with in the future.
Application Process
I discovered the CRI-O (Conmon-rs) project on the CNCF LFX Mentorship page and was immediately drawn to it. Having a passion for container technology and the right technical background, I saw this as an excellent opportunity to contribute to an open-source project, a goal I had long harbored. I carefully prepared my application, ensuring my resume highlighted my relevant experience, skills, and contributions to the tech community, especially in areas pertinent to container runtime and Kubernetes.
In my cover letter, I took the initiative to propose specific tasks and contributions I could make during the mentorship, focusing on the unique aspects of the CRI-O (Conmon-rs) project. This not only demonstrated my commitment but also my understanding of the project’s objectives and how my skills could be beneficial.
The wait after submitting my application was filled with a mix of nervousness and excitement. The anticipation of possibly contributing to a project I was so passionate about was intense. Fortunately, my efforts paid off, and I received the email that I had been selected for the mentorship. It was a moment of immense joy for me and validation of my efforts.
Project Process
The project I applied for was to add the additional log driver support to common-rs as the existing one is just the CRI logger which is default and we wanted to provide more options to view the logs and there is also an extended goal to support for the Spulnk log driver within scope.
During the first two weeks of the project, I got familiar with the implementation process and some details of the Conmon-rs code base. In the next two weeks, I started to contribute to the sub-part of the project which is introducing a new JSON log driver support for it and we decided to do this PR in the draft stage first to get it tested and reviewed. This will enable the new format for the logs to be viewed, which is in JSON format.
This phase of work required a deep understanding of both Conmon and Conmon-rs and the project’s architecture. During this time, I studied blogs and saw previous KubeCon talks regarding the project overview given by Peter and Sascha about CRI-O how Conmon integrates with CRI-O and what is the future aspect of the Conmon-rs and the design principles implemented in it.
The tasks related to End-to-end tests were strange to me in the first place as I was not so familiar with the Integration tests. Therefore, I had to ask my mentors for technical support from time to time, and they were always very responsive. I was greatly impressed by my mentor’s extensive knowledge and experience in this field. Under the guidance of my mentors, I was finally able to put together all sets of milestones for my task. Later, we decided that while writing End-to-end tests for the JSON log driver we should start implementation of the Journald Log driver too as it is also the Sub-part of the Goal and we have to write Unit tests as well as Integration tests same as JSON log driver.
However, during the subsequent coding work, I encountered various problems. The most challenging part was to write Integration tests as I had to gain deep insights into how everything plays out in the project and what part of my code is affected which I later was able to resolve by submitting two PRs in total one for JSON log driver and one for Journald log driver with its Unit tests and integration tests as currently Journald tests are not written but eventually it will be completed for the project gradually as discussed with the mentors and also to bring some other implementation changes as we progress.
Conclusion
My journey through this project was marked by a systematic approach to learning, active contribution, and effective problem-solving. This process allowed me to showcase my adaptability, particularly in seeking assistance when necessary and working closely with mentors and the wider community.
Facing and overcoming challenges throughout this experience has been instrumental in my development as a developer and an active participant in open-source projects. My dedication to documenting my progress and reflecting on each step exemplifies my commitment to ongoing self-improvement. This project not only made a significant impact on the Conmon-rs project but also immensely enhanced my skills and understanding in the field of Container and monitoring technologies.
For those interested in joining the LFX Mentorship initiatives, I encourage you to begin your journey by engaging with the community through small contributions. This initial step can be a valuable precursor to applying for mentorship.
Thank you for taking the time to read about my experience.
