add force to rm and update bios in parallel
[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 -xe
22 TIMESTAMP=$(date +"%Y%m%d%H%M")
23 echo "logging to /var/log/yaml_builds/1prom-gen_$TIMESTAMP.log"
24 mkdir -p /var/log/yaml_builds
25 exec > /var/log/yaml_builds/1prom-gen_$TIMESTAMP.log
26 exec 2>&1
27
28 source $(dirname $0)/setenv.sh
29
30 PROMENADE_IMAGE=quay.io/airshipit/promenade:009f3de7ecf6afcdd2783ac7a12470394d7dfab3
31
32 if [ -z "$AIRSHIP_TREASUREMAP" ]
33 then
34   echo "Please use https://git.openstack.org/openstack/airship-treasuremap to clone airship_treasuremap. Also set AIRSHIP_TREASUREMAP to it."
35   exit -1
36 fi
37
38 if [ -z "$1" ]
39 then
40   echo "Please pass site name as command line argument"
41   exit -2
42 else
43   SITE=${SITE:-$1}
44   echo "SITE=$SITE"
45 fi
46 source $(dirname $0)/env_$SITE.sh
47
48
49 # Check that we are root
50 if [[ $(whoami) != "root" ]]
51 then
52   echo "Must be root to run $0"
53   exit -1
54 fi
55
56 if [ -z "$YAML_BUILDS" ]
57 then
58   echo "Please set YAML_BUILDS"
59   exit -3
60 else
61   export WORKSPACE=$YAML_BUILDS
62   echo "WORKSPACE=$WORKSPACE"
63   cd $YAML_BUILDS
64 fi
65
66 create_directories() {
67    mkdir -p ./tars/$SITE/configs/promenade
68    mkdir -p ./tars/$SITE/configs/promenade-bundle
69 }
70
71 get_site_config(){
72    $YAML_BUILDS/tools/pegleg.sh site -p /site -a /global collect ${SITE} -s /site/tars/$SITE/configs/promenade
73 }
74
75 gen_certs() {
76    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
77 }
78
79 gen_bundle(){
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 build-all --validators -o /target/tars/$SITE/configs/promenade-bundle /target/tars/$SITE/configs/promenade/*.yaml
81 }
82
83 create_scripts() {
84   KEYSTONE_IMAGE=$(grep "keystone_db_sync: docker.io" $AIRSHIP_TREASUREMAP/global/v4.0/software/config/versions.yaml | uniq | awk '{print $2}')
85   SHIPYARD_IMAGE=$(grep "shipyard_db_sync" $AIRSHIP_TREASUREMAP/global/v4.0/software/config/versions.yaml | uniq | awk '{print $2}')
86
87   DRYDOCK_PASSWORD=$(grep "^data:" $YAML_BUILDS/site/$SITE/secrets/passphrases/ucp_drydock_keystone_password.yaml | awk '{print $2}')
88   SHIPYARD_PASSWORD=$(grep "^data:" $YAML_BUILDS/site/$SITE/secrets/passphrases/ucp_shipyard_keystone_password.yaml | awk '{print $2}')
89   REGION_NAME=$SITE
90
91   cp $YAML_BUILDS/tools/deploy_site.sh $YAML_BUILDS/tars/$SITE/
92   sed -i -e "s,KEYSTONE_IMAGE=,KEYSTONE_IMAGE=$KEYSTONE_IMAGE,g" $YAML_BUILDS/tars/$SITE/deploy_site.sh
93   sed -i -e "s,SHIPYARD_IMAGE=,SHIPYARD_IMAGE=$SHIPYARD_IMAGE,g" $YAML_BUILDS/tars/$SITE/deploy_site.sh
94   sed -i -e "s/DRYDOCK_PASSWORD=/DRYDOCK_PASSWORD=$DRYDOCK_PASSWORD/g" $YAML_BUILDS/tars/$SITE/deploy_site.sh
95   sed -i -e "s/SHIPYARD_PASSWORD=/SHIPYARD_PASSWORD=$SHIPYARD_PASSWORD/g" $YAML_BUILDS/tars/$SITE/deploy_site.sh
96   sed -i -e "s/REGION_NAME=/REGION_NAME=$REGION_NAME/g" $YAML_BUILDS/tars/$SITE/deploy_site.sh
97   sed -i -e "s/{{yaml.genesis.host}}/$GENESIS_HOST/g" $YAML_BUILDS/tars/$SITE/deploy_site.sh
98
99   cp $YAML_BUILDS/tools/update_iptables.sh $YAML_BUILDS/tars/$SITE/
100   sed -i -e "s,HOST_INTERFACE=,HOST_INTERFACE=$HOST_INTERFACE,g" $YAML_BUILDS/tars/$SITE/update_iptables.sh
101   sed -i -e "s,PXE_INTERFACE=,PXE_INTERFACE=$PXE_INTERFACE,g" $YAML_BUILDS/tars/$SITE/update_iptables.sh
102
103   cp $YAML_BUILDS/tools/cleanup.sh $YAML_BUILDS/tars/$SITE/
104 }
105
106 prepare_tar(){
107    rm -f ./tars/promenade-bundle-$SITE.tar
108    tar cvf ./tars/promenade-bundle-$SITE.tar -C ./tars/$SITE .
109 }
110
111 create_directories
112 get_site_config
113 gen_certs
114 gen_bundle
115 create_scripts
116 prepare_tar