From 4a12137fca2ecc0e25c5c7daf70d878e17a35074 Mon Sep 17 00:00:00 2001 From: cruizba Date: Thu, 10 Dec 2020 01:11:26 +0100 Subject: [PATCH] openvidu-deployment: Automated replicate AMIs in OpenVidu PRO --- ...penvidu-server-pro-no-market.yaml.template | 2 + .../deployments/pro/aws/replicate_amis.sh | 69 +++++++++++++------ 2 files changed, 49 insertions(+), 22 deletions(-) diff --git a/openvidu-server/deployments/pro/aws/cfn-openvidu-server-pro-no-market.yaml.template b/openvidu-server/deployments/pro/aws/cfn-openvidu-server-pro-no-market.yaml.template index 3c39fdf1..bbd7495e 100644 --- a/openvidu-server/deployments/pro/aws/cfn-openvidu-server-pro-no-market.yaml.template +++ b/openvidu-server/deployments/pro/aws/cfn-openvidu-server-pro-no-market.yaml.template @@ -214,6 +214,7 @@ Parameters: - false Default: true +#start_mappings Mappings: OVAMIMAP: eu-west-1: @@ -222,6 +223,7 @@ Mappings: KMSAMIMAP: eu-west-1: AMI: KMS_AMI_ID +#end_mappings Metadata: 'AWS::CloudFormation::Interface': diff --git a/openvidu-server/deployments/pro/aws/replicate_amis.sh b/openvidu-server/deployments/pro/aws/replicate_amis.sh index f8e9c787..266414cc 100755 --- a/openvidu-server/deployments/pro/aws/replicate_amis.sh +++ b/openvidu-server/deployments/pro/aws/replicate_amis.sh @@ -10,6 +10,9 @@ set -eu -o pipefail # # OV_AMI_NAME OpenVidu AMI Name # OV_AMI_ID OpenVidu AMI ID +# +# UPDATE_CF Boolean, true if you want to update CF template by OPENVIDU_PRO_VERSION +# OPENVIDU_VERSION OpenVidu Version of the CF you want to update. It will update CF-OpenVidu-Pro-OPENVIDU_PRO_VERSION export AWS_DEFAULT_REGION=eu-west-1 @@ -92,26 +95,48 @@ do ITER=$(expr $ITER + 1) done -echo -echo "OpenVidu Server Pro Node AMI IDs" -ITER=0 -for i in "${OPENVIDU_SERVER_PRO_AMI_IDS[@]}" -do - AMI_ID=${OPENVIDU_SERVER_PRO_AMI_IDS[$ITER]} - REGION=${REGIONS[$ITER]} - echo " ${REGION}:" - echo " AMI: ${AMI_ID}" - ITER=$(expr $ITER + 1) -done -echo -echo "Media Node AMI IDs" -ITER=0 -for i in "${MEDIA_NODE_AMI_IDS[@]}" -do - AMI_ID=${MEDIA_NODE_AMI_IDS[$ITER]} - REGION=${REGIONS[$ITER]} - echo " ${REGION}:" - echo " AMI: ${AMI_ID}" - ITER=$(expr $ITER + 1) -done \ No newline at end of file +# Print and generate replicated AMIS +REPLICATED_AMIS_FILE="replicated_amis.yaml" +echo "OV AMIs and KMS AMIs replication:" +{ + echo "Mappings:" + echo " OVAMIMAP:" + ITER=0 + for i in "${OPENVIDU_SERVER_PRO_AMI_IDS[@]}" + do + AMI_ID=${OPENVIDU_SERVER_PRO_AMI_IDS[$ITER]} + REGION=${REGIONS[$ITER]} + echo " ${REGION}:" + echo " AMI: ${AMI_ID}" + ITER=$(expr $ITER + 1) + done + echo "" + echo " KMSAMIMAP:" + ITER=0 + for i in "${MEDIA_NODE_AMI_IDS[@]}" + do + AMI_ID=${MEDIA_NODE_AMI_IDS[$ITER]} + REGION=${REGIONS[$ITER]} + echo " ${REGION}:" + echo " AMI: ${AMI_ID}" + ITER=$(expr $ITER + 1) + done + echo "" +} > "${REPLICATED_AMIS_FILE}" 2>&1 + +# Print replicated AMIs +cat "${REPLICATED_AMIS_FILE}" + +if [[ ${UPDATE_CF} == "true" ]]; then + if [[ ! -z ${OPENVIDU_PRO_VERSION} ]]; then + # Download s3 file + aws s3 cp s3://aws.openvidu.io/CF-OpenVidu-Pro-${OPENVIDU_PRO_VERSION}.yaml CF-OpenVidu-Pro-${OPENVIDU_PRO_VERSION}.yaml + sed -e "/^#end_mappings/r ${REPLICATED_AMIS_FILE}" -e '/^#start_mappings/,/^#end_mappings/d' -i CF-OpenVidu-Pro-${OPENVIDU_PRO_VERSION}.yaml + aws s3 cp CF-OpenVidu-Pro-${OPENVIDU_PRO_VERSION}.yaml s3://aws.openvidu.io/CF-OpenVidu-Pro-${OPENVIDU_PRO_VERSION}.yaml --acl public-read + fi +fi + +# Cleaning the house +rm "${REPLICATED_AMIS_FILE}" +rm CF-OpenVidu-Pro-${OPENVIDU_PRO_VERSION}.yaml \ No newline at end of file