Remove old docs content

Change-Id: I5289d75f4bd0d9c1489a208e3d83ac4f44c9422d
This commit is contained in:
Graham Hayes 2017-02-22 14:45:52 -05:00
parent 6bab307396
commit f7fcec6c4a
14 changed files with 137 additions and 756 deletions

View File

@ -0,0 +1,54 @@
================
Service Statuses
================
The Service Status entries are used to track the health state of the services
in the Designate system. Each service will report in it's health via RPC or
using HTTP.
List Statuses
=============
.. rest_method:: GET /v2/service_status
List all Services and statuses.
.. rest_status_code:: success status.yaml
- 200
.. rest_status_code:: error status.yaml
- 400
- 401
- 403
- 404
- 405
- 503
Request Parameters
------------------
.. rest_parameters:: parameters.yaml
- x-auth-token: x-auth-token
- x-auth-all-projects: x-auth-all-projects
- x-auth-sudo-project-id: x-auth-sudo-project-id
Response Parameters
-------------------
.. rest_parameters:: parameters.yaml
- x-openstack-request-id: x-openstack-request-id
- id: id
Response Example
----------------
.. literalinclude:: samples/service_status/service_status_list.json
:language: javascript

View File

@ -20,4 +20,5 @@
.. include:: dns-api-v2-tsigkey.inc
.. include:: dns-api-v2-blacklist.inc
.. include:: dns-api-v2-quota.inc
.. include:: dns-api-v2-service-status.inc
.. include:: dns-api-v2-reverse-floatingips.inc

View File

@ -0,0 +1,21 @@
{
"service_statuses": [
{
"links": {
"self": "http://127.0.0.1:9001/v2/service_status/af91edb5-ede8-453f-af13-feabdd088f9c"
},
"hostname": "dns-2.example.com.",
"status": "UP",
"service_name": "api",
"stats": null,
"capabilities": null,
"heartbeated_at": "2016-07-20 12:14:41",
"created_at": "2016-05-20 06:15:42",
"heartbeated_at": "2016-07-20 12:14:41",
"id": "af91edb5-ede8-453f-af13-feabdd088f9c"
}
],
"links": {
"self": "http://127.0.0.1:9001/v2/service_status"
}
}

View File

@ -0,0 +1,56 @@
200:
default: |
Request was successful.
image-data-200: |
The service lists the image data in the response body.
201:
default: |
Request has been fulfilled and new resource created.
202:
default: |
Request is accepted, but processing may take some time.
203:
default: |
Returned information is not full set, but a subset.
204:
default: |
Request fulfilled but service does not return anything.
300:
default: |
The resource corresponds to more than one representation.
400:
default: |
Some content in the request was invalid.
401:
default: |
User must authenticate before making a request.
403:
default: |
Policy does not allow current user to do this operation.
404:
default: |
The requested resource could not be found.
405:
default: |
Method is not valid for this endpoint and resource.
409:
default: |
This resource has an action in progress that would conflict with this request.
413:
default: |
This operation cannot be completed.
415:
default: |
The entity of the request is in a format not supported by the requested
resource for the method.
500:
default: |
Something went wrong with the service which prevents it from fulfilling
the request.
501:
default: |
The service does not have the functionality required to fulfill this
request.
503:
default: |
The service cannot handle the request right now.

View File

@ -88,9 +88,3 @@ Database/Storage
-----------------------
Storage drivers are drivers for a particular SQL/NoSQL server. Designate needs a SQLAlchemy-supported storage engine for the persistent storage of data. The recommended driver is MySQL.
.. _memory-caching-summary:
Memory caching
-----------------------
Designate also uses an in-memory caching system, currently implemented with Memcached, as an optional cache for Pool Manager.
See :ref:`memory-caching-details`

View File

