Designate/Old Incubation Application

Project codename
Designate

Summary
Designate DNSaaS Project

Detailed Description
Designate is a DNS as-a-service project. It is intended to be used to provide DNS service from the entry point of creating, updating, maintaining and deleting DNS data using the Designate API, to providing DNS resolution for users. It is a very modular project, allowing for the use of whatever DNS server and organization demands, or the database where DNS data is stored. It is also intended to work in conjunction with other components such as Nova.

The purpose of the project is provide managed DNS for the Openstack Ecosystem using a REST API or Designate Sink which consumes events from Nova or Quantum, or any other service that has events that would necessitate DNS changes. It also will replace Nova DNS bindings and provide much more robust and full-featured DNS functionality. Also, advanced DNS record support will be added such as DNSSEC.

Designate is relevant to the mission by adding a missing piece of data-center functionality, namely, one of the most ubiquitous services, DNS. It's relevant to other OpenStack projects by automating the name resolution changes required for the creation and deletion of Nova instances or other components.

The current release provides

 * REST API for domain/record management
 * Multi-tenant
 * Integrated with Keystone for authentication
 * Framework in place to integrate with Nova and Quantum notifications (for auto-generated records)
 * Support for PowerDNS, MySQLBind, and Bind out of the box
 * Command Line Interface
 * Python Bindings

Future release plans

 * DNSSEC
 * Development of functionality to utilize designate-sink to process events from Nova and Quantum
 * Import/Export of Domains via BIND9 style zone files
 * Private/Internal DNS servers

Location of project source code

 * Designate on Launchpad
 * Designate at StackForge
 * python-designateclient at StackForge

Programming language, required technology dependencies

 * Language: Python


 * Dependencies: flask, message queue, DNS server, database server

Is project currently open sourced? What license?
Yes, under the Apache 2.0 license.

Level of maturity of software and team

 * Software: Private Beta at HP Cloud. Implementations at other organizations.
 * Team: Working together for six months.

Proposed project technical lead and qualifications

 * Kiall Mac Innes (kiall): Kiall has worked on OpenStack for ~2 years. He has an extensive understanding of DNS and is the lead author of Designate.

Other project developers and qualifications

 * Simon McCartney (simonmcc): Simon has Extensive DNS, Orchestration, Database, and operation experience.


 * Patrick Galbraith (CaptTofu): Patrick Galbraith has extensive database, operational and has worked on various aspects of Openstack and related projects (Red Dwarf)


 * Endre Karlson (zykes-): DNS, Linux, Orchestration, Database, Python, Ruby, Billingstack


 * Ryan Lane (Ryan_Lane): Experience with operating other OpenStack projects, maintainer of legacy nova dns code and maintainer of DNS code for Wikimedia Labs. Will use Designate in production soon and will be writing a gdnsd driver.

Infrastructure requirements (testing, etc)
Currently on StackForge using Gerrit and Jenkins to runs the unit test suite and pyflakes plus pep8. No additional infrastructure requirements are expected.

Have all current contributors agreed to the OpenStack CLA?
Yes.

Related Links

 * Documentation
 * Designate on OpenStack Wiki
 * Designate Talk at the Portland Summit
 * Openstack DNS solutions comparison pre-San Diego Summit
 * San Diego Summit Etherpad

Status
To be completed by PPB