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 achieve. alexis 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), CoreDNS is just too new and too small: the project itself was only conceived of in March, and by any metric (GH issues, contributors, commits, followers, stars, releases, social media mentions) it remains nascent. So I would say 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 CNCF to bring to us?" I feel that the CNCF projects under incubation have clear answers to these questions -- but it is much less clear for me in the case 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 gone through a full release cycle and gotten a little bit of adoption.
C
On Aug 26, 2016 8:09 AM, "Carlos Alonso via cncf-toc" <cncf-toc@...> wrote:
+1
From: <cncf-toc-bounces@...> on behalf of Alexis Richardson via 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
+1
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.
thanks, Jonathan
---
Name of project: CoreDNS
Description
CoreDNS is a fast, flexible and modern DNS server. Its performant and flexible implementation allows CoreDNS to be easily extended to support 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 (https://github.com/skynetservices/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: https://github.com/miekg/coredns
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: https://github.com/miekg/coredns
Website: https://coredns.io
Release methodology and mechanics: As a young project, no method for official releases has been established, and no official releases have been 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. Precompiled binaries will be distributed by hooking into Caddy’s download website (https://caddyserver.com/download), where "DNS" will be a Server Type option.
Social media accounts: Twitter: @corednsio
Existing sponsorship: Infoblox contributing developer time to implement CoreDNS→Kubernetes integration component.
Existing community: The community is small, but growing. Current number of Twitter followers is 100+ (after a week of having the Twitter account). By aligning ourselves with the Caddy community, we hope to leverage Caddy’s popularity for CoreDNS. By positioning CoreDNS as a better SkyDNS, we hope to entice existing users of SkyDNS to migrate to and embrace CoreDNS.
External Dependencies
CoreDNS depends on Caddy (https://caddyserver.com/). Caddy is a framework that CoreDNS uses in two ways:
much of the CoreDNS code plugs into the framework to add DNS behavior.
CoreDNS provides a wrapper around the framework to provide a DNS-tuned command-line interface.
Go dependencies:
Go package: mholt/caddy (ASLV2 https://github.com/mholt/caddy/blob/master/LICENSE.txt)
Go package: beorn7/perks (MIT https://github.com/beorn7/perks/blob/master/LICENSE)
Go package: coreos/etcd (ASLv2 https://github.com/coreos/etcd/blob/master/LICENSE)
Go package: flynn/go-shlex (ASLv2 https://github.com/flynn-archive/go-shlex/blob/master/COPYING)
Go package: fsnotify/fsnotify (BSD https://github.com/fsnotify/fsnotify/blob/master/LICENSE)
Go package: golang/protobuf (BSD https://github.com/golang/protobuf/blob/master/LICENSE)
Go package: hashicorp/go-syslog (MIT https://github.com/hashicorp/go-syslog/blob/master/LICENSE)
Go package: matttproud/golang_protobuf_extensions (ASLv2https://github.com/matttproud/golang_protobuf_extensions/blob/master/LICENSE
Go package: miekg/dns (BSD https://github.com/miekg/dns/blob/master/LICENSE)
Go package: patrickmn/go-cache (MIT https://github.com/patrickmn/go-cache/blob/master/LICENSE)
Go package: prometheus/client_golang (ASLv2https://github.com/prometheus/client_golang/blob/master/LICENSE)
Go package: prometheus/client_model (ASLv2https://github.com/prometheus/client_model/blob/master/LICENSE)
Go package: prometheus/common (ASLv2 https://github.com/prometheus/common/blob/master/LICENSE)
Go package: prometheus/procfs (ASLv2 https://github.com/prometheus/procfs/blob/master/LICENSE)
Go package: ugorji/go (MIT https://github.com/ugorji/go/blob/master/LICENSE)
Go package: xenolf/lego (MIT https://github.com/xenolf/lego/blob/master/LICENSE)
Go package: golang/x/crypto (BSD https://github.com/golang/crypto/blob/master/LICENSE)
Go package: golang/x/net (BSD https://github.com/golang/net/blob/master/LICENSE)
Go package: golang/x/sys (BSD https://github.com/golang/sys/blob/master/LICENSE)
Go package: natefinch/lumberjack.v2 (MIT https://github.com/natefinch/lumberjack/blob/v2.0/LICENSE)
Go package: square/go-jose.v1 (ASLv2 https://github.com/square/go-jose/blob/master/LICENSE)
Kubernetes (for CoreDNS → Kubernetes integration) (ASLv2https://github.com/kubernetes/kubernetes/blob/master/LICENSE)
Statement on alignment with CNCF mission:
CoreDNS is a focused, lightweight DNS server. A microservice philosophy guides the internal design of CoreDNS. Individual DNS functions are provided by discrete, composable plugins that are enabled via runtime configuration. 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 necessary component to provide “Naming and Discovery” services to containers running 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. CoreDNS includes an optional health-check “middleware” component that can be used for service monitoring.
CoreDNS provides a cleaner, more extensible codebase as compared to SkyDNS. (Both SkyDNS and CoreDNS were authored primarily by Miek Gieben.)
CoreDNS is currently being extended to operate directly with Kubernetes to access the service data. This “middleware” implementation for CoreDNS provides the same client-facing behavior as KubeDNS. The pipeline-based 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@... https://lists.cncf.io/mailman/listinfo/cncf-toc
_______________________________________________ cncf-toc mailing list cncf-toc@... https://lists.cncf.io/mailman/listinfo/cncf-toc
_______________________________________________ cncf-toc mailing list cncf-toc@... https://lists.cncf.io/mailman/listinfo/cncf-toc
_______________________________________________ cncf-toc mailing list cncf-toc@... https://lists.cncf.io/mailman/listinfo/cncf-toc
|