remove pkill to prevent exit code 1
[yaml_builds.git] / tools / 1prom-gen.sh
index 7d3b895..5a08cd2 100755 (executable)
@@ -1,6 +1,6 @@
 #!/bin/bash
 ##############################################################################
-# Copyright © 2018 AT&T Intellectual Property. All rights reserved.          #
+# 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.                   #
 
 # re-generate prom config
 
-set -x
+set -xe
+LOGDIR="/var/log/akraino"
+mkdir -p $LOGDIR
+LOGFILE="$LOGDIR/${1}_$(date +"%Y%m%d%H%M%z")_$(basename $0|cut -d. -f1)"
+echo "logging to $LOGFILE"
+exec 1> >(tee -a $LOGFILE)
+exec 2>&1
 
 source $(dirname $0)/setenv.sh
 
-PROMENADE_IMAGE=quay.io/airshipit/promenade:master
-
-if [ -z "$AIC_CLCP_MANIFESTS" ]
-then
-  echo "Please follow https://codecloud.web.att.com/projects/ST_CCP/repos/aic-clcp-manifests/browse/docs/source/deployment_blueprint.md to clone aic-clcp-manifests. Also set AIC_CLCP_MANIFESTS to it."
-  exit -1
-else
-  WORKSPACE=$AIC_CLCP_MANIFESTS
-  echo "WORKSPACE=$WORKSPACE"
-fi
+PROMENADE_IMAGE=quay.io/airshipit/promenade:009f3de7ecf6afcdd2783ac7a12470394d7dfab3
 
 if [ -z "$1" ]
 then
-  echo "Plese pass site name as command line argument"
+  echo "Please pass site name as command line argument"
   exit -2
 else
   SITE=${SITE:-$1}
   echo "SITE=$SITE"
 fi
-
 source $(dirname $0)/env_$SITE.sh
 
+if [ ! -d "$AIRSHIP_TREASUREMAP" ]; then
+  echo "ERROR: Missing AIRSHIP_TREASUREMAP directory [$AIRSHIP_TREASUREMAP]."
+  exit -1
+fi
+
+if [ ! -d "$AIRSHIP_TEMPLATES" ]; then
+  echo "ERROR: Missing AIRSHIP_TEMPLATES directory [$AIRSHIP_TEMPLATES]."
+  exit -1
+fi
+
 # Check that we are root
 if [[ $(whoami) != "root" ]]
 then
   echo "Must be root to run $0"
   exit -1
 fi