@ -1,30 +0,0 @@
..
Copyright 2012 Endre Karlson for Bouvet ASA
Copyright 2012 New Dream Network, LLC (DreamHost)
Licensed under the Apache License, Version 2.0 (the "License"); you may
not use this file except in compliance with the License. You may obtain
a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
License for the specific language governing permissions and limitations
under the License.
.. |br| raw:: html
<br />
.. _configuration:
=======================
Configuration Options
=======================
We provide a sample configuration file in `etc/designate/designate.conf.sample`
The majority of the options are OK to be left as default values, but may need
to be tweaked depending on your deployment.

View File

@ -1,101 +0,0 @@
.. _functional-tests:
===================
Functional tests
===================
The functional tests run against a live Designate, making real requests and
verifying they were successful.
Installation
============
The functional tests are written using ``tempest-lib``. All the dependencies
should be in the requirements files:
::
cd designate
pip install -r requirements.txt -r test-requirements.txt
pip install -e .
Configuration
=============
The Tempest tests require a config file. The config specifies the keystone
endpoint to authenticate against, or to run in noauth mode against a Designate
without keystone.
Set the ``TEMPEST_CONFIG`` environment variable to specify where the config
file is:
::
export TEMPEST_CONFIG=tempest.conf
The config file should look like the following:
::
[identity]
# optionally override the url from the service catalog
# designate_override_url = http://designate.example.com
# Replace these with values that represent your identity configuration
uri = http://localhost:5000/v2.0
uri_v3 = http://localhost:5000/v3
auth_version = 3
region = RegionOne
username = demo
tenant_name = demo
password = password
domain_name = Default
alt_username = alt_demo
alt_tenant_name = alt_demo
alt_password = password
alt_domain_name = Default
admin_username = admin
admin_tenant_name = admin
admin_password = password
admin_domain_name = Default
[noauth]
# set this to True to run against designate in noauth mode
use_noauth = False
designate_endpoint = http://127.0.0.1:9001
tenant_id = demo
alt_tenant_id = alt_demo
admin_tenant_id = admin
[designate]
# the tests will verify changes propagate out to these nameservers
nameservers = 127.0.0.1:53,127.0.0.2:53
[testconfig]
# Specify how build the path for the request. This will be appended
# directly to the url from the service catalog (or the override url).
# {tenant_id} - the tenant id
# {tenant_name} - the tenant name
# {user} - the username of the tenant
# {user_id} - the user_id of the tenant
# {path} - the versionless resource path, e.g. /zones/ID"),
v2_path_pattern = '/v2/{path}'
# if true, skip doing admin actions like increasing quotas in test setups
no_admin_setup = False
Running the tests
=================
Make sure to set the ``TEMPEST_CONFIG`` environment variable to point to your
test config file.
Then run the tests with tox (you may need to ``pip install tox``):
::
tox -e functional

View File

