summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTrevor Bramwell <tbramwell@linuxfoundation.org>2018-04-19 15:37:34 -0700
committerTrevor Bramwell <tbramwell@linuxfoundation.org>2018-10-22 10:12:06 -0700
commitbbafa00756c3c742d31caa33da98ac0731a6c0a9 (patch)
tree191e472c0ba812adc361edabc37b2d86ff5aae5c
parent9b164628deaf8bc495d4eabdb6458add7175cd32 (diff)
Update Pharos Dashboard Jobs
Moves the pharos dashboard jobs to their own file sperate and deploys the dashboard when changes are merged to master. Note: this may need to be manually triggered due to the timing between the container being built and it being availble to be pulled. Also includes the following changes to the job: - Uploads backups to Google Storage - Remove sudo usage as docker can be ran as the Jenkins user - Renames jobs to match general naming scheme JIRA: PHAROS-394 Change-Id: I516c4414d7b0158f1f8478214c10f0aa7d176739 Signed-off-by: Trevor Bramwell <tbramwell@linuxfoundation.org>
-rw-r--r--jjb/global/slave-params.yaml2
-rw-r--r--jjb/pharos/pharos-tools.yml54
-rw-r--r--jjb/pharos/pharos.yaml77
-rw-r--r--jjb/pharos/shell/backup-dashboard.sh28
-rw-r--r--jjb/pharos/shell/deploy-dashboard.sh17
5 files changed, 100 insertions, 78 deletions
diff --git a/jjb/global/slave-params.yaml b/jjb/global/slave-params.yaml
index 805673a0a..09a0d2287 100644
--- a/jjb/global/slave-params.yaml
+++ b/jjb/global/slave-params.yaml
@@ -572,7 +572,7 @@
parameters:
- label:
name: SLAVE_LABEL
- default: 'pharos-dashboard'
+ default: 'pharos-dashboard2'
description: 'Slave label on Jenkins'
all-nodes: false
node-eligibility: 'ignore-offline'
diff --git a/jjb/pharos/pharos-tools.yml b/jjb/pharos/pharos-tools.yml
new file mode 100644
index 000000000..507e93eb3
--- /dev/null
+++ b/jjb/pharos/pharos-tools.yml
@@ -0,0 +1,54 @@
+---
+- project:
+ name: pharos-dashboard-jobs
+
+ project: 'pharos-tools'
+
+ disabled: false
+
+ jobs:
+ - '{project}-verify-basic'
+ - 'pharos-dashboard-backup'
+ - 'pharos-dashboard-deploy'
+
+- job-template:
+ name: 'pharos-dashboard-backup'
+
+ disabled: '{obj:disabled}'
+
+ parameters:
+ - 'pharos-dashboard-defaults'
+
+ triggers:
+ - timed: '@daily'
+
+ builders:
+ - shell:
+ !include-raw: shell/backup-dashboard.sh
+
+- job-template:
+ name: 'pharos-dashboard-deploy'
+
+ disabled: '{obj:disabled}'
+
+ parameters:
+ - project-parameter:
+ project: '{project}'
+ branch: 'master'
+ - 'pharos-dashboard-defaults'
+
+ scm:
+ - git-scm-gerrit
+
+ triggers:
+ - gerrit-trigger-change-merged:
+ branch: 'master'
+ project: '{project}'
+ # In the future this should be switch to just the compose file
+ # for when tags are updated
+ # files: 'dashboard/docker-compose.yml'
+ files: 'dashboard/**'
+
+ builders:
+ - shell:
+ !include-raw: shell/deploy-dashboard.sh
diff --git a/jjb/pharos/pharos.yaml b/jjb/pharos/pharos.yaml
index c1bb1ba0e..0b5119657 100644
--- a/jjb/pharos/pharos.yaml
+++ b/jjb/pharos/pharos.yaml
@@ -4,85 +4,8 @@
project:
- '{name}'
- - '{name}-tools'
disabled: false
jobs:
- '{project}-verify-basic'
- - 'backup-pharos-dashboard'
- - 'deploy-pharos-dashboard':
- disabled: true
-
-- job-template:
- name: 'backup-pharos-dashboard'
-
- disabled: '{obj:disabled}'
-
- parameters:
- - 'pharos-dashboard-defaults'
-
- triggers:
- - timed: '@daily'
-
- builders:
- - shell: |
- BACKUP_DIR=$HOME/backups/
- TMP_DIR=$HOME/tmp/
- mkdir -p $BACKUP_DIR
- echo "-- $(date +%Y%m%d) --"
- echo "Backing up Pharos Dashboard data..."
- sudo docker run --rm \
- -v pharos-data:/pharos-data:ro \
- -v $TMP_DIR:/backup \
- alpine \
- tar -czf /backup/pharos-dashboard-db-$(date +%Y%m%d).tar.gz -C /pharos-data ./
- sudo mv $TMP_DIR/pharos-dashboard-db-$(date +%Y%m%d).tar.gz $BACKUP_DIR
- sudo chown $USER:$USER $BACKUP_DIR/pharos-dashboard-db-$(date +%Y%m%d).tar.gz
- echo "...complete"
-
-- job-template:
- name: 'deploy-pharos-dashboard'
-
- disabled: '{obj:disabled}'
-
- parameters:
- - project-parameter:
- project: 'pharos-tools'
- branch: 'master'
- - 'pharos-dashboard-defaults'
-
- scm:
- - git:
- choosing-strategy: 'gerrit'
- refspec: '$GERRIT_REFSPEC'
- branches:
- - 'origin/$BRANCH'
- timeout: 15
- credentials-id: '$SSH_CREDENTIAL_ID'
- url: '$GIT_BASE'
- skip-tag: true
- wipe-workspace: false
-
- triggers:
- - gerrit:
- server-name: 'gerrit.opnfv.org'
- trigger-on:
- - ref-updated-event
- - comment-added-contains-event:
- comment-contains-value: '^redeploy$'
- projects:
- - project-compare-type: 'ANT'
- project-pattern: 'pharos-tools'
- branches:
- - branch-compare-type: 'ANT'
- branch-pattern: '**/master'
-
- builders:
- - shell: |
- cp $HOME/config.env $WORKSPACE/dashboard
- cp $HOME/rsa.pub $WORKSPACE/dashboard
- cp $HOME/rsa.pem $WORKSPACE/dashboard
- cd $WORKSPACE/dashboard
- sudo docker-compose build
- sudo docker-compose up -d
diff --git a/jjb/pharos/shell/backup-dashboard.sh b/jjb/pharos/shell/backup-dashboard.sh
new file mode 100644
index 000000000..4c1c01500
--- /dev/null
+++ b/jjb/pharos/shell/backup-dashboard.sh
@@ -0,0 +1,28 @@
+#!/bin/bash -eux
+##############################################################################
+# Copyright (c) 2018 Linux Foundation and others.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+
+BACKUP_DIR=$HOME/backups
+DATE=$(date +%Y%m%d)
+TAR_FILE=pharos-dashboard-db-$DATE.tar.tz
+
+mkdir -p $BACKUP_DIR
+echo "-- $DATE --"
+echo "--> Backing up Pharos Dashboard"
+
+docker run --rm \
+ -v pharos-data:/pharos-data:ro \
+ -v $BACKUP_DIR:/backup \
+ alpine \
+ tar -czf /backup/$TAR_FILE -C /pharos-data ./
+
+/usr/local/bin/gsutil cp $BACKUP_DIR/$TAR_FILE \
+ gs://opnfv-backups/pharos-dashboard/ && rm $BACKUP_DIR/$TAR_FILE
+
+echo "--> Pharos dashboard backup complete"
diff --git a/jjb/pharos/shell/deploy-dashboard.sh b/jjb/pharos/shell/deploy-dashboard.sh
new file mode 100644
index 000000000..4ca41f48c
--- /dev/null
+++ b/jjb/pharos/shell/deploy-dashboard.sh
@@ -0,0 +1,17 @@
+#!/bin/bash -eux
+##############################################################################
+# Copyright (c) 2018 Linux Foundation and others.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+
+cp $HOME/config.env $WORKSPACE/dashboard
+cp $HOME/rsa.pub $WORKSPACE/dashboard
+cp $HOME/rsa.pem $WORKSPACE/dashboard
+
+cd $WORKSPACE/dashboard
+docker-compose pull
+docker-compose up -d