Skip to content
This repository has been archived by the owner on Nov 25, 2020. It is now read-only.

Commit

Permalink
Integrate webhook backup notification.
Browse files Browse the repository at this point in the history
  • Loading branch information
WadeBarnes committed Jan 18, 2019
1 parent 47e1c0a commit ffd8d71
Show file tree
Hide file tree
Showing 14 changed files with 145 additions and 10 deletions.
4 changes: 4 additions & 0 deletions tob-backup/openshift/backup-deploy.bc-tob.dev.param
Expand Up @@ -4,13 +4,17 @@
# Template File: templates/backup-deploy.json
#=========================================================
# NAME=backup
# APP_GROUP=tob
# SOURCE_IMAGE_NAME=backup
# IMAGE_NAMESPACE=devex-von-tools
TAG_NAME=dev
# DATABASE_SERVICE_NAME=postgresql
# DATABASE_DEPLOYMENT_NAME=postgresql
# WALLET_DB_HOST_NAME=wallet-db
# BACKUP_STRATEGY=rolling
# WEBHOOK_URL=
ENVIRONMENT_FRIENDLY_NAME=TheOrgBook-BC (dev)
ENVIRONMENT_NAME=devex-von-bc-tob-dev
# BACKUP_DIR=/backups/
# NUM_BACKUPS=
# DAILY_BACKUPS=
Expand Down
4 changes: 4 additions & 0 deletions tob-backup/openshift/backup-deploy.bc-tob.param
Expand Up @@ -4,13 +4,17 @@
# Template File: templates/backup-deploy.json
#=========================================================
NAME=backup
APP_GROUP=tob
SOURCE_IMAGE_NAME=backup
IMAGE_NAMESPACE=devex-von-tools
TAG_NAME=dev
DATABASE_SERVICE_NAME=postgresql
DATABASE_DEPLOYMENT_NAME=postgresql
WALLET_DB_HOST_NAME=wallet-db
BACKUP_STRATEGY=rolling
# WEBHOOK_URL=
ENVIRONMENT_FRIENDLY_NAME=TheOrgBook-BC (dev)
ENVIRONMENT_NAME=devex-von-bc-tob-dev
BACKUP_DIR=/backups/
NUM_BACKUPS=
DAILY_BACKUPS=
Expand Down
4 changes: 4 additions & 0 deletions tob-backup/openshift/backup-deploy.bc-tob.prod.param
Expand Up @@ -4,13 +4,17 @@
# Template File: templates/backup-deploy.json
#=========================================================
# NAME=backup
# APP_GROUP=tob
# SOURCE_IMAGE_NAME=backup
# IMAGE_NAMESPACE=devex-von-tools
TAG_NAME=bc-tob-prod
# DATABASE_SERVICE_NAME=postgresql
# DATABASE_DEPLOYMENT_NAME=postgresql
# WALLET_DB_HOST_NAME=wallet-db
# BACKUP_STRATEGY=rolling
# WEBHOOK_URL=
ENVIRONMENT_FRIENDLY_NAME=TheOrgBook-BC (prod)
ENVIRONMENT_NAME=devex-von-bc-tob-prod
# BACKUP_DIR=/backups/
# NUM_BACKUPS=
# DAILY_BACKUPS=
Expand Down
4 changes: 4 additions & 0 deletions tob-backup/openshift/backup-deploy.bc-tob.test.param
Expand Up @@ -4,13 +4,17 @@
# Template File: templates/backup-deploy.json
#=========================================================
# NAME=backup
# APP_GROUP=tob
# SOURCE_IMAGE_NAME=backup
# IMAGE_NAMESPACE=devex-von-tools
TAG_NAME=bc-tob-test
# DATABASE_SERVICE_NAME=postgresql
# DATABASE_DEPLOYMENT_NAME=postgresql
# WALLET_DB_HOST_NAME=wallet-db
# BACKUP_STRATEGY=rolling
# WEBHOOK_URL=
ENVIRONMENT_FRIENDLY_NAME=TheOrgBook-BC (test)
ENVIRONMENT_NAME=devex-von-bc-tob-test
# BACKUP_DIR=/backups/
# NUM_BACKUPS=
# DAILY_BACKUPS=
Expand Down
4 changes: 4 additions & 0 deletions tob-backup/openshift/backup-deploy.dev.param
Expand Up @@ -4,13 +4,17 @@
# Template File: templates/backup-deploy.json
#=========================================================
# NAME=backup
# APP_GROUP=tob
# SOURCE_IMAGE_NAME=backup
# IMAGE_NAMESPACE=devex-von-tools
TAG_NAME=dev
# DATABASE_SERVICE_NAME=postgresql
# DATABASE_DEPLOYMENT_NAME=postgresql
# WALLET_DB_HOST_NAME=wallet-db
# BACKUP_STRATEGY=rolling
# WEBHOOK_URL=
ENVIRONMENT_FRIENDLY_NAME=Verifiable Organizations Network (dev)
ENVIRONMENT_NAME=devex-von-dev
# BACKUP_DIR=/backups/
# NUM_BACKUPS=
# DAILY_BACKUPS=
Expand Down
4 changes: 4 additions & 0 deletions tob-backup/openshift/backup-deploy.ontario.dev.param
Expand Up @@ -4,13 +4,17 @@
# Template File: templates/backup-deploy.json
#=========================================================
# NAME=backup
# APP_GROUP=tob
# SOURCE_IMAGE_NAME=backup
# IMAGE_NAMESPACE=ontvon-von-tools
TAG_NAME=dev
# DATABASE_SERVICE_NAME=postgresql
# DATABASE_DEPLOYMENT_NAME=postgresql
# WALLET_DB_HOST_NAME=wallet-db
# BACKUP_STRATEGY=rolling
# WEBHOOK_URL=
ENVIRONMENT_FRIENDLY_NAME=Ontario's Verifiable Organizations (dev)
ENVIRONMENT_NAME=ontvon-von-dev
# BACKUP_DIR=/backups/
# NUM_BACKUPS=
# DAILY_BACKUPS=
Expand Down
6 changes: 5 additions & 1 deletion tob-backup/openshift/backup-deploy.ontario.param
Expand Up @@ -4,13 +4,17 @@
# Template File: templates/backup-deploy.json
#=========================================================
NAME=backup
APP_GROUP=tob
SOURCE_IMAGE_NAME=backup
IMAGE_NAMESPACE=ontvon-von-tools
TAG_NAME=dev
DATABASE_SERVICE_NAME=postgresql
DATABASE_DEPLOYMENT_NAME=postgresql
WALLET_DB_HOST_NAME=wallet-db
BACKUP_STRATEGY=rolling
WEBHOOK_URL=
ENVIRONMENT_FRIENDLY_NAME=Ontario's Verifiable Organizations (dev)
ENVIRONMENT_NAME=ontvon-von-dev
BACKUP_DIR=/backups/
NUM_BACKUPS=
DAILY_BACKUPS=
Expand All @@ -22,7 +26,7 @@ CONFIG_MAP_NAME=backup-conf
CONFIG_MOUNT_PATH=/
PERSISTENT_VOLUME_NAME=backup-pvc
PERSISTENT_VOLUME_SIZE=1Gi
PERSISTENT_VOLUME_CLASS=
PERSISTENT_VOLUME_CLASS=gluster-file
CPU_REQUEST=0
CPU_LIMIT=0
MEMORY_REQUEST=0Mi
Expand Down
4 changes: 4 additions & 0 deletions tob-backup/openshift/backup-deploy.ontario.prod.param
Expand Up @@ -4,13 +4,17 @@
# Template File: templates/backup-deploy.json
#=========================================================
# NAME=backup
# APP_GROUP=tob
# SOURCE_IMAGE_NAME=backup
# IMAGE_NAMESPACE=ontvon-von-tools
TAG_NAME=prod
# DATABASE_SERVICE_NAME=postgresql
# DATABASE_DEPLOYMENT_NAME=postgresql
# WALLET_DB_HOST_NAME=wallet-db
# BACKUP_STRATEGY=rolling
# WEBHOOK_URL=
ENVIRONMENT_FRIENDLY_NAME=Ontario's Verifiable Organizations (prod)
ENVIRONMENT_NAME=ontvon-von-prod
# BACKUP_DIR=/backups/
# NUM_BACKUPS=
# DAILY_BACKUPS=
Expand Down
4 changes: 4 additions & 0 deletions tob-backup/openshift/backup-deploy.ontario.test.param
Expand Up @@ -4,13 +4,17 @@
# Template File: templates/backup-deploy.json
#=========================================================
# NAME=backup
# APP_GROUP=tob
# SOURCE_IMAGE_NAME=backup
# IMAGE_NAMESPACE=ontvon-von-tools
TAG_NAME=test
# DATABASE_SERVICE_NAME=postgresql
# DATABASE_DEPLOYMENT_NAME=postgresql
# WALLET_DB_HOST_NAME=wallet-db
# BACKUP_STRATEGY=rolling
# WEBHOOK_URL=
ENVIRONMENT_FRIENDLY_NAME=Ontario's Verifiable Organizations (test)
ENVIRONMENT_NAME=ontvon-von-test
# BACKUP_DIR=/backups/
# NUM_BACKUPS=
# DAILY_BACKUPS=
Expand Down
63 changes: 62 additions & 1 deletion tob-backup/openshift/backup-deploy.overrides.sh
Expand Up @@ -22,8 +22,69 @@ generateConfigMap() {
oc create configmap ${_config_map_name} --from-file ${_source_file} --dry-run -o ${_output_format} > ${_output_file}
}