@ -1,166 +0,0 @@
..
Copyright 2015 Hewlett-Packard Development Company, L.P.
Licensed under the Apache License, Version 2.0 (the "License"); you may
not use this file except in compliance with the License. You may obtain
a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
License for the specific language governing permissions and limitations
under the License.
How To Create and Manage Domains
================================
Install Client
--------------
To install Designate client, see `OpenStack Command-Line Interface Reference
<http://docs.openstack.org/cli-reference/overview.html>`_.
Create and View Domains
-----------------------
To create a new domain, a minimum of two pieces of information are required:
+-------+---------------------------------------------------------------------------+
| Name | Description |
+=======+===========================================================================+
| Name | The name of the domain you are creating. The name must end with a period. |
+-------+---------------------------------------------------------------------------+
| Email | An email address of the person responsible for the domain. |
+-------+---------------------------------------------------------------------------+
Create the domain
^^^^^^^^^^^^^^^^^
.. code-block:: bash
$ designate domain-create --name designate-example.com. --email designate@example.org
+-------------+--------------------------------------+
| Field | Value |
+-------------+--------------------------------------+
| description | None |
| created_at | 2015-02-13T16:23:26.533547 |
| updated_at | None |
| email | designate@example.org |
| ttl | 3600 |
| serial | 1423844606 |
| id | ae59d62b-d655-49a0-ab4b-ea536d845a32 |
| name | designate-example.com. |
+-------------+--------------------------------------+
List the Servers Hosting a Domain
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. note::
This list of servers are the "nameservers" you must provide to your domain
registrar in order to delegate the domain to Designate. Without performing
this step, the domain and records created will not resolve.
.. code-block:: bash
$ designate domain-servers-list ae59d62b-d655-49a0-ab4b-ea536d845a32
+------------------+
| name |
+------------------+
| ns1.example.org. |
| ns2.example.org. |
| ns3.example.org. |
+------------------+
List and Show Domains
^^^^^^^^^^^^^^^^^^^^^
.. code-block:: bash
$ designate domain-list
+--------------------------------------+-------------------------------------------+------------+
| id | name | serial |
+--------------------------------------+-------------------------------------------+------------+
| ae59d62b-d655-49a0-ab4b-ea536d845a32 | designate-example.com. | 1423844606 |
+--------------------------------------+-------------------------------------------+------------+
$ designate domain-get ae59d62b-d655-49a0-ab4b-ea536d845a32
+-------------+--------------------------------------+
| Field | Value |
+-------------+--------------------------------------+
| description | None |
| created_at | 2015-02-13T16:23:26.000000 |
| updated_at | None |
| email | designate@example.org |
| ttl | 3600 |
| serial | 1423844606 |
| id | ae59d62b-d655-49a0-ab4b-ea536d845a32 |
| name | designate-example.com. |
+-------------+--------------------------------------+
Create and View Records
-----------------------
To create a new record in the domain, a minimum of four pieces of information are required:
+-----------+-----------------------------------------------------------+
| Name | Description |
+===========+===========================================================+
| Domain ID | The Domain ID which the record will belong to. |
+-----------+-----------------------------------------------------------+
| Name | The fully qualified record name to create. |
+-----------+-----------------------------------------------------------+
| Type | The record type to be created (e.g: A, AAAA, MX etc). |
+-----------+-----------------------------------------------------------+
| Data | The type specific value to be associated with the record. |
+-----------+-----------------------------------------------------------+
Create the Record
^^^^^^^^^^^^^^^^^
.. code-block:: bash
$ designate record-create ae59d62b-d655-49a0-ab4b-ea536d845a32 --name www.designate-example.com. --type A --data 192.0.2.1
+-------------+--------------------------------------+
| Field | Value |
+-------------+--------------------------------------+
| description | None |
| type | A |
| created_at | 2015-02-13T16:43:10.952601 |
| updated_at | None |
| domain_id | ae59d62b-d655-49a0-ab4b-ea536d845a32 |
| priority | None |
| ttl | None |
| data | 192.0.2.1 |
| id | 10b31f72-2358-466c-90d2-79aa015fbea4 |
| name | www.designate-example.com. |
+-------------+--------------------------------------+
List and Show Records
^^^^^^^^^^^^^^^^^^^^^
.. code-block:: bash
$ designate record-list ae59d62b-d655-49a0-ab4b-ea536d845a32
+--------------------------------------+------+----------------------------+-----------+
| id | type | name | data |
+--------------------------------------+------+----------------------------+-----------+
| 10b31f72-2358-466c-90d2-79aa015fbea4 | A | www.designate-example.com. | 192.0.2.1 |
+--------------------------------------+------+----------------------------+-----------+
$ designate record-get ae59d62b-d655-49a0-ab4b-ea536d845a32 10b31f72-2358-466c-90d2-79aa015fbea4
+-------------+--------------------------------------+
| Field | Value |
+-------------+--------------------------------------+
| description | None |
| type | A |
| created_at | 2015-02-13T16:43:10.000000 |
| updated_at | None |
| domain_id | ae59d62b-d655-49a0-ab4b-ea536d845a32 |
| priority | None |
| ttl | None |
| data | 192.0.2.1 |
| id | 10b31f72-2358-466c-90d2-79aa015fbea4 |
| name | www.designate-example.com. |
+-------------+--------------------------------------+