-cd $AIC_CLCP_MANIFESTS/tools/
-
-install_docker() {
-   # Configure proxy for Docker daemon
-   mkdir -p /etc/systemd/system/docker.service.d
-   mkdir -p /etc/docker
-
-cat <<EOF > /etc/apt/sources.list.d/promenade-sources.list
-deb http://apt.dockerproject.org/repo ubuntu-xenial main
-EOF
-
-#cat<<EOF > /etc/docker/daemon.json
-#{
-#  "insecure-registries": [
-#    "artifacts-aic.atlantafoundry.com"
-#  ],
-#  "live-restore": true,
-#  "storage-driver": "overlay2"
-#}
-#EOF
-
-cat<<EOF > /etc/docker/daemon.json
-{
-  "live-restore": true,
-  "storage-driver": "overlay2"
-}
-EOF
-
-#Set HTTPS Proxy Variable
-cat <<EOF > /etc/systemd/system/docker.service.d/http-proxy.conf
-[Service]
-Environment="HTTP_PROXY=http://one.proxy.att.com:8888"
-EOF
-
-#Set HTTPS Proxy Variable
-cat <<EOF > /etc/systemd/system/docker.service.d/https-proxy.conf
-[Service]
-Environment="HTTPS_PROXY=http://one.proxy.att.com:8888"
-EOF
-
-apt-key add - <<"ENDKEY"
------BEGIN PGP PUBLIC KEY BLOCK-----
-
-mQINBFWln24BEADrBl5p99uKh8+rpvqJ48u4eTtjeXAWbslJotmC/CakbNSqOb9o
-ddfzRvGVeJVERt/Q/mlvEqgnyTQy+e6oEYN2Y2kqXceUhXagThnqCoxcEJ3+KM4R
-mYdoe/BJ/J/6rHOjq7Omk24z2qB3RU1uAv57iY5VGw5p45uZB4C4pNNsBJXoCvPn
-TGAs/7IrekFZDDgVraPx/hdiwopQ8NltSfZCyu/jPpWFK28TR8yfVlzYFwibj5WK
-dHM7ZTqlA1tHIG+agyPf3Rae0jPMsHR6q+arXVwMccyOi+ULU0z8mHUJ3iEMIrpT
-X+80KaN/ZjibfsBOCjcfiJSB/acn4nxQQgNZigna32velafhQivsNREFeJpzENiG
-HOoyC6qVeOgKrRiKxzymj0FIMLru/iFF5pSWcBQB7PYlt8J0G80lAcPr6VCiN+4c
-NKv03SdvA69dCOj79PuO9IIvQsJXsSq96HB+TeEmmL+xSdpGtGdCJHHM1fDeCqkZ
-hT+RtBGQL2SEdWjxbF43oQopocT8cHvyX6Zaltn0svoGs+wX3Z/H6/8P5anog43U
-65c0A+64Jj00rNDr8j31izhtQMRo892kGeQAaaxg4Pz6HnS7hRC+cOMHUU4HA7iM
-zHrouAdYeTZeZEQOA7SxtCME9ZnGwe2grxPXh/U/80WJGkzLFNcTKdv+rwARAQAB
-tDdEb2NrZXIgUmVsZWFzZSBUb29sIChyZWxlYXNlZG9ja2VyKSA8ZG9ja2VyQGRv
-Y2tlci5jb20+iQI4BBMBAgAiBQJVpZ9uAhsvBgsJCAcDAgYVCAIJCgsEFgIDAQIe
-AQIXgAAKCRD3YiFXLFJgnbRfEAC9Uai7Rv20QIDlDogRzd+Vebg4ahyoUdj0CH+n
-Ak40RIoq6G26u1e+sdgjpCa8jF6vrx+smpgd1HeJdmpahUX0XN3X9f9qU9oj9A4I
-1WDalRWJh+tP5WNv2ySy6AwcP9QnjuBMRTnTK27pk1sEMg9oJHK5p+ts8hlSC4Sl
-uyMKH5NMVy9c+A9yqq9NF6M6d6/ehKfBFFLG9BX+XLBATvf1ZemGVHQusCQebTGv
-0C0V9yqtdPdRWVIEhHxyNHATaVYOafTj/EF0lDxLl6zDT6trRV5n9F1VCEh4Aal8
-L5MxVPcIZVO7NHT2EkQgn8CvWjV3oKl2GopZF8V4XdJRl90U/WDv/6cmfI08GkzD
-YBHhS8ULWRFwGKobsSTyIvnbk4NtKdnTGyTJCQ8+6i52s+C54PiNgfj2ieNn6oOR
-7d+bNCcG1CdOYY+ZXVOcsjl73UYvtJrO0Rl/NpYERkZ5d/tzw4jZ6FCXgggA/Zxc
-jk6Y1ZvIm8Mt8wLRFH9Nww+FVsCtaCXJLP8DlJLASMD9rl5QS9Ku3u7ZNrr5HWXP
-HXITX660jglyshch6CWeiUATqjIAzkEQom/kEnOrvJAtkypRJ59vYQOedZ1sFVEL
-MXg2UCkD/FwojfnVtjzYaTCeGwFQeqzHmM241iuOmBYPeyTY5veF49aBJA1gEJOQ
-TvBR8Q==
-=Fm3p
------END PGP PUBLIC KEY BLOCK-----
-ENDKEY
-
-   apt-get update
-   apt-get install -y docker-engine=1.13.1-0~ubuntu-xenial socat=1.7.3.1-1
-   systemctl daemon-reload
-   systemctl restart docker || true
-}
-
-cleanup() {
-   rm -rf ./configs/promenade
-   rm -rf ./configs/promenade-bundle
-   mkdir -p ./configs/promenade
-   mkdir -p ./configs/promenade-bundle
-}
-
-get_site_config(){
-   ./pegleg.sh site -p /workspace collect ${SITE} -s /workspace/tools/configs/promenade
-}
-
-gen_certs() {
-   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/configs/promenade /target/configs/promenade/*.yaml
-}
-
-gen_bundle(){
-   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/configs/promenade-bundle /target/configs/promenade/*.yaml
-}
-
-prepare_tar(){
-   rm ./promenade-bundle.tar
-   cp ./configs/promenade/*.yaml ./configs/promenade-bundle/
-   tar cvf promenade-bundle.tar ./configs/promenade-bundle/
-}
-
-#install_docker
-cleanup
-get_site_config
-gen_certs
-gen_bundle
-prepare_tar
 
+if [ -z "$YAML_BUILDS" ]
+then
+  echo "Please set YAML_BUILDS"
+  exit -3
+else
+  export WORKSPACE=$YAML_BUILDS
+  echo "WORKSPACE=$WORKSPACE"
+  cd $YAML_BUILDS
+fi
+
+(
+echo "# Collecting config files in $AIRSHIP_TREASUREMAP/site/$SITE"
+cd $AIRSHIP_TREASUREMAP
+rm -rf $AIRSHIP_TREASUREMAP/${SITE}_collected
+mkdir -p  $AIRSHIP_TREASUREMAP/${SITE}_collected
+$AIRSHIP_TREASUREMAP/tools/airship pegleg site -r /target collect $SITE -s ${SITE}_collected || true
+)
+
+(
+echo "# Rendering config files in $AIRSHIP_TREASUREMAP/site/$SITE"
+cd $AIRSHIP_TREASUREMAP
+$AIRSHIP_TREASUREMAP/tools/airship pegleg site -r /target render $SITE > ${SITE}_render.yaml || true
+)
+
+(
+echo "# Generating certs for $AIRSHIP_TREASUREMAP/site/$SITE"
+cd $AIRSHIP_TREASUREMAP
+rm -rf $AIRSHIP_TREASUREMAP/${SITE}_certs
+mkdir -p  $AIRSHIP_TREASUREMAP/${SITE}_certs
+$AIRSHIP_TREASUREMAP/tools/airship promenade generate-certs -o /target/${SITE}_certs /target/${SITE}_collected/*.yaml
+)
+
+(
+echo "# Copying certs to $AIRSHIP_TREASUREMAP/site/$SITE"
+cd $AIRSHIP_TREASUREMAP
+mkdir -p  $AIRSHIP_TREASUREMAP/site/${SITE}/secrets/certificates
+cp $AIRSHIP_TREASUREMAP/${SITE}_certs/certificates.yaml $AIRSHIP_TREASUREMAP/site/${SITE}/secrets/certificates
+)
+
+(
+echo "# Collecting config files with certs in $AIRSHIP_TREASUREMAP/site/$SITE"
+cd $AIRSHIP_TREASUREMAP
+rm -rf $AIRSHIP_TREASUREMAP/${SITE}_collected
+mkdir -p  $AIRSHIP_TREASUREMAP/${SITE}_collected
+$AIRSHIP_TREASUREMAP/tools/airship pegleg site -r /target collect $SITE -s ${SITE}_collected
+)
+
+(
+echo "# Generating Promenade bundle with $AIRSHIP_TREASUREMAP/${SITE}_collected"
+cd $AIRSHIP_TREASUREMAP
+rm -rf $AIRSHIP_TREASUREMAP/${SITE}_bundle
+mkdir -p  $AIRSHIP_TREASUREMAP/${SITE}_bundle
+$AIRSHIP_TREASUREMAP/tools/airship promenade build-all --validators -o /target/${SITE}_bundle /target/${SITE}_collected/*.yaml
+)
+
+(
+echo "# Copying scripts to $AIRSHIP_TREASUREMAP/${SITE}_bundle"
+  SHIPYARD_PASSWORD=$(grep "^data:" $AIRSHIP_TREASUREMAP/site/$SITE/secrets/passphrases/ucp_shipyard_keystone_password.yaml | awk '{print $2}')
+  AUTH_DOMAIN=$(grep "ingress_domain:" $AIRSHIP_TREASUREMAP/site/$SITE/networks/common-addresses.yaml | awk '{print $2}')
+  AUTH_URL="http:\/\/iam-sw.${AUTH_DOMAIN}:80\/v3"
+  REGION_NAME=$SITE
+
+  DEPLOY_SCRIPT=$AIRSHIP_TREASUREMAP/${SITE}_bundle/deploy_site.sh
+  IPTABLES_SCRIPT=$AIRSHIP_TREASUREMAP/${SITE}_bundle/update_iptables.sh
+
+  cp $YAML_BUILDS/tools/deploy_site.sh $AIRSHIP_TREASUREMAP/${SITE}_bundle
+  sed -i -e "s|OS_AUTH_URL=|OS_AUTH_URL=\"${AUTH_URL}\"|g" $DEPLOY_SCRIPT
+  sed -i -e "s/OS_PASSWORD=/OS_PASSWORD=$SHIPYARD_PASSWORD/g" $DEPLOY_SCRIPT
+  sed -i -e "s/REGION_NAME=/REGION_NAME=$REGION_NAME/g" $DEPLOY_SCRIPT
+  sed -i -e "s/{{yaml.genesis.host}}/$GENESIS_HOST/g" $DEPLOY_SCRIPT
+
+  cp $YAML_BUILDS/tools/update_iptables.sh $AIRSHIP_TREASUREMAP/${SITE}_bundle
+  sed -i -e "s,HOST_INTERFACE=,HOST_INTERFACE=$HOST_INTERFACE,g" $IPTABLES_SCRIPT
+  sed -i -e "s,PXE_INTERFACE=,PXE_INTERFACE=$PXE_INTERFACE,g" $IPTABLES_SCRIPT
+
+  cp $YAML_BUILDS/tools/cleanup.sh $AIRSHIP_TREASUREMAP/${SITE}_bundle
+)
+
+(
+    echo "# Generating Promenade tar bundle $YAML_BUILDS/tars/promenade-bundle-$SITE.tar"
+    mkdir -p $YAML_BUILDS/tars
+    rm -f $YAML_BUILDS/tars/promenade-bundle-$SITE.tar
+    tar cvf $YAML_BUILDS/tars/promenade-bundle-$SITE.tar --transform 's,^,configs/promenade-bundle/,' -C $AIRSHIP_TREASUREMAP/${SITE}_bundle .
+    tar rvf $YAML_BUILDS/tars/promenade-bundle-$SITE.tar --transform 's,^,configs/promenade/,' -C $AIRSHIP_TREASUREMAP/${SITE}_collected  .
+    tar rvf $YAML_BUILDS/tars/promenade-bundle-$SITE.tar -C $AIRSHIP_TREASUREMAP tools global
+)
+
+echo "#######################################"
+echo "# $0 finished"
+echo "#######################################"
+
+#pkill -9 $$ && exit 0