From 69342e166d00aa6721dcf9bdd1efb397a617de36 Mon Sep 17 00:00:00 2001 From: Mikhail Date: Tue, 28 Feb 2017 11:53:57 +0400 Subject: [PATCH] Add upgrade definition Change-Id: I328db29927819fb059ea1b112bd5ee3de448f0cc --- docker/murano-upgrade/Dockerfile.j2 | 5 ++++ service/files/backup.sh.j2 | 6 ++++ service/murano-api.yaml | 2 +- service/upgrade/default.yaml | 45 +++++++++++++++++++++++++++++ 4 files changed, 57 insertions(+), 1 deletion(-) create mode 100644 docker/murano-upgrade/Dockerfile.j2 create mode 100644 service/files/backup.sh.j2 create mode 100644 service/upgrade/default.yaml diff --git a/docker/murano-upgrade/Dockerfile.j2 b/docker/murano-upgrade/Dockerfile.j2 new file mode 100644 index 0000000..c12d2a7 --- /dev/null +++ b/docker/murano-upgrade/Dockerfile.j2 @@ -0,0 +1,5 @@ +FROM {{ image_spec("murano-base") }} +MAINTAINER {{ maintainer }} + +RUN apt-get install -y --no-install-recommends mysql-client zip \ + && apt-get clean diff --git a/service/files/backup.sh.j2 b/service/files/backup.sh.j2 new file mode 100644 index 0000000..b3aab5b --- /dev/null +++ b/service/files/backup.sh.j2 @@ -0,0 +1,6 @@ +#!/bin/bash -ex +set -o pipefail +BACKUP_FILE="/var/ccp/backup/murano/backup-$(date "+%Y%m%d%H%M%S").sql" +mysqldump {% if db.tls.enabled %} --ssl-mode REQUIRED {% endif %} -h {{ address(service.database) }} \ + -u {{ murano.db.username }} -p{{ murano.db.password }} \ + --single-transaction {{ murano.db.name }} > "${BACKUP_FILE}" diff --git a/service/murano-api.yaml b/service/murano-api.yaml index ba013c3..fc5dbdf 100644 --- a/service/murano-api.yaml +++ b/service/murano-api.yaml @@ -72,7 +72,7 @@ service: --os-username {{ murano.username }} --os-password {{ murano.password }} --os-auth-url {{ address('keystone', keystone.public_port, with_scheme=True) }} - --os-project-name service + --os-project-name {{ service_account.project }} package-import --is-public /tmp/murano-core.zip files: diff --git a/service/upgrade/default.yaml b/service/upgrade/default.yaml new file mode 100644 index 0000000..e689db4 --- /dev/null +++ b/service/upgrade/default.yaml @@ -0,0 +1,45 @@ +upgrade: + name: upgrade-murano + image: murano-upgrade + steps: + - name: backup + command: /opt/ccp/bin/backup.sh + files: + - backup-sh + volumes: + - name: backup-dir + path: /var/ccp/backup/murano + type: host + readOnly: false + topology_key: backup + - name: kill-services + type: kill-services + - name: db-sync + command: murano-db-manage --config-file /etc/murano/murano.conf upgrade + files: + - murano.conf + - name: roll-api + type: rolling-upgrade + services: + - murano-api + - name: roll-engine + type: rolling-upgrade + services: + - murano-engine + - name: import-core + command: cd /murano/meta/io.murano; zip -r /tmp/murano-core.zip *; + murano --murano-url {{ address('murano-api', murano.api_port, with_scheme=True) }} + --os-username {{ murano.username }} + --os-password {{ murano.password }} + --os-auth-url {{ address('keystone', keystone.public_port, with_scheme=True) }} + --os-project-name {{ service_account.project }} + package-import --is-public --exists-action=u /tmp/murano-core.zip + +files: + murano.conf: + path: /etc/murano/murano.conf + content: murano.conf.j2 + backup-sh: + path: /opt/ccp/bin/backup.sh + content: backup.sh.j2 + perm: "500"