Designate Charm¶
Charm OpenStack DNS (Designate).
Problem Description¶
Designate (DNSaaS) provides a method for managing DNS records for addressing OpenStack guests and floating IPs.
Proposed Change¶
Two new charms - designate and designate-bind - designate provides the API/RPC services, and bind provides a flexible scale out service for managing BIND DNS servers; the interfaces between the two charms should be sufficiently flexible to allow different DNS backends to be plugged in at a later date if require (i.e. a PowerDNS charm instead of BIND).
The new Designate charm should include, as a minimum, the following features:
Deployable in a highly available configuration
Allow clients and services to interact using SSL encryption
Charm progress displayed via workload status
Alternatives¶
DNS records could be managed manually in an existing DNS server.
Implementation¶
Assignee(s)¶
- Primary assignee:
gnuoy
Gerrit Topic¶
Use Gerrit topic “designate” for all patches related to this spec.
git-review -t designate
Work Items¶
Provide Designate charm¶
Create skeleton charm layer based on OpenStack base layer and available interface layers to deploy Designate.
Add support for upgrading Designate
Add config option and accompanying support for upgrades via action-managed-upgrade.
Add support for deploying Designate in a highly available configuration
Add support for the Designate to display workload status
Add support SSL endpoints
Charm should have unit and functional tests.
Provide Designate Bind charm¶
Create bind charm designed to integrate with designate.
Ensure charm meets basic non-functional requirements, such as HA and workload status
Extend Designate charm¶
Add support for Designate integration with Neutron to extend the automatically created record information.
Mojo specification deploying and testing Designate¶
Write Mojo spec for deploying Mojo in an HA configuration and testing automatic and manual creation of DNS records.
Repositories¶
New git repositories will be required for the Designate and Designate Bind charms:
https://git.openstack.org/openstack/charm-designate
https://git.openstack.org/openstack/charm-designate-bind
Documentation¶
The Designate charm should contain a README with instructions on deploying the charm. A blog post is optional but would be a useful addition.
Security¶
No additional security concerns.
Testing¶
Code changes will be covered by unit tests; functional testing will be done using a combination of Amulet, Bundle tester and Mojo specification.
Dependencies¶
Provide rabbitmq interface layer
Provide mysql-shared interface layer
Provide pgsql interface layer
Provide keystone interface layer
Provide hacluster interface layer
Provide nrpe-external-master interface layer
Provide OpenStack base layer with all common hook code that is not already covered by an interface layer.
Provide OpenStack base layer with support for HA deployments
Provide OpenStack base layer with support for SSL communication
Provide OpenStack base layer with support for workload status