View File

@ -190,262 +190,6 @@ Definition of values:
- *transferred_at* is **null** and *version* is **1** since the zone has not
transferred yet.
- *serial* gets set automatically by the system initially and to the value of the master's serial post initial AXFR.
.. code-block:: console
.. http:post:: /zones
Creates a new zone.
**Example request:**
.. sourcecode:: http
POST /v2/zones HTTP/1.1
Host: 127.0.0.1:9001
Accept: application/json
Content-Type: application/json
{
"name": "example.com.",
"type": "SECONDARY",
"masters": ["192.168.27.100"],
"description": "This is a slave for example.com."
}
**Example response:**
.. sourcecode:: http
HTTP/1.1 201 Created
Content-Type: application/json
{
"id": "a86dba58-0043-4cc6-a1bb-69d5e86f3ca3",
"pool_id": "572ba08c-d929-4c70-8e42-03824bb24ca2",
"project_id": "4335d1f0-f793-11e2-b778-0800200c9a66",
"name": "example.com.",
"email": "email@example.io",
"ttl": 3600,
"serial": 1404757531,
"status": "ACTIVE",
"description": "This is a slave for example.com."
"masters": ["192.168.27.100"],
"type": "SECONDARY",
"transferred_at": null,
"version": 1,
"created_at": "2014-07-07T18:25:31.275934",
"updated_at": null,
"links": {
"self": "https://127.0.0.1:9001/v2/zones/a86dba58-0043-4cc6-a1bb-69d5e86f3ca3"
}
}
Get Zone
--------
.. http:get:: /zones/(uuid:id)
Retrieves a secondary zone with the specified zone ID.
**Example request:**
.. sourcecode:: http
GET /v2/zones/a86dba58-0043-4cc6-a1bb-69d5e86f3ca3 HTTP/1.1
Host: 127.0.0.1:9001
Accept: application/json
Content-Type: application/json
**Example response:**
.. sourcecode:: http
HTTP/1.1 200 OK
Vary: Accept
Content-Type: application/json
{
"id": "a86dba58-0043-4cc6-a1bb-69d5e86f3ca3",
"pool_id": "572ba08c-d929-4c70-8e42-03824bb24ca2",
"project_id": "4335d1f0-f793-11e2-b778-0800200c9a66",
"name": "example.com.",
"email": "email@example.io",
"ttl": 3600,
"serial": 1404757531,
"status": "ACTIVE",
"description": "This is a slave for example.com."
"masters": ["192.168.27.100"],
"type": "SECONDARY",
"transferred_at": null,
"version": 1,
"created_at": "2014-07-07T18:25:31.275934",
"updated_at": null,
"links": {
"self": "https://127.0.0.1:9001/v2/zones/a86dba58-0043-4cc6-a1bb-69d5e86f3ca3"
}
}
:statuscode 200: Success
:statuscode 401: Access Denied
List Secondary Zones
--------------------
.. http:get:: /zones
Lists all zones.
**Example Request:**
.. sourcecode:: http
GET /v2/zones?type=SECONDARY HTTP/1.1
Host: 127.0.0.1:9001
Accept: application/json
Content-Type: application/json
**Example Response:**
.. sourcecode:: http
HTTP/1.1 200 OK
Vary: Accept
Content-Type: application/json
{
"zones": [{
"id": "a86dba58-0043-4cc6-a1bb-69d5e86f3ca3",
"pool_id": "572ba08c-d929-4c70-8e42-03824bb24ca2",
"project_id": "4335d1f0-f793-11e2-b778-0800200c9a66",
"name": "example.com.",
"email": "email@example.io",
"ttl": 3600,
"serial": 1404757531,
"status": "ACTIVE",
"description": "This is a slave for example.com.",
"masters": ["192.168.27.100"],
"type": "SECONDARY",
"transferred_at": null,
"version": 1,
"created_at": "2014-07-07T18:25:31.275934",
"updated_at": null,
"links": {
"self": "https://127.0.0.1:9001/v2/zones/a86dba58-0043-4cc6-a1bb-69d5e86f3ca3"
}
}, {
"id": "a86dba58-0043-4cc6-a1bb-69d5e86f3ca4",
"pool_id": "572ba08c-d929-4c70-8e42-03824bb24ca2",
"project_id": "4335d1f0-f793-11e2-b778-0800200c9a66",
"name": "bar.io.",
"email": "email@example.io",
"ttl": 3600,
"serial": 10,
"status": "ACTIVE",
"description": "This is a slave for bar.io.",
"masters": ["192.168.27.100"],
"type": "SECONDARY",
"transferred_at": "2014-07-07T18:25:35.275934",
"version": 2,
"created_at": "2014-07-07T18:25:31.275934",
"updated_at": null,
"links": {
"self": "https://127.0.0.1:9001/v2/zones/a86dba58-0043-4cc6-a1bb-69d5e86f3ca3"
}
}],
"links": {
"self": "https://127.0.0.1:9001/v2/zones"
}
}
:statuscode 200: Success
:statuscode 401: Access Denied
Update Zone
-----------
.. http:patch:: /zones/(uuid:id)
Changes the specified attribute(s) for an existing zone.
In the example below, we update the TTL to 3600.
**Request:**
.. sourcecode:: http
PATCH /v2/zones/a86dba58-0043-4cc6-a1bb-69d5e86f3ca3 HTTP/1.1
Host: 127.0.0.1:9001
Accept: application/json
Content-Type: application/json
{
"masters": ["192.168.27.101"]
}
**Response:**
.. sourcecode:: http
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "a86dba58-0043-4cc6-a1bb-69d5e86f3ca3",
"pool_id": "572ba08c-d929-4c70-8e42-03824bb24ca2",
"project_id": "4335d1f0-f793-11e2-b778-0800200c9a66",
"name": "example.com.",
"email": "email@example.io",
"ttl": 3600,
"serial": 1404757531,
"status": "ACTIVE",
"description": "This is a slave for example.com.",
"masters": ["192.168.27.101"],
"type": "SECONDARY",
"transferred_at": null,
"version": 2,
"created_at": "2014-07-07T18:25:31.275934",
"updated_at": "2014-07-07T18:25:34.275934",
"links": {
"self": "https://127.0.0.1:9001/v2/zones/a86dba58-0043-4cc6-a1bb-69d5e86f3ca3"
}
}
:form description: UTF-8 text field.
:form name: Valid zone name (Immutable).
:form type: Enum PRIMARY/SECONDARY, default PRIMARY (Immutable).
:form email: email address, required for type PRIMARY, NULL for SECONDARY.
:form ttl: time-to-live numeric value in seconds, NULL for SECONDARY
:form masters: Array of master nameservers. (NULL for type PRIMARY, required for SECONDARY otherwise zone will not be transferred before set.)
:statuscode 200: Success
:statuscode 202: Accepted
:statuscode 401: Access Denied
Delete Zone
-----------
.. http:delete:: zones/(uuid:id)
Deletes a zone with the specified zone ID.
**Example Request:**
.. sourcecode:: http
DELETE /v2/zones/a86dba58-0043-4cc6-a1bb-69d5e86f3ca3 HTTP/1.1
Host: 127.0.0.1:9001
Accept: application/json
Content-Type: application/json
**Example Response:**
.. sourcecode:: http
HTTP/1.1 204 No Content
:statuscode 204: No content
$ openstack zone create --type secondary --masters 192.168.27.100 example.com.

