diff options
Diffstat (limited to 'archive/heat/setup.sh')
-rwxr-xr-x | archive/heat/setup.sh | 142 |
1 files changed, 142 insertions, 0 deletions
diff --git a/archive/heat/setup.sh b/archive/heat/setup.sh new file mode 100755 index 0000000..b95e56e --- /dev/null +++ b/archive/heat/setup.sh @@ -0,0 +1,142 @@ +#!/bin/bash +############################################################################# +# +# Copyright (c) 2018 AT&T Intellectual Property. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +############################################################################# + + +NETWORK="config_default" + +echo "Cleaning up any previously deployed cludify manager and registrator" +docker stop registrator cloudify-manager +docker rm registrator cloudify-manager + +echo "Launching registrator on dockerhost" +docker run -d \ +--network=${NETWORK} \ +--name=registrator \ +-e EXTERNAL_IP={{ dcae_ip_addr }} \ +-e CONSUL_HOST=consul \ +-v /var/run/docker.sock:/tmp/docker.sock \ +onapdcae/registrator:v7 + + + + +rm -rf scripts-in-container +mkdir scripts-in-container +cat > scripts-in-container/install-plugins.sh << EOL +#!/bin/bash +source /cfy42/bin/activate +pip install pip==9.0.3 +cfy profiles use 127.0.0.1 -u admin -p admin -t default_tenant +cfy status +cd /tmp/bin +./build-plugins.sh https://nexus.onap.org/service/local/repositories/raw/content/org.onap.dcaegen2.platform.plugins/R4 https://nexus.onap.org/service/local/repositories/raw/content/org.onap.ccsdk.platform.plugins/releases +for wagon in ./wagons/*.wgn; do cfy plugins upload \$wagon ; done +deactivate +EOL + +#wget -O scripts-in-container/build-plugins.sh https://git.onap.org/dcaegen2/deployments/plain/k8s-bootstrap-container/build-plugins.sh +cat > scripts-in-container/build-plugins.sh << EOL +#!/bin/bash + +# Pull plugin archives from repos +# Build wagons +# $1 is the DCAE repo URL +# $2 is the CCSDK repo URL +# (This script runs at Docker image build time) +# +set -x +DEST=wagons + +# For DCAE, we get zips of the archives and build wagons +DCAEPLUGINFILES=\ +"\ +relationshipplugin/1.0.0/relationshipplugin-1.0.0.tgz +dcaepolicyplugin/2.3.0/dcaepolicyplugin-2.3.0.tgz +dockerplugin/3.2.1/dockerplugin-3.2.1.tgz \ +" + +# For CCSDK, we pull down the wagon files directly +CCSDKPLUGINFILES=\ +"\ +plugins/pgaas-1.1.0-py27-none-any.wgn +plugins/sshkeyshare-1.0.0-py27-none-any.wgn +" + +# Build a set of wagon files from archives in a repo +# $1 -- repo base URL +# $2 -- list of paths to archive files in the repo +function build { + for plugin in $2 + do + # Could just do wagon create with the archive URL as source, + # but can't use a requirements file with that approach + mkdir work + target=$(basename ${plugin}) + curl -Ss $1/${plugin} > ${target} + tar zxvf ${target} --strip-components=2 -C work + wagon create -t tar.gz -o ${DEST} -r work/requirements.txt --validate ./work + rm -rf work + done +} + +# Copy a set of wagons from a repo +# $1 -- repo baseURL +# $2 -- list of paths to wagons in the repo +function get_wagons { + for wagon in $2 + do + target=$(basename ${wagon}) + curl -Ss $1/${wagon} > ${DEST}/${target} + done +} + +mkdir ${DEST} +build $1 "${DCAEPLUGINFILES}" +get_wagons $2 "${CCSDKPLUGINFILES}" +EOL + +chmod 777 scripts-in-container/* + +echo "Launching Cloudify Manager container" +docker run -d \ +--network="${NETWORK}" \ +--name cloudify-manager \ +--restart unless-stopped \ +-v /sys/fs/cgroup:/sys/fs/cgroup:ro \ +-v /opt/app/config/scripts-in-container:/tmp/bin \ +-p 80:80 \ +--tmpfs /run \ +--tmpfs /run/lock \ +--security-opt seccomp:unconfined \ +--cap-add SYS_ADMIN \ +--label "SERVICE_80_NAME=cloudify_manager" \ +--label "SERVICE_80_CHECK_TCP=true" \ +--label "SERVICE_80_CHECK_INTERVAL=15s" \ +--label "SERVICE_80_CHECK_INITIAL_STATUS=passing" \ +{{ nexus_docker_repo }}/onap/org.onap.dcaegen2.deployments.cm-container:{{ dcae_docker_cm }} + +echo "Cloudify Manager deployed, waiting for completion" +while ! nc -z localhost 80; do sleep 1; done + +echo "Upload plugins to Cloudify Manager" + +# run as detached because this script is intended to be run in background +docker exec -itd cloudify-manager /tmp/bin/install-plugins.sh + +echo "Cloudify Manager setup complete" + |