Re: [VOTE] CoreDNS Project Proposal

alexis richardson


I'd like to discuss 'seed' projects, tomorrow

On Mon, Sep 5, 2016 at 10:08 PM, Benjamin Hindman via cncf-toc
<cncf-toc@...> wrote:
I agree with Camille/Bryan that the project is young and we shouldn't put
the name of CNCF on a project that could cause a production user to have a
very bad experience. This will not help the CNCF brand.

I also think, however, that the CNCF should make some bets or take some
risks in order to help drive change or innovation in the industry.

These are opposing goals. To reconcile this I think we need to revisit the
notion of "incubation" in CNCF and introduce a new concept that lets us
bring in projects that we believe have strong futures but don't yet have the
mark of "CNCF production software".

IMHO the best (easiest?) path forward is to revisit CoreDNS after we've put
this in place, it would easily get my +1 then.

On Tue, Aug 30, 2016 at 9:11 AM, Alexis Richardson via cncf-toc
<cncf-toc@...> wrote:

Bryan & Camille

I'm travelling, so apologies for brevity.

1. I don't think it should matter that a project is "small" in scope,
in the sense of being "narrow". Do one thing and do it well etc
etc,... is an OK thing for some projects.

2. Being "new" is more of an issue. In order to focus on projects
that speak for themselves, while we are still a young organisation and
figuring out what matters, it is helpful to require some production
use, for instance.

3. Ultimately I think we need a way to recognise and perhaps help
projects that are important but novel. At ContainerCon, Ben Hindman,
Chris Aniszcxyk and I had a discussion about this that we hope to
share with the wider group.

TL;DR -- we want to propose a "Seed" stage for young projects. There
should be a frequent pruning out of Seed projects that are not
succeeding. From Seed, projects may graduate into the CNCF. And yes,
we should establish clearer criteria for leaving Incubation soon.

4. Bryan, on the creation of additional criteria in the process: yes,
we can certainly do this if it clarifies what we are trying to


On Tue, Aug 30, 2016 at 5:45 PM, Bryan Cantrill via cncf-toc
<cncf-toc@...> wrote:

I agree with Camille -- while an admirable start (and a good name),
is just too new and too small: the project itself was only conceived of
March, and by any metric (GH issues, contributors, commits, followers,
stars, releases, social media mentions) it remains nascent. So I would
the answer to CoreDNS is not so much "no" as "not yet".

More generally, I would like each proposal to answer two (additional)
questions: "What do we bring to the CNCF?" and "What would we like the
to bring to us?" I feel that the CNCF projects under incubation have
answers to these questions -- but it is much less clear for me in the
of CoreDNS...

- Bryan

On Tue, Aug 30, 2016 at 5:26 AM, Camille Fournier via cncf-toc
<cncf-toc@...> wrote:

-1. I think the project has great potential but is too early to be
included in the foundation. I would love to see it again once it has
through a full release cycle and gotten a little bit of adoption.


On Aug 26, 2016 8:09 AM, "Carlos Alonso via cncf-toc"
<cncf-toc@...> wrote:


From: <cncf-toc-bounces@...> on behalf of Alexis Richardson
cncf-toc <cncf-toc@...>
Reply-To: Alexis Richardson <alexis@...>
Date: Thursday, August 25, 2016 at 5:39 AM
To: Jonathan Boulle <jonathan.boulle@...>,
"cncf-toc@..." <cncf-toc@...>
Subject: Re: [cncf-toc] [VOTE] CoreDNS Project Proposal


On Thu, 25 Aug 2016, 05:37 Jonathan Boulle via cncf-toc,
<cncf-toc@...> wrote:

Fellow TOC members:

The CoreDNS team has iterated on their project proposal to a final
version after feedback and it's now time to vote.

Proposal is available here and also embedded below.

To kick things off, here's my +1.



Name of project: CoreDNS