View File

@ -24,7 +24,6 @@ New to Designate? Start here:
:maxdepth: 1
architecture
production-architecture
glossary
@ -67,14 +66,11 @@ Designate in general
ops/operations-faq
backends
configuration
designate-manage
gmr
integrations
memory-caching
pools
production-guidelines
service_status
notifications
support-matrix
metrics
@ -90,7 +86,6 @@ Developer Documentation
sourcedoc
install/ubuntu-dev
devstack
functional-tests
tempest
related

View File

@ -29,7 +29,7 @@ have a major impact on the installation process:
This guide will walk you through setting up a typical development environment for Designate,
using BIND9 as the DNS backend and MySQL as the storage backend. For a more complete discussion on
installation & configuration options, please see :ref:`architecture` and :ref:`production-architecture`.
installation & configuration options, please see :ref:`architecture`.
For this guide you will need access to an Ubuntu Server (14.04).

View File

@ -1,64 +0,0 @@
.. _memory-caching-details:
==============
Memory caching
==============
This page documents how memory caching is used in Designate.
Pool Manager can leverage a memory caching service to speed up its operations and significantly reduce traffic to the DNS resolvers.
Upon zone creation, update and deletion, Pool Manager polls the resolvers through MiniDNS to check if the zone is present or absent and get the zone serial.
When using Memcache, this information is cached for 1 hour (see expiration time).
The cache is not involved in sending NOTIFY/AXFR/IXFR traffic.
The available cache drivers are Memcached, Sqlalchemy or Noop. Set `cache_driver` to 'memcache', 'sqlalchemy' or 'noop' accordingly.
Configuration
=============
The following block in /etc/designate/designate.conf is used to configure the caching system used by Pool Manager:
.. code-block:: ini
#-----------------------
# Pool Manager Service
#-----------------------
[service:pool_manager]
<omitted lines>
# The cache driver to use
#cache_driver = memcache
#-----------------------
# Memcache Pool Manager Cache
#-----------------------
[pool_manager_cache:memcache]
#memcached_servers = None
#expiration = 3600
.. note:: By configuring cache_driver = memcache (default configuration) and setting memcached_servers to None, Designate will use a simple, local cache.
Setting cache_driver to 'noop' will disable caching completely. This is not recommended.
It is recommended to run a Memcached instance for any deployment scenarios running large zones receiving frequent updates.
Deployment, monitoring and troubleshooting
==========================================
The contents of Memcached can be flushed at runtime without impacting Designate. The only effect is a temporary loss of performance while the cache is being rebuilt.
Useful metrics that can be monitored are: to-and-from Memcached traffic, concurrent connections, size of the cache, cache hit ratio, key age (expiration time)
To get a simple status snapshot:
.. code-block:: console
echo stats | nc <memcached_ip_address> <memcached_port>
When Pool Manager logging verbosity is set to DEBUG, the following log messages will be generated::
Cache hit! Retrieved status ... and serial ... for zone ... on nameserver ... with action ... from the cache.
Cache miss! Did not retrieve status and serial for zone ... on nameserver ... with action ... from the cache. Getting it from the server.

