summaryrefslogtreecommitdiffstats
path: root/archive/heat/setup.sh
blob: b95e56e222c3c01dc3ed7f504ffd4ba830992e5f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
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"