From 7090d9c873e0a788420d18160a70b3481c8a89e7 Mon Sep 17 00:00:00 2001 From: Mikhail Date: Mon, 13 Feb 2017 13:06:23 +0400 Subject: [PATCH] Implement upgrade procedure Change-Id: I119eb567cca83407d7a59f3bf70aad8faf094403 --- docker/cinder-upgrade/Dockerfile.j2 | 5 ++++ service/files/backup.sh.j2 | 6 +++++ service/upgrade/default.yaml | 42 +++++++++++++++++++++++++++++ 3 files changed, 53 insertions(+) create mode 100644 docker/cinder-upgrade/Dockerfile.j2 create mode 100644 service/files/backup.sh.j2 create mode 100644 service/upgrade/default.yaml diff --git a/docker/cinder-upgrade/Dockerfile.j2 b/docker/cinder-upgrade/Dockerfile.j2 new file mode 100644 index 0000000..5a7aa9d --- /dev/null +++ b/docker/cinder-upgrade/Dockerfile.j2 @@ -0,0 +1,5 @@ +FROM {{ image_spec("cinder-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..6873fed --- /dev/null +++ b/service/files/backup.sh.j2 @@ -0,0 +1,6 @@ +#!/bin/bash -ex +set -o pipefail +BACKUP_FILE="/var/ccp/backup/cinder/backup-$(date "+%Y%m%d%H%M%S").sql" +mysqldump -h {{ address(service.database) }} \ + -u {{ cinder.db.username }} -p{{ cinder.db.password }} \ + --single-transaction {{ cinder.db.name }} > "${BACKUP_FILE}" diff --git a/service/upgrade/default.yaml b/service/upgrade/default.yaml new file mode 100644 index 0000000..017dbcd --- /dev/null +++ b/service/upgrade/default.yaml @@ -0,0 +1,42 @@ +upgrade: + name: upgrade-cinder + image: cinder-upgrade + steps: + - name: backup + command: /opt/ccp/bin/backup.sh + files: + - backup-sh + volumes: + - name: backup-dir + path: /var/ccp/backup/cinder + type: host + readOnly: false + topology_key: backup + - name: db-sync + command: cinder-manage db sync + files: + - cinder-conf + - name: roll-api + type: rolling-upgrade + services: + - cinder-api + - name: roll-scheduler + type: rolling-upgrade + services: + - cinder-scheduler + - name: roll-volume + type: rolling-upgrade + services: + - cinder-volume + - name: roll-backup + type: rolling-upgrade + services: + - cinder-backup +files: + cinder-conf: + path: /etc/cinder/cinder.conf + content: cinder.conf.j2 + backup-sh: + path: /opt/ccp/bin/backup.sh + content: backup.sh.j2 + perm: "500"