GSOC 17: Developing Jupyter Notebooks for the Kubernetes Python client

By September 26, 2017 Blog

The Google Summer of Code (GSOC) program 2017 has come to an end and we followed up with CNCF’s seven interns previously featured in this blog post to check in on how their summer project progressed.

Over the summer, University of Buea student Konrad Djimeli worked with Skippbox (acquired by Bitnami) mentor Sebastien Goasguen on “Develop a Set of Jupyter Notebooks for the Kubernetes Python Client + Kubernetes Python Client Update,” a project aimed at developing a set of notebooks that highlight the Kubernetes primitives and updating the python client to make it easier for users to carry out certain operations.

 Read on to learn the results of this project from Konrad and Sebastien.

My name is Konrad Djimeli, I am a third-year computer science student at the University of Buea, Cameroon in Africa. I am a Software Developer, Community organizer (GDG Buea), GitHub Campus Expert and Google Summer of Code 2015 and 2017 participants.

I first came in contact with the Cloud Native Computing Foundation (CNCF) when I applied and got selected as a diversity scholarship recipient to attend KubeCon + CloudNativeCon Europe 2017 in Berlin. Sometime before the conference, the list of selected organizations for the Google Summer of Code 2017 was published. I was very excited to find the Cloud Native Computing Foundation was one of the selected organizations, as GSoC would offer me the opportunity to spend some dedicated amount of time contributing to cloud computing projects, which I was fascinated by, such as Kubernetes. I began by going through the CNCF organization GSoC ideas page and after finding some exciting project I was interested in, I introduced myself to the organization slack channel and started my interest. I received a warm welcome and I was provided proper directions on where I could get more information about the projects I wanted to work on. By the time GSoC student applications started, I had begun working on my application and had the opportunity to attend KubeCon in Berlin. Attending this conference enabled me to learn about Kubernetes and other CNCF project and to meet with members of the community. More information about my experience at KubeCon can be found on my previous blog post. When I returned to Cameroon, from the conference, I made my first patch submission to the Kubernetes Python client project, completed my application and submitted it. When the list of selected students was published, I was excited to be a GSoC 2017 participant working on the project “Develop a set of Jupyter Notebooks for the Kubernetes Python Client + Kubernetes Python Client update”. Throughout the application period, I had to struggle with an Internet blackout in Cameroon, due to political riots going on at the time. I had to travel long distances, just to have a few hours of Internet access, but being selected as a GSoC participant for CNCF made the stress all worthwhile.

The program began with the community bonding period, where I had the chance to learn more about the project, and communicate with members of the community; particularly my GSoC mentor Sebastien Goasguen. This was followed by three months coding period, divided into first, second and final evaluations. It was a very enlightening and productive part of the program. I started working on the notebooks for common Kubernetes objects such as Pods, Deployments, and Service, then I moved on to work on notebooks for Secret, Watch, ConfigMap, and ThirdPartyResources. These notebooks can be used to interactively test the functionality of the Kubernetes Python client. Working on this project required me to familiarize myself with Jupyter, which is used to create and share documents with live code, equation, and visualization. I also learned a lot about how to read and write Kubernetes resource objects using the Kubernetes Python client.

During the program, I also had the chance to meet with Nikhita Raghunath, a fellow Google Summer of Code participant with the Cloud Native Computing Foundation in Denver, while attending GopherCon 2017 as a diversity scholarship recipient.

Nikhita, Konrad and other diversity scholarship recipients at GopherCon 2017

I learned so much about Kubernetes and the Golang programming language at GopherCon 2017. After my return to Cameroon, I had to make up for the week I spent in Denver without working on my GSoC project and with the help of my mentor, I was able to make the leap needed to catch-up. So I successfully passed all my evaluations. I also had the opportunity to do a 10-minute demo of my project during the Kubernetes SIG Apps Meeting (slides, video). I had a really exciting experience working as a GSoC 2017 participant with the Cloud Native Computing Foundation and I look forward to making more valuable contributions to the community.

My advice to any aspiring and future GSoCer is that you should not hesitate to start working with the community as early as possible. Also, rather than learning so much about a large software codebase at the beginning, it is better to find and focus on a specific issue you are interested in fixing, and then move on to learning other parts of the codebase. I also believe the community is your most valuable resource.

I will be speaking at GitHub Universe 2017 and Open Source Summit Europe 2017, and I would love to meet with anyone interested in hanging out.