Designate Plugin Guide

Integration is provided via a plugin. There are multiple configuration settings required for proper indexing and incremental updates. Some of the settings are specified in Searchlight configuration files. Others are provided in other service configuration files.

Searchlight Configuration

Searchlight resource configuration options are shown below with their configuration file and default values.

See Searchlight Plugin Documentation for common options with their default values, general configuration information, and an example complete configuration.

Note

Unless you are changing to a non-default value, you do not need to specify any of the following configuration options.

searchlight.conf

Plugin: OS::Designate::Zone

[resource_plugin:os_designate_zone]
enabled = true
resource_group_name = searchlight

Plugin: OS::Designate::RecordSet

[resource_plugin:os_designate_recordset]
enabled = true
resource_group_name = searchlight

Warning

OS::Designate::Zone documents have a parent relationship to OS::Designate::RecordSet documents. Because of this you must have both os_designate_zone and os_designate_recordset plugin configurations enabled or disabled together.

Designate Configuration

The Designate services must be configured properly to work with searchlight.

designate.conf

Notifications must be configured properly for searchlight to process incremental updates. Enable notifications using the following:

[oslo_messaging_notifications]
driver = messagingv2

Note

Restart designate-central, designate-pool-manager, and designate-zone-manager after making changes. See Notifications for more information on notification topics.

local.conf (devstack)

Note

Designate resource types are not enabled by default (enabled = false) in the Searchlight devstack script because Designate is not installed by default in devstack. If you have Designate installed in devstack, you have two options for enabling designate resource types in Searchlight:

  1. Prior to stacking: modify the searchlight post config section in local.conf by adding a [[post-config|$SEARCHLIGHT_CONF]] section.

  2. After stacking: manually edit the searchlight.conf file.

The Designate plugin must be enabled and run with devstack to include Designate with your devstack deployment. Follow the instructions here: https://opendev.org/openstack/designate/src/branch/master/devstack

The settings above may be automatically configured by stack.sh by adding them to the following post config section in devstack. Just place the following in local.conf and copy the above settings underneath it.:

[[post-config|$DESIGNATE_CONF]]
[DEFAULT]

Release Notes

0.2.0.0 (Mitaka)

Notifications must be configured properly for searchlight to process incremental updates. Searchlight must use its own topic. Use the following:

notification_driver = messaging
notification_topics = searchlight_indexer

The Designate notification limitations mentioned in Liberty still apply.

You no longer need to use the –no-delete option mentioned below. Zero downtime reindexing implemented in Mitaka handles all re-indexing transparently.

0.1.0.0 (Liberty)

For best results, use the v2 Designate API. Using the Designate v1 API to create domains results in the Designate service not sending all possible status change notifications. This causes Designate record set documents to stay in the Pending status in the search index.

The Horizon UI uses the v1 API and causes the above issue to be seen. So in order to ensure the search index contains the correct status values for record sets when using Horizon, you may set up a cron job to re-index Designate data.

You should use the --no-delete option to prevent the index from temporarily not containing any data (which otherwise would happen with a full bulk indexing job):

searchlight-manage index sync --type OS::Designate::Zone,OS::Designate::RecordSet --force --no-delete