printStatusMsg(){
(
_msg=${1}
_yellow='\033[1;33m'
_nc='\033[0m' # No Color
printf "\n${_yellow}${_msg}\n${_nc}" >&2
)
}

readParameter(){
(
_msg=${1}
_paramName=${2}
_defaultValue=${3}
_encode=${4}

_yellow='\033[1;33m'
_nc='\033[0m' # No Color
_message=$(echo -e "\n${_yellow}${_msg}\n${_nc}")

read -r -p $"${_message}" ${_paramName}

writeParameter "${_paramName}" "${_defaultValue}" "${_encode}"
)
}

writeParameter(){
(
_paramName=${1}
_defaultValue=${2}
_encode=${3}

if [ -z "${_encode}" ]; then
echo "${_paramName}=${!_paramName:-${_defaultValue}}" >> ${_overrideParamFile}
else
# The key/value pair must be contained on a single line
_encodedValue=$(echo -n "${!_paramName:-${_defaultValue}}"|base64 -w 0)
echo "${_paramName}=${_encodedValue}" >> ${_overrideParamFile}
fi
)
}

initialize(){
# Define the name of the override param file.
_scriptName=$(basename ${0%.*})
export _overrideParamFile=${_scriptName}.param

printStatusMsg "Initializing ${_scriptName} ..."

# Remove any previous version of the file ...
if [ -f ${_overrideParamFile} ]; then
printStatusMsg "Removing previous copy of ${_overrideParamFile} ..."
rm -f ${_overrideParamFile}
fi
}

