Run dbsync on primary node only
Move dbsync to separate file.
Run only on primary node.
Do not run redundant versioned dbsyncs.
Run online dbsync when services are online.
Change-Id: I3962204114bd7007be705fc3c6872903f376a4b6
Related-Prod: PROD-21267
diff --git a/designate/db/offline_sync.sls b/designate/db/offline_sync.sls
new file mode 100644
index 0000000..fd49a7f
--- /dev/null
+++ b/designate/db/offline_sync.sls
@@ -0,0 +1,8 @@
+{%- from "designate/map.jinja" import server with context %}
+
+designate_syncdb:
+ cmd.run:
+ - name: designate-manage database sync
+ {%- if grains.get('noservices') or server.get('role', 'primary') == 'secondary' %}
+ - onlyif: /bin/false
+ {%- endif %}
diff --git a/designate/server.sls b/designate/server.sls
index 4f53f27..fed7379 100644
--- a/designate/server.sls
+++ b/designate/server.sls
@@ -1,6 +1,9 @@
{%- from "designate/map.jinja" import server with context %}
{%- if server.enabled %}
+include:
+ - designate.db.offline_sync
+
{%- if server.backend is defined %}
{%- if server.backend.bind9 is defined %}
@@ -98,6 +101,8 @@
designate_server_packages:
pkg.installed:
- names: {{ server.pkgs }}
+ - require_in:
+ - sls: designate.db.offline_sync
/etc/designate/designate.conf:
file.managed:
@@ -105,6 +110,8 @@
- template: jinja
- require:
- pkg: designate_server_packages
+ - require_in:
+ - sls: designate.db.offline_sync
/etc/designate/api-paste.ini:
file.managed:
@@ -112,15 +119,8 @@
- template: jinja
- require:
- pkg: designate_server_packages
-
-designate_syncdb:
- cmd.run:
- - name: designate-manage database sync
- {%- if grains.get('noservices') %}
- - onlyif: /bin/false
- {%- endif %}
- - require:
- - file: /etc/designate/designate.conf
+ - require_in:
+ - sls: designate.db.offline_sync
designate_pool_sync:
cmd.run:
@@ -139,7 +139,7 @@
- onlyif: /bin/false
{%- endif %}
- require:
- - cmd: designate_syncdb
+ - sls: designate.db.offline_sync
- cmd: designate_pool_sync
- watch:
- file: /etc/designate/designate.conf