Created just three years ago and admitted to the Cloud Native Computing Foundation (CNCF) as an incubating project a year later, DNS server CoreDNS has come a long way. Last month, CoreDNS was named the default DNS for Kubernetes and now the CNCF has announced that the project will join the ranks of Kubernetes, Prometheus, and Envoy as a CNCF graduate — the first of 2019. CoreDNS will graduate just a year shy of its anniversary of becoming an incubating project with CNCF.
The CNCF incubates projects according to a three tier progression of maturity, starting first at the sandbox, then moving on to incubation, and finally graduation. The criteria for graduation include a number of qualifications, such as “committers from at least two organizations,” which signals that a project will not fail if a single individual or company pulls out, but also several more meant to help ensure the future success of the project.
A CNCF statement details the project’s further qualifications, which include not only the basic requirements such as the adoption of the CNCF Code of Conduct, but also various other signals of maturity. To that end, it cites CoreDNS’s more than “100 contributors, 16 active maintainers, and many organizations using it in production in and outside of Kubernetes — including Bose, Hellofresh, Skyscanner, SoundCloud, Trainline, and Zalando.” Beyond that, the GoLang-based DNS service boasts “12 releases in the past year, and now has 35 built-in plugins and 15 external, with several developed for the Kubernetes community.”
“The CoreDNS project and community have come a long way, resulting in the huge milestone of graduating as a project within CNCF,” said Michael Grosser, co-maintainer of CoreDNS, in the statement. “From a simple DNS server exposing Prometheus metrics, to a full-fledged DNS solution with huge flexibility built-in. Becoming a core component in most Kubernetes clusters, bringing more stability and flexibility to users, gives us confidence in the awesome community supporting CoreDNS.”
The CNCF also notes that “in building CoreDNS, the community took into account the limitations of other DNS servers to create a generic DNS server that could talk to multiple backends — like etcd, Consul and Kubernetes.” As we wrote of CoreDNS when it was first adopted by CNCF in 2017, the project was born “from an idea to gut the insides of a web server called Caddy and make it respond to complex requests for service discovery.” Service discovery was also a key feature for Prometheus, the last project to graduate CNCF incubation, and is “the critical distinction between the bulky, centralized service-oriented models of the past and the agile, lightweight systems of today.”
According to Francois Tur, a CoreDNS maintainer, the choice of CoreDNS for Kubernetes users is obvious, especially with its recently anointed default status.
“There are only two recognized DNS servers that can serve as Kubernetes’ cluster DNS: the legacy kube-DNS, developed by Kubernetes community, and now CoreDNS,” wrote Tur in an email. “The latter comes with full support of IPv6, with autopath a way to optimize DNS traffic, with several protocols to support forwarding non-kubernetes requests upstream, [and the] ability to add your own records or to rewrite domains during the migration of your services.”
Tur also offered some insights into what was next for the project, including its efforts “to increase the feature set of CoreDNS by adding important features for a DNS Server” such as “a recursive resolver plugin” and “an ACL-like plugin based on a Go-like expression language, but [that] also allows collaboration with remote policy engines.”
The Cloud Native Computing Foundation is a sponsor of The New Stack.
Feature image via Pixabay.