Jump to: navigation, search

Designate/Blueprints/Server Pools

< Designate‎ | Blueprints
Revision as of 13:19, 23 September 2013 by Graham Hayes (talk | contribs) (Phase One)

Overview

Current State

Phase One

Gerrit Patch [[1]]
Launchpad Blueprint [[2]]

This is an initial change to the codebase to introduce the concept of a "server pool"

This has introduced a new service that sits where the agent would have traditionally sat for bind9

This has caused all servers and domains to assigned to a "pool", which we will use in the future to submit changes to the right pools.

Phase One State Diagram Phase One Server Pools State Diagram


API v2 Changes

Servers are now a full sub resource of pools, and are accessed using HTTP requests like:

 GET http://designate-server:9001/v2/pools/<pool_id>/servers - get all servers in <pool_id>
 GET http://designate-server:9001/v2/pools/<pool_id>/servers/<server_id> - get <server_id> details
 

This was to avoid massive amounts of changes to SOA records for domains, and allowing us to notify backends [[3]] of just the server that changed.

Phase One limitations

  1. Currently there is only support for one pool
  2. This is currently a synchronous operation - async will be in a later phase
  3. When designate is set up / upgraded for the first time, you will need set up a default pool in the /etc/designate/designate.cfg file.
    1. There is a default pool created in the SQLAlchemy migrations, so this will just copying and pasting the pool_id into the right section in the config file.