The Cloud Native Computing Foundation (CNCF) had its first graduate of 2019 — CoreDNS. CoreDNS is domain name system (DNS) server that provides service discovery in cloud native deployments. It is the fourth project to graduate the foundation, following in the footsteps of Kubernetes, Prometheus, and Envoy, which all graduated last year.

The CoreDNS project was started in March 2016 by Google Site Reliability Engineer Miek Gieben. It was built as a server plugin for the web server Caddy by using a model that chains middleware and that could talk to multiple backends — including Kubernetes. CoreDNS joined the CNCF Sandbox in 2017 and became an incubating project in February 2018. Since 2017, it has completed more than two dozen releases according to John Belamaric, a senior staff software engineer at Google and a project maintainer for CoreDNS.

CoreDNS differentiates itself from other DNS servers with its flexibility and because it chains plugins. These plugins can either stand-alone or work together to perform a DNS function, which then can act as a piece of software that calls on the CoreDNS Plugin API and can communicate with backends to provide service discovery. The plugins are chained together to enable additional features.

This makes it usable for Kubernetes service discovery, authoritative DNS server, local cache for DNS-heavy applications, and additional plugins. The project now has 35 built-in plugins and 15 external plugins, a number of which are specific to Kubernetes.

In March 2018, CoreDNS was added to Kubernetes as a DNS provider in beta. And in the latest release of Kubernetes, version 1.13, CoreDNS replaced kube-dns as the default DNS server for Kubernetes.

In addition, the server can be used for cloud-native integration in hybrid-cloud environments with Amazon Web Services (AWS). This is done using AWS Route53, which is AWS’ scalable cloud DNS web service, and etcd, a distributed key-value store and another CNCF project. CoreDNS also intends to add support for Google Cloud’s DNS system soon.

While the complete Kubernetes DNS specification was “one of the most visible and important changes” during its time as an incubating project at CNCF, there were many other major features implemented, Belamaric wrote in an email to SDxCentral. These included “improved DNS-over-TLS support, more flexible query and response rewriting, query loop detection, DNS-over-gRPC support with "watch" functionality, and direct integration with cloud providers,” he said.

A project is deemed fit to graduate the CNCF when it has demonstrated a thriving level of adoption and diversity, has a formal governance process, and has exhibited a strong commitment to the sustainability and inclusivity of its community.

CoreDNS currently boasts over 100 contributors and 16 active maintainers. Some of the companies using its technology in production (both in and out of Kubernetes) include Soundcloud, the Massachusetts Institute of Technology, Bost, Tradeshift, and meal kit service HelloFresh.

CoreDNS moved fairly quickly through CNCF even though it was one of the earlier projects. It took fellow graduates, Kubernetes and Prometheus more than two years and Envoy just over a year to do so.

“The health of the project and community, and a concerted community effort to address governance and process requirements, were critical to achieving the Graduated status,” wrote Belamaric. “The rapid growth in CoreDNS deployments, driven in part by the GA of CoreDNS for Kubernetes cluster DNS, also provided the production use and validation needed to graduate. The growth of CoreDNS outside of the Kubernetes use case — for example as the base of several companies' DNS services — also made it clear that CoreDNS is a separate project that has adoption in non-Kubernetes cloud native applications.”

There are currently 16 incubating projects at the CNCF.