KubeCon + CloudNativeCon San Diego | November 18 – 21 | Learn more

CNCF Joins Google Summer of Code 2018 With Projects Envoy Proxy, Containerd, CoreDNS, Prometheus, Kubernetes, and Rook

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.