From: Lusheng Ji Date: Wed, 4 Apr 2018 03:18:58 +0000 (-0400) Subject: Add code for R2MVP deployment X-Git-Tag: v1.2.0~102 X-Git-Url: https://gerrit.onap.org/r/gitweb?a=commitdiff_plain;h=1b98d1abab0dd111b25b4d5cbc1201f992e7cd78;p=demo.git Add code for R2MVP deployment Added code using a "dcae_deployment_profile" parameter to control what kind of deployment for DCAE. R1 is for ONAP Amsterdam deployment (bootstrap installs Cloudify Manager then uses CM to deploy additional VMs). R2MVP is a new MVP deployment, with only service components such as VES collector and supporting components. All components are deployed with their default configurations. R2MVP does not support dynamic depoyment of additional assets and configuration via CLAMP. Issue-ID: DCAEGEN2-206 Change-Id: Ide51c780a45c23f33123d52f9df225b8715833d3 Signed-off-by: Lusheng Ji --- diff --git a/boot/dcae2_install.sh b/boot/dcae2_install.sh old mode 100644 new mode 100755 index 3c84c62d..b59f06f2 --- a/boot/dcae2_install.sh +++ b/boot/dcae2_install.sh @@ -100,25 +100,52 @@ chmod 777 /opt/app/config/key # move keystone url file #cp /opt/config/keystone_url.txt /opt/app/config/keystone_url.txt -# download blueprint input template files -rm -rf /opt/app/inputs-templates -mkdir -p /opt/app/inputs-templates -wget -P /opt/app/inputs-templates https://nexus.onap.org/service/local/repositories/raw/content/org.onap.dcaegen2.platform.blueprints/releases/input-templates/inputs.yaml -wget -P /opt/app/inputs-templates https://nexus.onap.org/service/local/repositories/raw/content/org.onap.dcaegen2.platform.blueprints/releases/input-templates/cdapinputs.yaml -wget -P /opt/app/inputs-templates https://nexus.onap.org/service/local/repositories/raw/content/org.onap.dcaegen2.platform.blueprints/releases/input-templates/phinputs.yaml -wget -P /opt/app/inputs-templates https://nexus.onap.org/service/local/repositories/raw/content/org.onap.dcaegen2.platform.blueprints/releases/input-templates/dhinputs.yaml -wget -P /opt/app/inputs-templates https://nexus.onap.org/service/local/repositories/raw/content/org.onap.dcaegen2.platform.blueprints/releases/input-templates/invinputs.yaml -wget -P /opt/app/inputs-templates https://nexus.onap.org/service/local/repositories/raw/content/org.onap.dcaegen2.platform.blueprints/releases/input-templates/vesinput.yaml -wget -P /opt/app/inputs-templates https://nexus.onap.org/service/local/repositories/raw/content/org.onap.dcaegen2.platform.blueprints/releases/input-templates/tcainputs.yaml -wget -P /opt/app/inputs-templates https://nexus.onap.org/service/local/repositories/raw/content/org.onap.dcaegen2.platform.blueprints/releases/input-templates/he-ip.yaml -wget -P /opt/app/inputs-templates https://nexus.onap.org/service/local/repositories/raw/content/org.onap.dcaegen2.platform.blueprints/releases/input-templates/hr-ip.yaml - - -# generate blueprint input files -pip install --upgrade jinja2 -wget https://nexus.onap.org/service/local/repositories/raw/content/org.onap.dcaegen2.deployments/releases/scripts/detemplate-bpinputs.py && (python detemplate-bpinputs.py /opt/config /opt/app/inputs-templates /opt/app/config; rm detemplate-bpinputs.py) - - -# Run docker containers -cd /opt -./dcae2_vm_init.sh + +URL_ROOT='nexus.onap.org/service/local/repositories/raw/content' +REPO_BLUEPRINTS='org.onap.dcaegen2.platform.blueprints' +REPO_DEPLOYMENTS='org.onap.dcaegen2.deployments' + +if [ -e /opt/config/dcae_deployment_profile.txt ]; then + DEPLOYMENT_PROFILE=$(cat /opt/config/dcae_deployment_profile.txt) +fi +DEPLOYMENT_PROFILE=${DEPLOYMENT_PROFILE:-R1} +if [ "$DEPLOYMENT_PROFILE" == "R1" ]; then + RELEASE_TAG='releases' + # download blueprint input template files + rm -rf /opt/app/inputs-templates + mkdir -p /opt/app/inputs-templates + wget -P /opt/app/inputs-templates https://${URL_ROOT}/${REPO_BLUEPRINTS}/${RELEASE_TAG}/input-templates/inputs.yaml + wget -P /opt/app/inputs-templates https://${URL_ROOT}/${REPO_BLUEPRINTS}/${RELEASE_TAG}/input-templates/cdapinputs.yaml + wget -P /opt/app/inputs-templates https://${URL_ROOT}/${REPO_BLUEPRINTS}/${RELEASE_TAG}/input-templates/phinputs.yaml + wget -P /opt/app/inputs-templates https://${URL_ROOT}/${REPO_BLUEPRINTS}/${RELEASE_TAG}/input-templates/dhinputs.yaml + wget -P /opt/app/inputs-templates https://${URL_ROOT}/${REPO_BLUEPRINTS}/${RELEASE_TAG}/input-templates/invinputs.yaml + wget -P /opt/app/inputs-templates https://${URL_ROOT}/${REPO_BLUEPRINTS}/${RELEASE_TAG}/input-templates/vesinput.yaml + wget -P /opt/app/inputs-templates https://${URL_ROOT}/${REPO_BLUEPRINTS}/${RELEASE_TAG}/input-templates/tcainputs.yaml + wget -P /opt/app/inputs-templates https://${URL_ROOT}/${REPO_BLUEPRINTS}/${RELEASE_TAG}/input-templates/he-ip.yaml + wget -P /opt/app/inputs-templates https://${URL_ROOT}/${REPO_BLUEPRINTS}/${RELEASE_TAG}/input-templates/hr-ip.yaml + + + # generate blueprint input files + pip install --upgrade jinja2 + wget https://${URL_ROOT}/${REPO_DEPLOYMENTS}/${RELEASE_TAG}/scripts/detemplate-bpinputs.py && \ + (python detemplate-bpinputs.py /opt/config /opt/app/inputs-templates /opt/app/config; rm detemplate-bpinputs.py) + + # Run docker containers + cd /opt + ./dcae2_vm_init.sh +fi + +if [ "$DEPLOYMENT_PROFILE" == "R2MVP" ]; then + RELEASE_TAG='R2' + rm -rf /opt/app/inputs-templates + mkdir -p /opt/app/inputs-templates + wget -P /opt/app/inputs-templates https://${URL_ROOT}/${REPO_DEPLOYMENTS}/${RELEASE_TAG}/heat/${DEPLOYMENT_PROFILE}/docker-compose.yaml + + pip install --upgrade jinja2 + wget https://${URL_ROOT}/${REPO_DEPLOYMENTS}/${RELEASE_TAG}/scripts/detemplate-bpinputs.py && \ + (python detemplate-bpinputs.py /opt/config /opt/app/inputs-templates /opt/app/config; rm detemplate-bpinputs.py) + + cd /opt + ./dcae2_vm_init.sh +fi + diff --git a/boot/dcae2_vm_init.sh b/boot/dcae2_vm_init.sh index c8ab317e..581c0bf1 100755 --- a/boot/dcae2_vm_init.sh +++ b/boot/dcae2_vm_init.sh @@ -597,7 +597,13 @@ list_dns_zone() - +URL_ROOT='nexus.onap.org/service/local/repositories/raw/content' +REPO_BLUEPRINTS='org.onap.dcaegen2.platform.blueprints' +REPO_DEPLOYMENTS='org.onap.dcaegen2.deployments' +if [ -e /opt/config/dcae_deployment_profile.txt ]; then + DEPLOYMENT_PROFILE=$(cat /opt/config/dcae_deployment_profile.txt) +fi +DEPLOYMENT_PROFILE=${DEPLOYMENT_PROFILE:-R1} NEXUS_USER=$(cat /opt/config/nexus_username.txt) NEXUS_PASSWORD=$(cat /opt/config/nexus_password.txt) @@ -610,14 +616,18 @@ MYLOCALIP=$(cat /opt/config/dcae_ip_addr.txt) # start docker image pulling while we are waiting for A&AI to come online docker login -u "$NEXUS_USER" -p "$NEXUS_PASSWORD" "$NEXUS_DOCKER_REPO" -docker pull "$NEXUS_DOCKER_REPO/onap/org.onap.dcaegen2.deployments.bootstrap:$DOCKER_VERSION" && docker pull nginx & -######################################### -# Wait for then register with A&AI -######################################## -DNSAAS_PROXYED=$(tr '[:upper:]' '[:lower:]' < /opt/config/dnsaas_config_enabled.txt) -if [ "$DNSAAS_PROXYED" == 'true' ]; then + +if [ "$DEPLOYMENT_PROFILE" == "R1" ]; then + docker pull "$NEXUS_DOCKER_REPO/onap/org.onap.dcaegen2.deployments.bootstrap:$DOCKER_VERSION" && docker pull nginx & + + ######################################### + # Wait for then register with A&AI + ######################################## + + DNSAAS_PROXYED=$(tr '[:upper:]' '[:lower:]' < /opt/config/dnsaas_config_enabled.txt) + if [ "$DNSAAS_PROXYED" == 'true' ]; then echo "Using proxyed DNSaaS service, performing additional registration and configuration" wait_for_aai_ready @@ -629,40 +639,35 @@ if [ "$DNSAAS_PROXYED" == 'true' ]; then wait_for_multicloud_ready register_dns_zone_proxied_designate "$ZONE" echo "Registration and configuration for proxying DNSaaS completed." -else + else echo "Using Designate DNSaaS service, performing additional registration and configuration" register_dns_zone_designate "$ZONE" -fi - - - + fi + ######################################### + # Start DCAE Bootstrap container + ######################################### -######################################### -# Start DCAE Bootstrap container -######################################### + chmod 777 /opt/app/config + rm -f /opt/config/runtime.ip.consul + rm -f /opt/config/runtime.ip.cm -chmod 777 /opt/app/config -rm -f /opt/config/runtime.ip.consul -rm -f /opt/config/runtime.ip.cm + #docker login -u "$NEXUS_USER" -p "$NEXUS_PASSWORD" "$NEXUS_DOCKER_REPO" + #docker pull "$NEXUS_DOCKER_REPO/onap/org.onap.dcaegen2.deployments.bootstrap:$DOCKER_VERSION" + docker run -d --name boot -v /opt/app/config:/opt/app/installer/config -e "LOCATION=$ZONE" "$NEXUS_DOCKER_REPO/onap/org.onap.dcaegen2.deployments.bootstrap:$DOCKER_VERSION" -#docker login -u "$NEXUS_USER" -p "$NEXUS_PASSWORD" "$NEXUS_DOCKER_REPO" -#docker pull "$NEXUS_DOCKER_REPO/onap/org.onap.dcaegen2.deployments.bootstrap:$DOCKER_VERSION" -docker run -d --name boot -v /opt/app/config:/opt/app/installer/config -e "LOCATION=$ZONE" "$NEXUS_DOCKER_REPO/onap/org.onap.dcaegen2.deployments.bootstrap:$DOCKER_VERSION" + # waiting for bootstrap to complete then starting nginx for proxying healthcheck calls + echo "Waiting for Consul to become accessible" + while [ ! -f /opt/app/config/runtime.ip.consul ]; do echo "."; sleep 30; done -# waiting for bootstrap to complete then starting nginx for proxying healthcheck calls -echo "Waiting for Consul to become accessible" -while [ ! -f /opt/app/config/runtime.ip.consul ]; do echo "."; sleep 30; done + # start proxy for consul's health check + CONSULIP=$(head -1 /opt/app/config/runtime.ip.consul | sed 's/[[:space:]]//g') + echo "Consul is available at $CONSULIP" - -# start proxy for consul's health check -CONSULIP=$(head -1 /opt/app/config/runtime.ip.consul | sed 's/[[:space:]]//g') -echo "Consul is available at $CONSULIP" - -cat >./nginx.conf <./nginx.conf < /opt/config/nexus_password.txt echo "__gerrit_branch__" > /opt/config/gerrit_branch.txt # conf for the ONAP environment where the DCAE bootstrap vm/conatiner runs + echo "__dcae_deployment_profile__" > /opt/config/dcae_deployment_profile.txt echo "__mac_addr__" > /opt/config/mac_addr.txt echo "__dcae_ip_addr__" > /opt/config/dcae_ip_addr.txt echo "__dcae_float_ip__" > /opt/config/dcae_float_ip.txt @@ -1810,6 +1816,7 @@ resources: echo "__policy_ip_addr__" > /opt/config/policy_ip_addr.txt echo "__sdc_ip_addr__" > /opt/config/sdc_ip_addr.txt echo "__openo_ip_addr__" > /opt/config/openo_ip_addr.txt + echo "__openo_ip_addr__" > /opt/config/msb_ip_addr.txt echo "__aai1_ip_addr__" > /opt/config/aai1_ip_addr.txt echo "__aai2_ip_addr__" > /opt/config/aai2_ip_addr.txt # floating IPs