Post by Ihor Dvoretskyi
28 interns have just successfully graduated from the latest LFX mentorship program funded by CNCF. 16 CNCF Graduated, Incubating and Sandbox projects joined this round with projects from Crossplane, Kubernetes, Thanos, Tremor and Volcano.
CNCF has been involved in mentorship programs like the LFX platform and Google Summer of Code since 2017 and has had the opportunity to have over 254 successfully graduated interns from our projects.
“Our mentorship programs have been a great way to bring in new developers to the cloud native community,” said Chris Aniszczyk, CTO at the Cloud Native Computing Foundation. “Not only do they help advance projects through improvements and bug fixes, but it is an opportunity to build this inclusive community that attracts new contributors. We look forward to continuing this investment and congratulate these new graduates on their success of leveling their open source and cloud native experience.”
Additional details on the CNCF projects, mentors, and students who successfully completed the program can be found below and on GitHub.
I was assigned with the task to add more features to the AWS chaos under chaos mesh project and I along with my mentor successfully integrated awsssmchaosrunner with AWS Chaos which brought in a plethora of features to Chaos Mesh which can now be implemented along with Chaos Mesh and observed in the dashboard.
Mentee: Debabrata Panigrahi
Mentor: Zhou Zhiqiang
“I was completely new to the CNCF landscape when I started with the mentorship program, also being a self taught programmer it was quite intimidating to me in the beginning. However, thanks to my mentor and his constant help with various resources, now I can write my own kubernetes controllers and generate CRDs. Moreover now I have distinct ideas about kubernetes, distributed systems and chaos engineering, which wouldn’t have been possible without this mentorship program.”
I worked on improving Chaosd, a daemon for non-Kubernetes nodes, so it can be integrated with a centralized Dashboard. Thus making it possible to use Chaos Mesh as a cloud-agnostic Chaos Engineering as a Service.
Mentee: Shivansh Saini
Mentor: Wang Xiang
“I learnt a lot from my mentor and had a great exposure to open source best practices and collaborating with the community. So I had a blast working on my project and would definitely recommend my peers to try this program!”
Cloud Native Buildpacks
My project was called “CNCF – Cloud Native Buildpacks: Design and implement Buildpack Registry Search”. During the mentorship program, I worked on updating readme files of multiple repos, adding github action features, adding deeplinking on https://registry.buildpacks.io, and adding some rake tasks for rails application. Contributing to open source project was a new thing to me, but my mentor made me so comfortable asking him any question and I was able to learn and do my best.
Mentee: Aswin Timalsina
Mentor: Joe Kutner
“It was the best experience I ever had as a mentee. Huge shout out to my mentor – Joe Kutner. Besides being so busy with his work, he quickly responded and guided me through any issues I had. Either recommending resources or writing a long writings, he invested a tons of hours just for improving my skills. I got to learn lot of new things like Buildpacks, Ruby on Rails, Github Action, rake and automation. Even after graduating from the LFX Mentorship program I will keep on contributing to various projects and keep educating people about the open source and CNCF world.”
Crossplane provides a broad library of Kubernetes custom resources that let you orchestrate systems external to Kubernetes. These include AWS S3 buckets, GCP CloudSQL instances, Azure Cosmos tables, plain old SQL databases, Helm releases, and Dominos pizzas. We call these ‘managed resources’. Crossplane’s goal is to allow platform teams to build their own custom resources that are in turn composed of these primitives without needing to write Kubernetes controllers in Go. Crossplane currently has extensive unit testing, but not much in the way of automated integration/e2e tests.
Mentee: Rahul Grover
Mentor: Jared Watts, Daniel Mangum and Muvaffak Onus
My primary task is to rewrite the keptn’s Prometheus service to make it independent of the Prometheus installation. I completed this task within a month, and I started working on an additional issue that is Adding keptn’s SLI service functionalities into keptn Prometheus service, which itself a big and complicated task for me. Finally, I was able to complete my remaining tasks within the mentorship period, and at last, I did the refactor of the Keptn’s documentation and tutorial regarding the code change.
Mentee: Raj Babu Das
Mentor: Jürgen Etzlstorfer
“I am glad that I got this opportunity to work with such a great Open Source project.
LFX Mentorship is a great place for a student and a working professional to work on a project that motivates and exponentially increases the ability of a developer to work in a large team”
My primary task was to add functionality to the Keptn CLI that allowed users to generate a keptn-service and automatically set it up for them so that they can dive right into developing the core logic of their service they wish to onboard onto Keptn, all from a single command, soon one might be able to generate a keptn-service right from their CLI and start developing the same.
Mentee: Hemanth Krishna
Mentor: Jürgen Etzlstorfer
“I am glad that I got this opportunity and have learnt a lot during the span of 3 months. I think it’s a really cool opportunity that you personally get mentored by amazing engineers who build tools to solve problems. I had an amazing experience working on this project and being mentored by Jürgen Etzlstorfer, Johannes Bräuer, and, Florian Bacher. We had weekly sync-up calls where we discussed our projects and resolved any road-blockers I faced during the implementation of the same.”
My project involved shadowing some UX research leads as they interview Kubernetes users, taking down notes and helping to compile data that we will be using to put together a Jobs-to-be-done study.
Mentee: Enjeck Mbeh Cleopatra
Mentor: Tasha Drew and Gaby Moreno
“My LFX Mentorship experience was awesome. When I applied for the program, I had wanted to improve my skills and contribute to open source. The LFX Mentorship program provided this and more. The best part was being paired with experienced mentors who helped me grow my skills. The only issue I faced was with the mentorship timeline. I wanted it to last for 6 months, not 3. My mentors agreed. But we didn’t know how to reach the LFX team and request for an extension.”
As part of my project, we investigated ways to evaluate dependency updates to the Kubernetes repository. We created “”depstat”” which is a command-line tool built using Cobra to analyze the dependencies of any Go modules enabled project. depstat now runs as part of two prow jobs in the Kubernetes CI system. depstat: https://lnkd.in/eAsgXzP
Mentee: Arsh Sharma
Mentor: Davanum Srinivas
“My experience was very very good. I’m so glad that I got the opportunity to do this. The best part for me was that I not only learned so much from the community but I also got to make so many friends. Amazing experience overall :)”
The Kubernetes Policy WG is defining a Policy Report CRD to help unify outputs from multiple policy engines. This helps cluster-admins with managing clusters as policy results can be viewed and managed easily as Kubernetes resources from any Kubernetes management tool (kubectl, dashboard, Octant, etc.). The project scope was to create a tool that periodically runs a CIS benchmark check like kube-bench and produces a policy report. And now as the project is successfully implemented, the kube-bench adapter runs a CIS benchmark check with kube-bench and produces a policy report based on the Policy Report Custom Resource Definition.
Mentee: Mritunjay Sharma
Mentor: Jim Bugwadia
“I don’t have words to describe how amazing this program was for me. From getting an opportunity to be a Keynote guest speaker in KubeCon Europe with Priyanka Sharma (GM, CNCF) to getting involved with more cloud-native projects like Buildpacks and in fact, getting an internship as a Software Engineer at HackerRank – LFX Mentorship Program was like a watershed moment in my life. This could not have been possible without the constant support of my amazing mentor, Jim Bugwadia and the other amazing members of the Kubernetes and CNCF Community who helped me evolve technically as well as aiding improve my soft-skills. This program is definitely a 100/100 recommend for students who want to learn how it feels like to work in industry and in fact get paid for it. Thanks to all CNCF and LFX folks for organising this great program!“
My project was targeted towards programming a custom Prometheus exporter for Kyverno to expose Prometheus-compliant metrics providing a great set of insights around the behaviour of Kyverno and the compliance of incoming Kubernetes resources with the Kyverno policies associated with the user’s cluster.
Mentee: Yashvardhan Kukreja
Mentor: Shuting Zhao
“I always wanted to be a part of a great open source programme, especially around the Kubernetes-native space and the LFX Mentorship programme provided me an absolutely fantastic experience around that desire. It helped me to get personally mentored by talented engineers around enhancing a tool which is extremely useful in the Kubernetes-native space. And as a part of it, I also got a great set of opportunities to interact with the open source community really well, which was really fun :)”
During the mentorship, I worked on implementing a new SPIRE health subsystem. Prior to mentorship, SPIRE used a simple health subsystem in which liveness checks were done by pinging the services and getting back a HTTP response and readiness checks were done on agent and server by performing simple tasks and getting its response. During mentorship, we made a new health subsytem which performs individual checks on different susbsystems and accumulates all those responses to determine the global liveness and readiness of the whole system..
Mentee: Sachin Kumar Singh
Mentor: Evan Gilman and Andrew Harding
“LFX mentorship was a fun learning experience for me. I learned a lot of tools and good practices while working. Regular feedback and interaction with the mentors helped a lot whenever I was stuck. The community was great and very welcoming. I would like to thank both my mentors, Evan Gilman and Andrew Harding, for making this such a great experience. I now feel more confident while working on complex projects.“
Worked on adding a new flag called –endpoint=<address> that will be passed to Thanos query and replace the current –store=<address> and –rule=<address> flags, and add a discovery mechanism which will be used to determine what types of services this endpoint can serve.
Mentee: Hitanshu Mehta
Mentor: Lucas Servén Marín and Prem Saraswat
“It has been a great learning experience for me. Apart from learning about technologies related to the project, now I have a deeper understanding about Thanos and I’m more confident with large code bases. This will help me keep contributing in open source projects. My mentors were super helpful, supportive and flexible. The Thanos community is also very welcoming and encouraging. I will keep contributing to Thanos and other CNCF projects. Very thankful to my mentors and CNCF for this opportunity.”
Thanos can store and serve the data for multiple tenants at once. But, it didn’t provide the needed introspective information about actions related to the tenant (e.g., external labels). My project focused on allowing admins to obtain tenants’ information on per tenant queries, operations, and ingestion, which gave actionable insight and helped them know which tenant’s data was queried the most and track per tenant data usages like CPU, Memory Utilizations. My project improves the experience of running multi-tenant Thanos on the scale.
Mentee: Abhishek Singh Chauhan
Mentor: Kemal Akkoyun and Yash Sharma
“It was a great experience overall. I got a chance to work with experienced developers on some real-world projects which have a significant impact and learned a lot of new stuff like instrumentation, multitenancy, APIs, and SRE concepts like SLOs. I not only gained technical knowledge but also improved my soft skills by giving talks around the project I worked on.”
The Thanos ruler currently uses an embedded TSDB. This doesn’t scale because large-enough rules can create large amounts of time-series, resulting in large TSDBs too. The goal of the project is to implement a “stateless” mode for the Thanos ruler, where it sends rule evaluations to a remote object storage (instead of storing it in the embedded) TSDB.
Mentee: Michael Okoko
Mentor: Lucas Servén Marín and Bartlomiej Płotka
“It was amazing!I think almost anyone that graduates from the mentorship would improve on their technical skills. I got to learn a lot more about Go, Prometheus, and gRPC. Asides from that though, I especially love how the mentors were intentional about helping you contribute not just for the mentorship, but after. I also got the chance to learn about the collaborative nature of open-source generally, and helping people less-familiar with the code-base go from “”zero-to-hero””.”
My task was to implement a “pluggable coprocessor framework” for TiKV, a distributed, transactional key-value database written in Rust. The idea is to allow users to run custom coprocessor plugins in TiKV, effectively allowing them to run arbitrary code directly on storage nodes. This can lead to great performance improvements for certain applications because they can (a) save a lot of network bandwidth and (b) better utilize the available hardware resources on storage nodes.
Mentee: Andreas Zimmerer
Mentor: Andy Lok, Alex Chi
“The LFX Mentorship Program at TiKV was a truly remarkable experience! In the beginning, I was a bit overwhelmed by the size of the project, but the maintainers were always very helpful when I had questions. I learned a lot about systems programming and database internals thanks to my wonderful mentors Andy Lok and Alex Chi. The best part was when my project got attention from people not directly involved. Also, I got the chance to dive into and become part of the TiKV open-source community, and I’m sure I will also contribute to TiKV in the future :)”
My project during the internship was to add support for the Google Cloud connectors in Tremor. I worked on adding the Google Cloud Storage and Google Cloud Pub/Sub connectors. Connectors serve the purpose of sending events to and receiving events from the outside world.
Mentee: Jigyasa Khaneja
Mentor: Darach Ennis
It was an overall great journey contributing to Tremor as a part of the LFX Mentorship program. I learned so much in these 3 months’ time with the support of my mentors. I’m very grateful to CNCF for organising this as it gave me an opportunity to learn about event processing, distributed systems, Rust, Cloud-Native technologies, etc. I wouldn’t have learned so much in these 3 months’ time had I not been a part of this mentorship program. It was definitely a fun learning experience.
My project’s aim was to enable tremor to receive and send Syslog Protocol Messages, a standard protocol used to send system log or event messages. It was desired to support both the standard IETF format and the old BSD format via UDP and TCP/TLS.
Mentee: Nupur Agrawal
Mentor: Matthias Wahl, Anup Dhamala and Heinz Gies
“The tremor community is very helpful and friendly. The mentors helped me a lot from silly rust doubts to nerve breaking code debugging and testing. There were periodic code reviews and live coding sessions which motivated me to improvise and keep going. The key focus was always on the learning rather than getting the work done. It was undoubtedly one of the most fruitful and learning experiences I have had and I wish to continue the contribution to community and project.”
I had a great time learning completely new technologies which wouldn’t have been so accessible to learn and build things using them. The whole structure of the program and the way it is executed was sublime.
Mentee: Rohit Dandamudi
Mentor: Heinz N. Gies and Matthias Wahl
“Overall it went pretty smoothly, a way to help mentees to get jobs or future support would be an amazing thing to add. Apart from that, making mentees more involved in the community is something I would like to be actively encouraged/supported to be part of the change.”
Volcano is a batch scheduling system built on Kubernetes, partly based on kube-batch. It provides powerful mechanisms for batching and elastic workloads in cloud-native architecture including machine learning, bioinformatics and big data applications such as batch processing, and stream processing. Compared with Kubernetes default scheduler, Volcano is more capable of various scenarios benefiting from the extensibility gain from its job lifecycle management via manifold plugins.
Mentee: Yuchen Cheng
Mentor: Lei Wu
“We often say that there is a gap between academia and industry because of various scenarios. I believe it is worth my attempt to bridge such a gap via the LFX mentorship program. I have been working closely with the community and gain valuable experience from the operation and communication with community members outside the ivory tower. This experience would also encourage me to continuously explore the world of cloud-native, and contribute to open-source projects.”