From c0e356e704e7e7843e3af800d4396c3bf0e9d951 Mon Sep 17 00:00:00 2001 From: Mikhail Date: Thu, 2 Mar 2017 16:55:53 +0400 Subject: [PATCH] Add upgrade definition Change-Id: I2406ea68d94d851a38400bbd71b87bba2ce1d9a1 --- docker/designate-upgrade/Dockerfile.j2 | 7 ++++ service/files/backup.sh.j2 | 10 +++++ service/upgrade/default.yaml | 56 ++++++++++++++++++++++++++ 3 files changed, 73 insertions(+) create mode 100644 docker/designate-upgrade/Dockerfile.j2 create mode 100644 service/files/backup.sh.j2 create mode 100644 service/upgrade/default.yaml diff --git a/docker/designate-upgrade/Dockerfile.j2 b/docker/designate-upgrade/Dockerfile.j2 new file mode 100644 index 0000000..ce93e38 --- /dev/null +++ b/docker/designate-upgrade/Dockerfile.j2 @@ -0,0 +1,7 @@ +FROM {{ image_spec("designate-base") }} +MAINTAINER {{ maintainer }} + +RUN apt-get install -y --no-install-recommends \ + mysql-client \ + && apt-get clean + diff --git a/service/files/backup.sh.j2 b/service/files/backup.sh.j2 new file mode 100644 index 0000000..dc00a4d --- /dev/null +++ b/service/files/backup.sh.j2 @@ -0,0 +1,10 @@ +#!/bin/bash -ex +set -o pipefail +BACKUP_FILE_API="/var/ccp/backup/designate/backup-$(date "+%Y%m%d%H%M%S")-api.sql" +mysqldump {% if db.tls.enabled %} --ssl-mode REQUIRED {% endif %} -h {{ address(service.database) }} \ + -u {{ designate.db.username }} -p{{ designate.db.password }} \ + --single-transaction {{ designate.db.name.main_database }} > "${BACKUP_FILE_API}" +BACKUP_FILE_POOL="/var/ccp/backup/designate/backup-$(date "+%Y%m%d%H%M%S")-pool.sql" +mysqldump {% if db.tls.enabled %} --ssl-mode REQUIRED {% endif %} -h {{ address(service.database) }} \ + -u {{ designate.db.username }} -p{{ designate.db.password }} \ + --single-transaction {{ designate.db.name.pool_manager }} > "${BACKUP_FILE_POOL}" diff --git a/service/upgrade/default.yaml b/service/upgrade/default.yaml new file mode 100644 index 0000000..447886d --- /dev/null +++ b/service/upgrade/default.yaml @@ -0,0 +1,56 @@ +upgrade: + name: upgrade-designate + image: designate-upgrade + steps: + - name: backup + command: /opt/ccp/bin/backup.sh + files: + - backup-sh + volumes: + - name: backup-dir + path: /var/ccp/backup/designate + type: host + readOnly: false + topology_key: backup + - name: kill-services + type: kill-services + - name: designate-api-syncdb + files: + - designate-conf + type: single + command: designate-manage --config-file /etc/designate/designate.conf database sync + - name: start-designate-central + type: rolling-upgrade + services: + - designate-api + - designate-central + - name: designate-pool-update + files: + - pools + - designate-conf + type: single + command: designate-manage pool update --file /etc/designate/pools.yaml + - name: designate-pool-sync + dependencies: + - designate-pool-manager-db-create + files: + - designate-conf + type: single + command: designate-manage --config-file /etc/designate/designate.conf pool-manager-cache sync + - name: start-other-services + type: rolling-upgrade + services: + - designate-pool-manager + - designate-mdns + - designate-zone-manager +files: + designate-conf: + path: /etc/designate/designate.conf + content: designate.conf.j2 + pools: + path: /etc/designate/pools.yaml + content: pools.yaml.j2 + backup-sh: + path: /opt/ccp/bin/backup.sh + content: backup.sh.j2 + perm: "500"