View File

@ -1,80 +0,0 @@
.. _production-architecture:
=============================
Production Architecture
=============================
Outline
-------
This document outlines what a production environment hosting Designate could look like, it follows an in-cloud model, where Designate would be hosted on instances in an OpenStack cloud. It's supposed to complement the
:doc:`architecture` document, please start there if you are unfamiliar with the designate components.
Designate Dependencies
----------------------
Designate has been designed to integrate with Keystone, or a Keystone-like service, for authentication & authorization, in a production environment it should rely on your Keystone service, and
be registered in your service catalog.
Expectations
------------
This architecture expects your environment to have an external loadbalancer that is the first touch point for customer traffic, this will distribute requests across the available API nodes,
which should span your AZs & regions where possible.
Roles
-----
A Designate deploy breaks down into several key roles:
- `Designate API`_
- `Designate Sink`_
- `Designate Central`_
- `Designate MiniDNS`_
- `Designate Pool Manager`_
- `Message Queue`_
- `Database`_ (MySQL or derivative)
- `Memory caching`_
- `DNS Backend`_
Designate API
~~~~~~~~~~~~~~~~~~~
Typically, API nodes would be made available in multiple AZs, providing redundancy should an individual AZ have issues.
In a Multi-AZ deployment, the API nodes should be configured to talk to all members of the MQ Cluster - so that in the event of MQ node failing, requests continue to flow to the MQ.
Designate Sink
~~~~~~~~~~~~~~~~~~~~~~~
In a Multi-AZ deployment, the sink node should be configured to talk to all members of the MQ Cluster - so that in the event of MQ node failing, requests continue to flow to the MQ.
Designate Central
~~~~~~~~~~~~~~~~~~~~~~~
In a Multi-AZ deployment, the Central nodes should be configured to talk to all members of the MQ Cluster - so that in the event of MQ node failing, requests continue to be processed.
Designate MiniDNS
~~~~~~~~~~~~~~~~~~~~~~~
In a Multi-AZ deployment, the MiniDNS nodes should be configured to talk to all members of the MQ Cluster - so that in the event of MQ node failing, requests continue to be processed. It should also be configured to talk to multiple DB servers, to allow for reliable access to the data store
Designate Pool Manager
~~~~~~~~~~~~~~~~~~~~~~~
In a Multi-AZ deployment, the Pool Manager nodes should be configured to talk to all members of the MQ Cluster - so that in the event of MQ node failing, requests continue to be processed.
Message Queue
~~~~~~~~~~~~~
An AMQP implementation is required for all communication between api & central nodes, in practice this means an RabbitMQ installation, preferably a cluster that spans across the AZs in a given region.
Database
~~~~~~~~~~~~~~~~
Designate needs a SQLAlchemy supported :ref:`database` engine for the persistent storage of data, the recommended driver is MySQL.
In a Multi-AZ environment, a MySQL Galera Cluster, built using Percona's MySQL packages has performed well.
Memory Caching
~~~~~~~~~~~~~~
Designate optionally uses :ref:`memory-caching-summary` usually through a Memcached instance to speed up Pool Manager operations.
DNS Backend
~~~~~~~~~~~
Designate supports multiple backend implementations, PowerDNS, BIND and MySQL BIND, you are also free to implement your own backend to fit your needs, as well as extensions to provide extra functionality to complement existing backends.
There are various ways to provide a highly available authoritative DNS service, here are some suggestions:
* Multiple PowerDNS instances using the same database being maintained by :ref:`designate-central`, optionally using MySQL Replication to propagate the data to multiple locations.
* DNS AXFR (Zone Transfer) multiple slave DNS server get notified of zone updates from a DNS server being managed by :ref:`designate-central`.

View File

@ -1,43 +0,0 @@
..
Copyright 2016 Hewlett Packard Enterprise Development Company LP
All Rights Reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may
not use this file except in compliance with the License. You may obtain
a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
License for the specific language governing permissions and limitations
under the License.
Service Statuses
================
Overview
--------
The Service Status entries are used to track the health state of the services
in the Designate system. Each service will report in it's health via RPC or
using HTTP.
Explanation
-----------
============ ==============================================================
Attribute Description
============ ==============================================================
service_name The name of the service, typically `central` or alike.
hostname The hostname where the service is running.
capabilities Service capabilities, used to tell a service of the same type
apart.
stats Statistics are optional per service metrics.
status An enum describing the status of the service.
UP for health and ok, DOWN for down (Ie the service hasn't
reported in for a while) and WARNING if the service is having
issues.
============ ==============================================================