Since 2005, the Google Summer of Code (GSoC) program has accepted thousands of university students from around the world to spend their summer holiday writing code and learning about the open source community. This year GSoC accepted 1,264 students from 62 countries into the program to work with 206 open source organizations. Going on 14 years, the program has accepted over 13,000 students from 108 countries who have collectively written more than 33 million lines of code for over 608 open source projects.
Accepted students have the opportunity to work with a mentor, becoming part of an open source community. The Cloud Native Computing Foundation (CNCF) is proud to be one of these organizations, hosting seven interns this summer. Mentors are paired with interns to help advance the following CNCF projects: Envoy Proxy, CoreDNS, containerd, Prometheus, Rook, and Kubernetes.
“We are really pleased to participate in GSoC again this year with seven interns working on six projects that showcase a range of cloud native technologies. From what we have seen, the impact this program has on students, projects, and the open source community as a whole is immense. We look forward to watching the progress and excitement continue to grow through the summer.” – Chris Aniszczyk, CTO, Cloud Native Computing Foundation (CNCF)
Additional details on the CNCF projects, mentors, and students can be found below. Coding goes through August 16th and we’ll report back on progress in a few months.
Envoy Proxy
Extending Envoy’s fuzzing coverage
Student: Anirudh Murali, Anna University (India)
Mentors:
- Matt Klein, Lyft
- Constance Caramanolis, Lyft
- Harvey Tuch, Google
Envoy is getting fuzz testing support. This project focuses on extending the fuzz coverage including proto, data plane, and H2 level frame fuzzing.
CoreDNS
Conditional name server identifier – CoreDNS
Student: Jiacheng Xu, École Polytechnique Fédérale de Lausanne (Switzerland)
Mentors:
- Miek Gieben, Google
- Yong Tang
In distributed TensorFlow, identifying the nodes without domain name collision is a big challenge. CoreDNS supports DNS Name Server Identifier (NSID) which allows a DNS server to identify itself. CoreDNS can be deployed for every node in the distributed TensorFlow cluster to solve this problem. There are two ways to achieve this goal: (1) Set up a distributed Key-Value store like ZooKeeper or etcd, and (2) Assign each node with an order based on the timestamp. Jiacheng’s GSoc work aims to implement one of the approaches above.
containerd
Integrate containerd with Kata Containers
Student: Jian (Anthony) Liu, Zhejiang University (China)
Mentor:
- Harry Zhang, Microsoft
The project aims at creating a containerd-kata runtime plugin for containerd to integrate with Kata Containers. The integration enables containerd and its users (Docker & Kubernetes) to enjoy security and multi-tenancy brought by Kata Containers as well as native Linux container experience brought by the existing containerd runtime plugin Linux .
Prometheus
Building a testing and benchmarking environment for Prometheus
Student: Harsh Agarwal, IIT Hyderabad (India)
Mentors:
- Krasi Georgiev, Red Hat
- Goutham Veeramachaneni, Prometheus contributor
This project aims to benchmark Prometheus & test Prometheus’s Kubernetes and Consul Service Discovery in an automated and real-time environment. This will help in recognizing bugs before confirming new releases and also confirm the robustness of new releases.
Prometheus
Composite label indices & alerts rule testing
Student: Ganesh Vernekar, CSE Undergrad at IIT Hyderabad (India)
Mentor: Goutham Veeramachaneni, Prometheus contributor
Alerting is an important feature in monitoring when it comes to maintaining site reliability and Prometheus is being used widely for this. Hence it becomes very important to be able to check the correctness of the alerting rules. Prometheus lacks a good and convenient way of visualizing and testing the alert rules before it can be used.
There are many long standing issues and feature requests regarding the above, and this project aims to solve some of them.
Rook
Add Network File System (NFS) as a Rook storage backend
Student: Rohan Gupta, University of Engineering and Management, UEM jaipur – Rajasthan (India)
Mentors:
- Jared Watts, Upbound
- Travs Nielsen, Red Hat
Rook is an open source orchestrator for distributed storage systems running in Kubernetes. Rook is currently in alpha state and has focused initially on orchestrating Ceph on top of Kubernetes. There is no option for Network File System (NFS) yet. This project aims to add NFS as another storage backend.
Kubernetes
Storage API for aggregated API servers
Student: Marko Mudrinić, University of Belgrade (Serbia)
Mentors:
- David Eads
- Stefan Schimanski
Kubernetes offers two ways to extend the core API, by using the CustomResourceDefinitons or by setting up an aggregated API server. Users don’t need to modify the core API in order to add the features needed for their workflow, which later provides a more stable and secure core API.
One missing part is how to efficiently store data used by aggregated API servers. This project implements a Storage API, with a main goal to share the cluster’s main etcd server with the Aggregated API Servers, allowing it to use cluster’s main etcd just like it would use it’s own etcd server.