initialize

generateConfigMap "${CONFIG_MAP_NAME}" "${SOURCE_FILE}" "${OUTPUT_FORMAT}" "${OUTPUT_FILE}"

SPECIALDEPLOYPARMS=""
# Get the webhook URL
readParameter "WEBHOOK_URL - Please provide the webhook endpoint URL. If left blank, the webhook integration feature will be disabled:" WEBHOOK_URL ""

SPECIALDEPLOYPARMS="--param-file=${_overrideParamFile}"
echo ${SPECIALDEPLOYPARMS}

3 changes: 3 additions & 0 deletions tob-backup/openshift/backup-deploy.param
Expand Up @@ -11,6 +11,9 @@ DATABASE_SERVICE_NAME=postgresql
DATABASE_DEPLOYMENT_NAME=postgresql
WALLET_DB_HOST_NAME=wallet-db
BACKUP_STRATEGY=rolling
WEBHOOK_URL=
ENVIRONMENT_FRIENDLY_NAME=Verifiable Organizations Network (dev)
ENVIRONMENT_NAME=devex-von-dev
BACKUP_DIR=/backups/
NUM_BACKUPS=
DAILY_BACKUPS=
Expand Down
5 changes: 4 additions & 1 deletion tob-backup/openshift/backup-deploy.prod.param
Expand Up @@ -11,6 +11,9 @@ TAG_NAME=prod
# DATABASE_DEPLOYMENT_NAME=postgresql
# WALLET_DB_HOST_NAME=wallet-db
# BACKUP_STRATEGY=rolling
# WEBHOOK_URL=
ENVIRONMENT_FRIENDLY_NAME=Verifiable Organizations Network (prod)
ENVIRONMENT_NAME=devex-von-prod
# BACKUP_DIR=/backups/
# NUM_BACKUPS=
# DAILY_BACKUPS=
Expand All @@ -22,7 +25,7 @@ TAG_NAME=prod
# CONFIG_MOUNT_PATH=/
# PERSISTENT_VOLUME_NAME=backup-pvc
# PERSISTENT_VOLUME_SIZE=1Gi
# PERSISTENT_VOLUME_CLASS=
# PERSISTENT_VOLUME_CLASS=gluster-file
# CPU_REQUEST=0
# CPU_LIMIT=0
# MEMORY_REQUEST=0Mi
Expand Down
3 changes: 3 additions & 0 deletions tob-backup/openshift/backup-deploy.test.param
Expand Up @@ -11,6 +11,9 @@ TAG_NAME=test
# DATABASE_DEPLOYMENT_NAME=postgresql
# WALLET_DB_HOST_NAME=wallet-db
# BACKUP_STRATEGY=rolling
# WEBHOOK_URL=
ENVIRONMENT_FRIENDLY_NAME=Verifiable Organizations Network (test)
ENVIRONMENT_NAME=devex-von-test
# BACKUP_DIR=/backups/
# NUM_BACKUPS=
# DAILY_BACKUPS=
Expand Down
43 changes: 36 additions & 7 deletions tob-backup/openshift/templates/backup-deploy.json
Expand Up @@ -12,7 +12,7 @@
"name": "${PERSISTENT_VOLUME_NAME}",
"labels": {
"app": "${NAME}-persistent",
"template": "${NAME}-persistent-template",
"template": "${NAME}-persistent-template",
"app-group": "${APP_GROUP}"
}
},
Expand All @@ -34,7 +34,7 @@
"metadata": {
"name": "${NAME}",
"labels": {
"template": "${NAME}-deployment",
"template": "${NAME}-deployment",
"app-group": "${APP_GROUP}"
},
"annotations": {
Expand Down Expand Up @@ -130,10 +130,6 @@
"name": "BACKUP_PERIOD",
"value": "${BACKUP_PERIOD}"
},
{
"name": "DATABASE_SERVICE_NAME",
"value": "${DATABASE_SERVICE_NAME}"
},
{
"name": "POSTGRESQL_USER",
"valueFrom": {
Expand Down Expand Up @@ -169,6 +165,18 @@
"key": "database-password"
}
}
},
{
"name": "WEBHOOK_URL",
"value": "${WEBHOOK_URL}"
},
{
"name": "ENVIRONMENT_FRIENDLY_NAME",
"value": "${ENVIRONMENT_FRIENDLY_NAME}"
},
{
"name": "ENVIRONMENT_NAME",
"value": "${ENVIRONMENT_NAME}"
}
],
"resources": {
Expand Down Expand Up @@ -263,6 +271,27 @@
"required": true,
"value": "rolling"
},
{
"name": "WEBHOOK_URL",
"displayName": "Webhook URL",
"description": "The URL of the webhook to use for notifications. If not specified, the webhook integration feature is disabled.",
"required": false,
"value": ""
},
{
"name": "ENVIRONMENT_FRIENDLY_NAME",
"displayName": "Friendly Environment Name",
"description": "The human readable name of the environment. This variable is used by the webhook integration to identify the environment in which the backup notifications originate.",
"required": false,
"value": ""
},
{
"name": "ENVIRONMENT_NAME",
"displayName": "Environment Name (Environment Id)",
"description": "The name or Id of the environment. This variable is used by the webhook integration to identify the environment in which the backup notifications originate.",
"required": false,
"value": ""
},
{
"name": "BACKUP_DIR",
"displayName": "The root backup directory",
Expand Down Expand Up @@ -345,7 +374,7 @@
"displayName": "Persistent Volume Class name",
"description": "The class of the volume; gluster-file, gluster-block, gluster-file-db",
"required": false,
"value": ""
"value": "gluster-file"
},
{
"name": "CPU_REQUEST",
Expand Down

0 comments on commit ffd8d71

Please sign in to comment.