Moving dev branch code to master branch
[yaml_builds.git] / tools / 1prom-gen.sh
1 #!/bin/bash
2 ##############################################################################
3 # Copyright (c) 2018 AT&T Intellectual Property. All rights reserved.        #
4 #                                                                            #
5 # Licensed under the Apache License, Version 2.0 (the "License"); you may    #
6 # not use this file except in compliance with the License.                   #
7 #                                                                            #
8 # You may obtain a copy of the License at                                    #
9 #       http://www.apache.org/licenses/LICENSE-2.0                           #
10 #                                                                            #
11 # Unless required by applicable law or agreed to in writing, software        #
12 # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT  #
13 # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.           #
14 # See the License for the specific language governing permissions and        #
15 # limitations under the License.                                             #
16 ##############################################################################
17
18
19 # re-generate prom config
20
21 set -x
22 TIMESTAMP=$(date +"%Y%m%d%H%M")
23 echo "logging to /var/log/yaml_builds/1prom-gen_$TIMESTAMP.log"
24 exec > /var/log/yaml_builds/1prom-gen_$TIMESTAMP.log
25 exec 2>&1
26
27 source $(dirname $0)/setenv.sh
28
29 PROMENADE_IMAGE=quay.io/airshipit/promenade:009f3de7ecf6afcdd2783ac7a12470394d7dfab3
30
31 if [ -z "$AIRSHIP_TREASUREMAP" ]
32 then
33   echo "Please use https://git.openstack.org/openstack/airship-treasuremap to clone airship_treasuremap. Also set AIRSHIP_TREASUREMAP to it."
34   exit -1
35 fi
36
37 if [ -z "$1" ]
38 then
39   echo "Please pass site name as command line argument"
40   exit -2
41 else
42   SITE=${SITE:-$1}
43   echo "SITE=$SITE"
44 fi
45 source $(dirname $0)/env_$SITE.sh
46
47
48 # Check that we are root
49 if [[ $(whoami) != "root" ]]
50 then
51   echo "Must be root to run $0"
52   exit -1
53 fi
54
55 if [ -z "$YAML_BUILDS" ]
56 then
57   echo "Please set YAML_BUILDS"
58   exit -3
59 else
60   export WORKSPACE=$YAML_BUILDS
61   echo "WORKSPACE=$WORKSPACE"
62   cd $YAML_BUILDS
63 fi
64
65 install_docker() {
66    # Configure proxy for Docker daemon
67    mkdir -p /etc/systemd/system/docker.service.d
68    mkdir -p /etc/docker
69
70 cat <<EOF > /etc/apt/sources.list.d/promenade-sources.list
71 deb http://apt.dockerproject.org/repo ubuntu-xenial main
72 EOF
73
74 #cat<<EOF > /etc/docker/daemon.json
75 #{
76 #  "insecure-registries": [
77 #    "artifacts-aic.atlantafoundry.com"
78 #  ],
79 #  "live-restore": true,
80 #  "storage-driver": "overlay2"
81 #}
82 #EOF
83
84 cat<<EOF > /etc/docker/daemon.json
85 {
86   "live-restore": true,
87   "storage-driver": "overlay2"
88 }
89 EOF
90
91 #Set HTTPS Proxy Variable
92 cat <<EOF > /etc/systemd/system/docker.service.d/http-proxy.conf
93 [Service]
94 Environment="HTTP_PROXY=http://one.proxy.att.com:8888"
95 EOF
96
97 #Set HTTPS Proxy Variable
98 cat <<EOF > /etc/systemd/system/docker.service.d/https-proxy.conf
99 [Service]
100 Environment="HTTPS_PROXY=http://one.proxy.att.com:8888"
101 EOF
102
103 apt-key add - <<"ENDKEY"
104 -----BEGIN PGP PUBLIC KEY BLOCK-----
105
106 mQINBFWln24BEADrBl5p99uKh8+rpvqJ48u4eTtjeXAWbslJotmC/CakbNSqOb9o
107 ddfzRvGVeJVERt/Q/mlvEqgnyTQy+e6oEYN2Y2kqXceUhXagThnqCoxcEJ3+KM4R
108 mYdoe/BJ/J/6rHOjq7Omk24z2qB3RU1uAv57iY5VGw5p45uZB4C4pNNsBJXoCvPn
109 TGAs/7IrekFZDDgVraPx/hdiwopQ8NltSfZCyu/jPpWFK28TR8yfVlzYFwibj5WK
110 dHM7ZTqlA1tHIG+agyPf3Rae0jPMsHR6q+arXVwMccyOi+ULU0z8mHUJ3iEMIrpT
111 X+80KaN/ZjibfsBOCjcfiJSB/acn4nxQQgNZigna32velafhQivsNREFeJpzENiG
112 HOoyC6qVeOgKrRiKxzymj0FIMLru/iFF5pSWcBQB7PYlt8J0G80lAcPr6VCiN+4c
113 NKv03SdvA69dCOj79PuO9IIvQsJXsSq96HB+TeEmmL+xSdpGtGdCJHHM1fDeCqkZ
114 hT+RtBGQL2SEdWjxbF43oQopocT8cHvyX6Zaltn0svoGs+wX3Z/H6/8P5anog43U
115 65c0A+64Jj00rNDr8j31izhtQMRo892kGeQAaaxg4Pz6HnS7hRC+cOMHUU4HA7iM
116 zHrouAdYeTZeZEQOA7SxtCME9ZnGwe2grxPXh/U/80WJGkzLFNcTKdv+rwARAQAB
117 tDdEb2NrZXIgUmVsZWFzZSBUb29sIChyZWxlYXNlZG9ja2VyKSA8ZG9ja2VyQGRv
118 Y2tlci5jb20+iQI4BBMBAgAiBQJVpZ9uAhsvBgsJCAcDAgYVCAIJCgsEFgIDAQIe
119 AQIXgAAKCRD3YiFXLFJgnbRfEAC9Uai7Rv20QIDlDogRzd+Vebg4ahyoUdj0CH+n
120 Ak40RIoq6G26u1e+sdgjpCa8jF6vrx+smpgd1HeJdmpahUX0XN3X9f9qU9oj9A4I
121 1WDalRWJh+tP5WNv2ySy6AwcP9QnjuBMRTnTK27pk1sEMg9oJHK5p+ts8hlSC4Sl
122 uyMKH5NMVy9c+A9yqq9NF6M6d6/ehKfBFFLG9BX+XLBATvf1ZemGVHQusCQebTGv
123 0C0V9yqtdPdRWVIEhHxyNHATaVYOafTj/EF0lDxLl6zDT6trRV5n9F1VCEh4Aal8
124 L5MxVPcIZVO7NHT2EkQgn8CvWjV3oKl2GopZF8V4XdJRl90U/WDv/6cmfI08GkzD
125 YBHhS8ULWRFwGKobsSTyIvnbk4NtKdnTGyTJCQ8+6i52s+C54PiNgfj2ieNn6oOR
126 7d+bNCcG1CdOYY+ZXVOcsjl73UYvtJrO0Rl/NpYERkZ5d/tzw4jZ6FCXgggA/Zxc
127 jk6Y1ZvIm8Mt8wLRFH9Nww+FVsCtaCXJLP8DlJLASMD9rl5QS9Ku3u7ZNrr5HWXP
128 HXITX660jglyshch6CWeiUATqjIAzkEQom/kEnOrvJAtkypRJ59vYQOedZ1sFVEL
129 MXg2UCkD/FwojfnVtjzYaTCeGwFQeqzHmM241iuOmBYPeyTY5veF49aBJA1gEJOQ
130 TvBR8Q==
131 =Fm3p
132 -----END PGP PUBLIC KEY BLOCK-----
133 ENDKEY
134
135    apt-get update
136    apt-get install -y docker-engine=1.13.1-0~ubuntu-xenial socat=1.7.3.1-1
137    systemctl daemon-reload
138    systemctl restart docker || true
139 }
140
141 create_directories() {
142    mkdir -p ./tars/$SITE/configs/promenade
143    mkdir -p ./tars/$SITE/configs/promenade-bundle
144 }
145
146 get_site_config(){
147    $YAML_BUILDS/tools/pegleg.sh site -p /site -a /global collect ${SITE} -s /site/tars/$SITE/configs/promenade
148 }
149
150 gen_certs() {
151    docker run --env http_proxy=$http_proxy  --env https_proxy=$https_proxy --user 0 --rm -t -w /target -v $(pwd):/target ${PROMENADE_IMAGE} promenade generate-certs -o /target/tars/$SITE/configs/promenade /target/tars/$SITE/configs/promenade/*.yaml
152 }
153
154 gen_bundle(){
155    docker run --env http_proxy=$http_proxy  --env https_proxy=$https_proxy --user 0 --rm -t -w /target -v $(pwd):/target ${PROMENADE_IMAGE} promenade build-all --validators -o /target/tars/$SITE/configs/promenade-bundle /target/tars/$SITE/configs/promenade/*.yaml
156 }
157
158 create_scripts() {
159   KEYSTONE_IMAGE=$(grep "keystone_db_sync: docker.io" $AIRSHIP_TREASUREMAP/global/v4.0/software/config/versions.yaml | uniq | awk '{print $2}')
160   SHIPYARD_IMAGE=$(grep "shipyard_db_sync" $AIRSHIP_TREASUREMAP/global/v4.0/software/config/versions.yaml | uniq | awk '{print $2}')
161
162   DRYDOCK_PASSWORD=$(grep "^data:" $YAML_BUILDS/site/$SITE/secrets/passphrases/ucp_drydock_keystone_password.yaml | awk '{print $2}')
163   SHIPYARD_PASSWORD=$(grep "^data:" $YAML_BUILDS/site/$SITE/secrets/passphrases/ucp_shipyard_keystone_password.yaml | awk '{print $2}')
164   REGION_NAME=$SITE
165
166   cp $YAML_BUILDS/tools/deploy_site.sh $YAML_BUILDS/tars/$SITE/
167   sed -i -e "s,KEYSTONE_IMAGE=,KEYSTONE_IMAGE=$KEYSTONE_IMAGE,g" $YAML_BUILDS/tars/$SITE/deploy_site.sh
168   sed -i -e "s,SHIPYARD_IMAGE=,SHIPYARD_IMAGE=$SHIPYARD_IMAGE,g" $YAML_BUILDS/tars/$SITE/deploy_site.sh
169   sed -i -e "s/DRYDOCK_PASSWORD=/DRYDOCK_PASSWORD=$DRYDOCK_PASSWORD/g" $YAML_BUILDS/tars/$SITE/deploy_site.sh
170   sed -i -e "s/SHIPYARD_PASSWORD=/SHIPYARD_PASSWORD=$SHIPYARD_PASSWORD/g" $YAML_BUILDS/tars/$SITE/deploy_site.sh
171   sed -i -e "s/REGION_NAME=/REGION_NAME=$REGION_NAME/g" $YAML_BUILDS/tars/$SITE/deploy_site.sh
172   sed -i -e "s/{{yaml.genesis.host}}/$GENESIS_HOST/g" $YAML_BUILDS/tars/$SITE/deploy_site.sh
173
174   cp $YAML_BUILDS/tools/update_iptables.sh $YAML_BUILDS/tars/$SITE/
175   sed -i -e "s,HOST_INTERFACE=,HOST_INTERFACE=$HOST_INTERFACE,g" $YAML_BUILDS/tars/$SITE/update_iptables.sh
176   sed -i -e "s,PXE_INTERFACE=,PXE_INTERFACE=$PXE_INTERFACE,g" $YAML_BUILDS/tars/$SITE/update_iptables.sh
177
178   cp $YAML_BUILDS/tools/cleanup.sh $YAML_BUILDS/tars/$SITE/
179 }
180
181 prepare_tar(){
182    rm ./tars/promenade-bundle-$SITE.tar
183    tar cvf ./tars/promenade-bundle-$SITE.tar -C ./tars/$SITE .
184 }
185
186 #install_docker
187 create_directories
188 get_site_config
189 gen_certs
190 gen_bundle
191 create_scripts
192 prepare_tar