Mentorship spotlight guest post originally published on Medium by Yashvardhan Kukreja

Hi folks! Recently, I completed the LFX CNCF Mentorship Programme which is an Open source programme where I worked on a cool project which goes by the name of Kyverno and I decided to write a blog encapsulating my journey, from the application process till the end of this project, shedding light upon the learnings I earned and how you too can become a part of such a great programme, not because of the bucks it offers but primarily, the fantastic kind of mentorship and networking opportunities it ends up offering.

But what is the LFX CNCF Mentorship Programme

This programme is an Open-source programme initiated by The Linux Foundation to promote the involvement of people all around the globe towards open source development. This programme is similar to other open source programmes like Google Summer of Code where you get the opportunity to work on an Open-source project under the personal mentorship of its maintainers for a period of 3 months.

How does this programme work

The format of this programme is pretty straightforward and resembles with other open sources programmes out there.

Every quarter, this programme begins with different organizations proposing project ideas which they’d like the mentees to work upon. For a period of around 2 weeks, they propose their ideas over this repository.

https://github.com/cncf/mentoring

After that period, for the next ~2 weeks, the application phase for the interested people begins where they submit their applications (a cover letter) over the main linux foundation’s website.

And after a few days, the results get released and then, the fun part begins where the selected mentees get to network with their mentors and start the work on the projects for which they got selected.

How did I get selected

Well, it was pretty straightforward. I subscribed to this repository so that whenever any organization would propose an idea, I would get notified about it and I could check it out then.

One of the very first projects to be proposed was by Kyverno around developing a mechanism to make it expose Prometheus-compliant metrics and it sounded familiar to me as I had worked on something similar at a very basic level before. So, I checked out Kyverno and I liked that project as well considering the functionalities it was serving, the feature velocity it was depicting and the community engagement it was representing. Hence, I decided to target for this project and began contributing to it straight away.

I started with a good-first-issue issue and that got me familiarised enough with the codebase to start working on some feature-based issues and soon, I had attained a flow and familiarity with Kyverno’s source code to work on it smoothly without any hiccups.

my first PR to Kyverno 🙂

Meanwhile, I engaged well with the community as well, like I used to be a part of community-meetups of Kyverno and I also used to try to help out people with their doubts around using Kyverno on their community slack channel.

Once the application process began, I drafted a nice cover letter shedding light upon things like why do I want to be a Mentee for this project, why do I deserve it, etc.

And a few days after the application process ended, I received the mail confirming my acceptance into the programme (something nice to be notified about when you’re already vacationing in Goa xD)

one of my favourite mails till now 😛

Post that, I had a fun catchup with my mentor, Shuting Zhao, around how things are going to go around this project from the design to the development till the rollout and it all sounded really chill and planned.

About Kyverno

Kubernetes-native Jargon Alert!

Kyverno is a Kubernetes-native policy management engine with which you can define logical policies across your Kubernetes cluster around validating, mutating and generative behaviour.

For a much better explanation, check this out 🙂

What did I exactly work upon

Speaking of my exact project around this programme, I had to make Kyverno expose a bunch of (Prometheus-compliant) metrics which would end up providing a great set of insights around how Kyverno is acting over the end-user’s cluster and how the incoming and existing resources are interacting with the Kyverno policies.

So, to achieve that the plan was to develop a custom Prometheus exporter from scratch and exposing relevant metrics via it, and serve those metrics as a part of a dedicated server running over the normal setup of Kyverno.

For more details around my project like the intro, motivation and how to use it, check this out, it’s pretty straightforward 🙂

The first month was pretty much non-programmatic as it involved cycles of me working on designing the metrics, discussing them with the community and re-designing them with respect to the provided feedback.

Once the design phase was done, I started the dev work and over the course of next 2 months, I developed the exporter, bootstrapped its setup via helm and also, provided the users with a ready-to-use Grafana dashboard depicting readymade insights around their Kyverno setup.

Why should you definitely go for this programme

One of the best things to get from this programme (or any other paid/non-paid open source programme) is the opportunity to get personally mentored by a set of talented engineers maintaining a really cool project. Apart from that, you get more opportunities and ways to converse and network with the community and get feedbacks from them.

And finally, the stipend is an added-benefit coz why not 😉 But yeah, that being said, I’d strongly suggest you to NOT keep the stipend as your sole motivator towards this programme or any other open source programme because that would just cloud your vision from the genuine and long-lasting benefits this programme would be offering i.e. the skills, the mentorship and the networking opportunities.

Is it really tough?

Simple answer — Nope!

Let me exemplify myself:

  • I started contributing to Kyverno only a few days after it proposed its project idea, so I didn’t have/need any headstart.
  • You don’t need to be a professional in Go (or pretty much any other language) so as to be able to contribute to such kind of projects. I contributed to KyvernoStarboardLinkerdTrivyKuberhealthy just with pretty much the knowledge which one could get by sifting through “A tour of Go” for just 1–2 hours. Believe me!

At the end of the day, the most important skill for doing open source dev is Patience.

Don’t worry, if you still feel baffled, I will be writing another article really soon around how exactly do I approach any open source repository and start contributing to it just in a matter of few hours after stumbling across it for the first time.

Adios

Thanks for reaching till here! Hope you found this blog informative (and fun?) enough to have gained insights into the specifics of the LFX Mentorship Programme.

If you still have any questions regarding this programme or regarding open source dev, {cloud/kubernetes}-native stuff or tech in general, or just wanna checkout my work, feel absolutely free to reach me out on my social media handles provided below:

Twitterhttps://twitter.com/yashkukreja98

LinkedInhttps://linkedin.com/in/yashvardhan-kukreja

Githubhttps://github.com/yashvardhan-kukreja

Till then, Keep Contributing 🙂