2 ##############################################################################
3 # Copyright (c) 2018 AT&T Intellectual Property. All rights reserved. #
5 # Licensed under the Apache License, Version 2.0 (the "License"); you may #
6 # not use this file except in compliance with the License. #
8 # You may obtain a copy of the License at #
9 # http://www.apache.org/licenses/LICENSE-2.0 #
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 ##############################################################################
19 # re-generate prom config
22 LOGDIR="/var/log/akraino"
24 LOGFILE="$LOGDIR/${1}_$(date +"%Y%m%d%H%M%z")_$(basename $0|cut -d. -f1)"
25 echo "logging to $LOGFILE"
26 exec 1> >(tee -a $LOGFILE)
29 source $(dirname $0)/setenv.sh
31 PROMENADE_IMAGE=quay.io/airshipit/promenade:009f3de7ecf6afcdd2783ac7a12470394d7dfab3
35 echo "Please pass site name as command line argument"
41 source $(dirname $0)/env_$SITE.sh
43 if [ ! -d "$AIRSHIP_TREASUREMAP" ]; then
44 echo "ERROR: Missing AIRSHIP_TREASUREMAP directory [$AIRSHIP_TREASUREMAP]."
48 if [ ! -d "$AIRSHIP_TEMPLATES" ]; then
49 echo "ERROR: Missing AIRSHIP_TEMPLATES directory [$AIRSHIP_TEMPLATES]."
53 # Check that we are root
54 if [[ $(whoami) != "root" ]]
56 echo "Must be root to run $0"
60 if [ -z "$YAML_BUILDS" ]
62 echo "Please set YAML_BUILDS"
65 export WORKSPACE=$YAML_BUILDS
66 echo "WORKSPACE=$WORKSPACE"
70 create_directories() {
71 mkdir -p ./tars/$SITE/configs/promenade
72 mkdir -p ./tars/$SITE/configs/promenade-bundle
76 $YAML_BUILDS/tools/pegleg.sh site -p /site -a /global collect ${SITE} -s /site/tars/$SITE/configs/promenade
80 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
84 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
88 KEYSTONE_IMAGE=$(grep "keystone_db_sync: docker.io" $AIRSHIP_TREASUREMAP/global/v4.0/software/config/versions.yaml | uniq | awk '{print $2}')
89 SHIPYARD_IMAGE=$(grep "shipyard_db_sync" $AIRSHIP_TREASUREMAP/global/v4.0/software/config/versions.yaml | uniq | awk '{print $2}')
91 DRYDOCK_PASSWORD=$(grep "^data:" $YAML_BUILDS/site/$SITE/secrets/passphrases/ucp_drydock_keystone_password.yaml | awk '{print $2}')
92 SHIPYARD_PASSWORD=$(grep "^data:" $YAML_BUILDS/site/$SITE/secrets/passphrases/ucp_shipyard_keystone_password.yaml | awk '{print $2}')
95 cp $YAML_BUILDS/tools/deploy_site.sh $YAML_BUILDS/tars/$SITE/
96 sed -i -e "s,KEYSTONE_IMAGE=,KEYSTONE_IMAGE=$KEYSTONE_IMAGE,g" $YAML_BUILDS/tars/$SITE/deploy_site.sh
97 sed -i -e "s,SHIPYARD_IMAGE=,SHIPYARD_IMAGE=$SHIPYARD_IMAGE,g" $YAML_BUILDS/tars/$SITE/deploy_site.sh
98 sed -i -e "s/DRYDOCK_PASSWORD=/DRYDOCK_PASSWORD=$DRYDOCK_PASSWORD/g" $YAML_BUILDS/tars/$SITE/deploy_site.sh
99 sed -i -e "s/SHIPYARD_PASSWORD=/SHIPYARD_PASSWORD=$SHIPYARD_PASSWORD/g" $YAML_BUILDS/tars/$SITE/deploy_site.sh
100 sed -i -e "s/REGION_NAME=/REGION_NAME=$REGION_NAME/g" $YAML_BUILDS/tars/$SITE/deploy_site.sh
101 sed -i -e "s/{{yaml.genesis.host}}/$GENESIS_HOST/g" $YAML_BUILDS/tars/$SITE/deploy_site.sh
103 cp $YAML_BUILDS/tools/update_iptables.sh $YAML_BUILDS/tars/$SITE/
104 sed -i -e "s,HOST_INTERFACE=,HOST_INTERFACE=$HOST_INTERFACE,g" $YAML_BUILDS/tars/$SITE/update_iptables.sh
105 sed -i -e "s,PXE_INTERFACE=,PXE_INTERFACE=$PXE_INTERFACE,g" $YAML_BUILDS/tars/$SITE/update_iptables.sh
107 cp $YAML_BUILDS/tools/cleanup.sh $YAML_BUILDS/tars/$SITE/
111 rm -f ./tars/promenade-bundle-$SITE.tar
112 tar cvf ./tars/promenade-bundle-$SITE.tar -C ./tars/$SITE .
123 echo "# Collecting config files in $AIRSHIP_TREASUREMAP/site/$SITE"
124 cd $AIRSHIP_TREASUREMAP
125 rm -rf $AIRSHIP_TREASUREMAP/${SITE}_collected
126 mkdir -p $AIRSHIP_TREASUREMAP/${SITE}_collected
127 $AIRSHIP_TREASUREMAP/tools/airship pegleg site -r /target collect $SITE -s ${SITE}_collected || true
131 echo "# Rendering config files in $AIRSHIP_TREASUREMAP/site/$SITE"
132 cd $AIRSHIP_TREASUREMAP
133 $AIRSHIP_TREASUREMAP/tools/airship pegleg site -r /target render $SITE > ${SITE}_render.yaml || true
137 echo "# Generating certs for $AIRSHIP_TREASUREMAP/site/$SITE"
138 cd $AIRSHIP_TREASUREMAP
139 rm -rf $AIRSHIP_TREASUREMAP/${SITE}_certs
140 mkdir -p $AIRSHIP_TREASUREMAP/${SITE}_certs
141 $AIRSHIP_TREASUREMAP/tools/airship promenade generate-certs -o /target/${SITE}_certs /target/${SITE}_collected/*.yaml
145 echo "# Copying certs to $AIRSHIP_TREASUREMAP/site/$SITE"
146 cd $AIRSHIP_TREASUREMAP
147 mkdir -p $AIRSHIP_TREASUREMAP/site/${SITE}/secrets/certificates
148 cp $AIRSHIP_TREASUREMAP/${SITE}_certs/certificates.yaml $AIRSHIP_TREASUREMAP/site/${SITE}/secrets/certificates
152 echo "# Collecting config files with certs in $AIRSHIP_TREASUREMAP/site/$SITE"
153 cd $AIRSHIP_TREASUREMAP
154 rm -rf $AIRSHIP_TREASUREMAP/${SITE}_collected
155 mkdir -p $AIRSHIP_TREASUREMAP/${SITE}_collected
156 $AIRSHIP_TREASUREMAP/tools/airship pegleg site -r /target collect $SITE -s ${SITE}_collected
160 echo "# Generating Promenade bundle with $AIRSHIP_TREASUREMAP/${SITE}_collected"
161 cd $AIRSHIP_TREASUREMAP
162 rm -rf $AIRSHIP_TREASUREMAP/${SITE}_bundle
163 mkdir -p $AIRSHIP_TREASUREMAP/${SITE}_bundle
164 $AIRSHIP_TREASUREMAP/tools/airship promenade build-all --validators -o /target/${SITE}_bundle /target/${SITE}_collected/*.yaml
168 echo "# Copying scripts to $AIRSHIP_TREASUREMAP/${SITE}_bundle"
169 #KEYSTONE_IMAGE=$(grep "keystone_db_sync: docker.io" $AIRSHIP_TREASUREMAP/global/software/config/versions.yaml | uniq | awk '{print $2}')
170 SHIPYARD_IMAGE=$(grep "shipyard_db_sync" $AIRSHIP_TREASUREMAP/global/software/config/versions.yaml | uniq | awk '{print $2}')
172 DRYDOCK_PASSWORD=$(grep "^data:" $AIRSHIP_TREASUREMAP/site/$SITE/secrets/passphrases/ucp_drydock_keystone_password.yaml | awk '{print $2}')
173 SHIPYARD_PASSWORD=$(grep "^data:" $AIRSHIP_TREASUREMAP/site/$SITE/secrets/passphrases/ucp_shipyard_keystone_password.yaml | awk '{print $2}')
176 DEPLOY_SCRIPT=$AIRSHIP_TREASUREMAP/${SITE}_bundle/deploy_site.sh
177 IPTABLES_SCRIPT=$AIRSHIP_TREASUREMAP/${SITE}_bundle/update_iptables.sh
179 cp $YAML_BUILDS/tools/deploy_site.sh $AIRSHIP_TREASUREMAP/${SITE}_bundle
180 sed -i -e "s,KEYSTONE_IMAGE=,KEYSTONE_IMAGE=$KEYSTONE_IMAGE,g" $DEPLOY_SCRIPT
181 sed -i -e "s,SHIPYARD_IMAGE=,SHIPYARD_IMAGE=$SHIPYARD_IMAGE,g" $DEPLOY_SCRIPT
182 sed -i -e "s/DRYDOCK_PASSWORD=/DRYDOCK_PASSWORD=$DRYDOCK_PASSWORD/g" $DEPLOY_SCRIPT
183 sed -i -e "s/SHIPYARD_PASSWORD=/SHIPYARD_PASSWORD=$SHIPYARD_PASSWORD/g" $DEPLOY_SCRIPT
184 sed -i -e "s/REGION_NAME=/REGION_NAME=$REGION_NAME/g" $DEPLOY_SCRIPT
185 sed -i -e "s/{{yaml.genesis.host}}/$GENESIS_HOST/g" $DEPLOY_SCRIPT
187 cp $YAML_BUILDS/tools/update_iptables.sh $AIRSHIP_TREASUREMAP/${SITE}_bundle
188 sed -i -e "s,HOST_INTERFACE=,HOST_INTERFACE=$HOST_INTERFACE,g" $IPTABLES_SCRIPT
189 sed -i -e "s,PXE_INTERFACE=,PXE_INTERFACE=$PXE_INTERFACE,g" $IPTABLES_SCRIPT
191 cp $YAML_BUILDS/tools/cleanup.sh $AIRSHIP_TREASUREMAP/${SITE}_bundle
195 echo "# Generating Promenade tar bundle $YAML_BUILDS/tars/promenade-bundle-$SITE.tar"
196 mkdir -p $YAML_BUILDS/tars
197 rm -f $YAML_BUILDS/tars/promenade-bundle-$SITE.tar
198 tar cvf $YAML_BUILDS/tars/promenade-bundle-$SITE.tar -C $AIRSHIP_TREASUREMAP/${SITE}_bundle .
201 echo "#######################################"
203 echo "#######################################"