# Upgrading to Mitaka from Liberty

## Pools Configuration

We have updated how the config data for pools is now stored.

Previously there was a mix of content in the `designate.conf` file and in the designate database.

We have moved all of the data to the database in Mitaka, to avoid confusion, and avoid the massive complexity that exists in the config file.

Warning

This part of the upgrade requires downtime.

We have 2 new commands in the `designate-manage` utility that are able to assist the migration.

To make the config syntax simpler we have a new YAML based config file that is used to load information into the database.

    ---

    - name: default
      # The name is immutable. There will be no option to change the name after
      # creation and the only way will to change it will be to delete it
      # (and all zones associated with it) and recreate it.
      description: Default PowerDNS Pool

      # Attributes are Key:Value pairs that describe the pool. for example the level
      # of service (i.e. service_tier:GOLD), capabilities (i.e. anycast: true) or
      # other metadata. Users can use this information to point their zones to the
      # correct pool
      attributes: {}

      # List out the NS records for zones hosted within this pool
      ns_records:
        - hostname: ns1-1.example.org.
          priority: 1
        - hostname: ns1-2.example.org.
          priority: 2

      # List out the nameservers for this pool. These are the actual PowerDNS
      # servers. We use these to verify changes have propagated to all nameservers.
      nameservers:
        - host: 192.0.2.2
          port: 53

      # List out the targets for this pool. For PowerDNS, this is the database
      # (or databases, if you deploy a separate DB for each PowerDNS server)
      targets:
        - type: powerdns
          description: PowerDNS Database Cluster

          # List out the designate-mdns servers from which PowerDNS servers should
          # request zone transfers (AXFRs) from.
          masters:
            - host: 192.0.2.1
              port: 5354

          # PowerDNS Configuration options
          options:
            host: 192.0.2.2
            port: 53
            connection: 'mysql+pymysql://designate:password@127.0.0.1/designate_pdns?charset=utf8'

      # Optional list of additional IP/Port's for which designate-mdns will send
      # DNS NOTIFY packets to
      also_notifies:
       - host: 192.0.2.4
         port: 53

      # Optional configuration to provide a catalog zone for the pool's zones.
      # If configured, catalog_zone_fqdn is required and all other keys are
      # optional.
      catalog_zone:
          catalog_zone_fqdn: cat.example.org.
          catalog_zone_refresh: 60
          # TSIG secret and algorithm to use for securing AXFRs for catalog zones.
          catalog_zone_tsig_key: SomeSecretKey
          catalog_zone_tsig_algorithm: hmac-sha512

We have a command that will allow you to take your current running config, and export it to the new YAML format.

Note

You will need to have at least one instance of central running, and machine `designate-manage` is running on will need access to the messaging queue

    designate-manage pool generate_file --file output.yml

This will create a YAML file, with all the currently defined pools, and all of their config.

We suggest this is then migrated into a config management system, or other document management system.

From this point on all updates to pools should be done by updating this file, and running:

    designate-manage pool update --file /path/to/file.yml

### Pools - Step by Step

1. Ensure there is not 2 pools with the same name.

2. Stop all Designate Services.

3. Deploy new Mitaka code

4. Start `designate-central`

5. Run

         designate-manage pool export_from_config --file output.yml

6. Ensure the output file is correct (reference sample file for each value)

7. Run

   >     designate-manage pool update --file output.yml --dry_run True --delete True

8. Ensure the output of this command is not removing any Pools

9. Run

       designate-manage pool update --file output.yml --delete True

10. Start the remaining designate services.

this page last updated: 2026-04-13 15:37:16

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.

found an error? report a bug