diff options
author | Lusheng Ji <lji@research.att.com> | 2018-04-03 23:18:58 -0400 |
---|---|---|
committer | Lusheng Ji <lji@research.att.com> | 2018-04-04 03:43:47 +0000 |
commit | 1b98d1abab0dd111b25b4d5cbc1201f992e7cd78 (patch) | |
tree | b92a7cafddd69d03e3702833a5ce29474b8e7e13 | |
parent | 638615104024658d5c49ee4f385e1d092a4c0f5b (diff) |
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 <lji@research.att.com>
-rwxr-xr-x[-rw-r--r--] | boot/dcae2_install.sh | 71 | ||||
-rwxr-xr-x | boot/dcae2_vm_init.sh | 80 | ||||
-rw-r--r-- | heat/ONAP/onap_openstack.env | 1 | ||||
-rw-r--r-- | heat/ONAP/onap_openstack.yaml | 9 |
4 files changed, 105 insertions, 56 deletions
diff --git a/boot/dcae2_install.sh b/boot/dcae2_install.sh index 3c84c62d..b59f06f2 100644..100755 --- 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 <<EOL + cat >./nginx.conf <<EOL server { listen 80; server_name dcae.simpledemo.onap.org; @@ -671,6 +676,15 @@ server { } } EOL -docker run --name dcae-proxy -p 8080:80 -v "$(pwd)/nginx.conf:/etc/nginx/conf.d/default.conf" -d nginx -echo "Healthcheck API available at http://${MYFLOATIP}:8080/healthcheck" -echo " or http://${MYLOCALIP}:8080/healthcheck" + docker run --name dcae-proxy -p 8080:80 -v "$(pwd)/nginx.conf:/etc/nginx/conf.d/default.conf" -d nginx + echo "Healthcheck API available at http://${MYFLOATIP}:8080/healthcheck" + echo " or http://${MYLOCALIP}:8080/healthcheck" + +fi + + +if [ "$DEPLOYMENT_PROFILE" == "R2MVP" ]; then + cd /opt/app/config + /opt/docker/docker-compose up -d +fi + diff --git a/heat/ONAP/onap_openstack.env b/heat/ONAP/onap_openstack.env index 5798e160..546bd920 100644 --- a/heat/ONAP/onap_openstack.env +++ b/heat/ONAP/onap_openstack.env @@ -100,6 +100,7 @@ parameters: # # ########################### + dcae_deployment_profile: PUT DCAE DEPLOYMENT PROFILE (R1 or R2MVP) dnsaas_config_enabled: PUT WHETHER TO USE PROXYED DESIGNATE dnsaas_region: PUT THE DESIGNATE PROVIDING OPENSTACK'S REGION HERE dnsaas_keystone_url: PUT THE DESIGNATE PROVIDING OPENSTACK'S KEYSTONE URL HERE diff --git a/heat/ONAP/onap_openstack.yaml b/heat/ONAP/onap_openstack.yaml index 82ca78b0..e48eec4a 100644 --- a/heat/ONAP/onap_openstack.yaml +++ b/heat/ONAP/onap_openstack.yaml @@ -216,6 +216,10 @@ parameters: # # ########################### + dcae_deployment_profile: + type: string + description: DCAE deployment profile. Currently supported profiles R1, R2MVP. + dnsaas_config_enabled: type: string description: whether the DNSaaS configuration section is enabled @@ -1677,7 +1681,7 @@ resources: type: OS::Nova::Server properties: image: { get_param: ubuntu_1604_image } - flavor: { get_param: flavor_small } + flavor: { get_param: flavor_large } name: str_replace: template: base-dcae-bootstrap @@ -1701,6 +1705,7 @@ resources: __nexus_username__: { get_param: nexus_username } __nexus_password__: { get_param: nexus_password } # conf for the ONAP environment where the DCAE bootstrap vm/conatiner runs + __dcae_deployment_profile__: { get_param: dcae_deployment_profile } __mac_addr__: { get_attr: [dcae_c_private_port, mac_address] } __dcae_ip_addr__: { get_param: dcae_ip_addr } __dcae_float_ip__: { get_attr: [dcae_c_floating_ip, floating_ip_address] } @@ -1772,6 +1777,7 @@ resources: echo "__nexus_password__" > /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 |