CoreDNS is a fast, flexible and modern DNS server. Its performant and
flexible implementation allows CoreDNS to be easily extended to
various data sources and to implement rich DNS service behaviors: for
example, response caching, query rewrite, load-balancing, zone
transfer and
signing. CoreDNS is the successor of SkyDNS
(, a DNS server that uses
etcd as
its datastore backend. SkyDNS is widely used in cloud deployments,
but lacks
the flexibility we envision for CoreDNS.

Sponsor / Advisor from TOC: Jonathan Boulle

Unique Identifier: coredns

License: Apache License v2.0

Source control repositories:

Initial Committers:

Miek Gieben github: miekg

Michael Richmond github: mrichmon

github: splack

Felix Cantournet github: fcantournet

github: leelynne

Matt Layher github: mdlayher

Vasily Vailyev github: pixelbender

Infrastructure requirements (CI / CNCF Cluster): N/A

Issue tracker:


Release methodology and mechanics: As a young project, no method for
official releases has been established, and no official releases have
made; the current rule is that the master branch is production-ready
at all
times. A more formal release process is on its way, and may introduce
semantic versioning, but a final decision has not yet been made.
binaries will be distributed by hooking into Caddy’s download website
(, where "DNS" will be a Server Type

Social media accounts: Twitter: @corednsio

Existing sponsorship: Infoblox contributing developer time to
CoreDNS→Kubernetes integration component.

Existing community: The community is small, but growing. Current
of Twitter followers is 100+ (after a week of having the Twitter
By aligning ourselves with the Caddy community, we hope to leverage
popularity for CoreDNS. By positioning CoreDNS as a better SkyDNS, we
to entice existing users of SkyDNS to migrate to and embrace CoreDNS.

External Dependencies

CoreDNS depends on Caddy ( Caddy is a
framework that CoreDNS uses in two ways:

much of the CoreDNS code plugs into the framework to add DNS

CoreDNS provides a wrapper around the framework to provide a
command-line interface.

Go dependencies:

Go package: mholt/caddy (ASLV2

Go package: beorn7/perks (MIT

Go package: coreos/etcd (ASLv2

Go package: flynn/go-shlex (ASLv2

Go package: fsnotify/fsnotify (BSD

Go package: golang/protobuf (BSD

Go package: hashicorp/go-syslog (MIT

Go package: matttproud/golang_protobuf_extensions


Go package: miekg/dns (BSD

Go package: patrickmn/go-cache (MIT

Go package: prometheus/client_golang


Go package: prometheus/client_model

Go package: prometheus/common (ASLv2

Go package: prometheus/procfs (ASLv2

Go package: ugorji/go (MIT

Go package: xenolf/lego (MIT

Go package: golang/x/crypto (BSD

Go package: golang/x/net (BSD

Go package: golang/x/sys (BSD

Go package: natefinch/lumberjack.v2 (MIT

Go package: square/go-jose.v1 (ASLv2

Kubernetes (for CoreDNS → Kubernetes integration)

Statement on alignment with CNCF mission:

CoreDNS is a focused, lightweight DNS server. A microservice
guides the internal design of CoreDNS. Individual DNS functions are
by discrete, composable plugins that are enabled via runtime
CoreDNS can be thought of as a DNS protocol head that can be
configured to
front various backend data sources. A flexible DNS server is a
component to provide “Naming and Discovery” services to containers
in the CNCF distributed system services environment.

Comparison with KubeDNS:

The incumbent DNS service for Kubernetes, “kubedns”, consists of four
components: * etcd provides a DNS data cache, * kube2sky provides the
mechanism for updating the etcd data cache, * skydns provides the DNS
service based on the data cached in etcd, * exechealthz provides
health-check status.

Running CoreDNS with Kubernetes requires only the coredns component.
CoreDNS does not require a separate data cache or update service.
includes an optional health-check “middleware” component that can be
for service monitoring.

CoreDNS provides a cleaner, more extensible codebase as compared to
SkyDNS. (Both SkyDNS and CoreDNS were authored primarily by Miek

CoreDNS is currently being extended to operate directly with
to access the service data. This “middleware” implementation for
provides the same client-facing behavior as KubeDNS. The
design of CoreDNS allows easy extension to use any container
orchestrator as
a DNS data source.

With the Kubernetes middleware, CoreDNS can be considered as an
alternative to SkyDNS with lower runtime complexity. Performance
testing to
compare against SkyDNS is pending.

cncf-toc mailing list

cncf-toc mailing list
cncf-toc mailing list

cncf-toc mailing list
cncf-toc mailing list

Benjamin Hindman
Founder of Mesosphere and Co-Creator of Apache Mesos
Mesosphere Inc.

Follow us on Twitter: @mesosphere

cncf-toc mailing list

Join to automatically receive all group messages.