Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ### to fix the issue about oc login token shared between the job executions ###
- HOME=$(pwd)/.${RD_JOB_EXECID}
- cd $HOME
- ### fix end ###
- ### functions ###
- # produz logging no console
- ## $1 mensagem
- function info() {
- (echo -e "> > > > [`date +"%Y-%m-%d_%H-%M-%S"`] $1")
- }
- # produz logging de erros no console
- ## $1 mensagem de erro
- function error() {
- (>&1 echo -e "> > > > [`date +"%Y-%m-%d_%H-%M-%S"`] *ERROR* $1")
- }
- ### /functions/ ###
- #echo "> > > > [`date +"%Y-%m-%d_%H-%M-%S"`] [OPENSHIFT_PROJECT].: ${RD_OPTION_OPENSHIFT_PROJECT}"
- info "[OPENSHIFT_PROJECT].: ${RD_OPTION_OPENSHIFT_PROJECT}"
- #echo "> > > > [`date +"%Y-%m-%d_%H-%M-%S"`] [APP_NAME]..........: ${RD_OPTION_APP_NAME}"
- info "[APP_NAME]..........: ${RD_OPTION_APP_NAME}"
- #echo "> > > > [`date +"%Y-%m-%d_%H-%M-%S"`] [PARAM_URL_REGISTRY]: ${RD_OPTION_PARAM_URL_REGISTRY}"
- info "[PARAM_URL_REGISTRY]: ${RD_OPTION_PARAM_URL_REGISTRY}"
- # Get the current registry url
- CURR=`oc get dc ${RD_OPTION_APP_NAME} -n ${RD_OPTION_OPENSHIFT_PROJECT} --template="{{(index .spec.template.spec.containers 0).image}}"`
- if [ "$?" == 0 ]; then
- #echo "> > > > [`date +"%Y-%m-%d_%H-%M-%S"`] Imagem antiga: ${CURR}"
- info "Imagem antiga: ${CURR}"
- # Get the latest deployed number
- DEPLOYED=$(oc deploy ${RD_OPTION_APP_NAME} -n ${RD_OPTION_OPENSHIFT_PROJECT} | grep deployed | awk -F ' ' '{print $3}')
- #echo "> > > > [`date +"%Y-%m-%d_%H-%M-%S"`] Current deployment ${DEPLOYED}"
- info "Current deployment ${DEPLOYED}"
- # Apply the new image
- oc patch dc ${RD_OPTION_APP_NAME} \
- -n ${RD_OPTION_OPENSHIFT_PROJECT} \
- --patch='{"spec":{"template":{"spec":{"containers":[{"name":"'${RD_OPTION_APP_NAME}'","image":"'${RD_OPTION_PARAM_URL_REGISTRY}'"}]}}}}'
- if [ "$?" == 0 ]; then
- #### Sync deployment ####
- #echo "> > > > [`date +"%Y-%m-%d_%H-%M-%S"`] Rolling deployment ${DEPLOY}"
- info "Rolling deployment ${DEPLOY}"
- # Run until deployed or failed
- while :; do
- # Get the number of started pending or running number
- if [ -z "$DEPLOY" ]; then
- DEPLOY=$(oc deploy ${RD_OPTION_APP_NAME} -n ${RD_OPTION_OPENSHIFT_PROJECT} | grep -v $DEPLOYED | awk -F ' ' '{print $3}')
- fi
- # Get the status of rolling deployment
- STATUS=$(oc deploy ${RD_OPTION_APP_NAME} -n ${RD_OPTION_OPENSHIFT_PROJECT} | grep -v $DEPLOYED | awk -F ' ' '{print $4}')
- #echo "> > > > [`date +"%Y-%m-%d_%H-%M-%S"`] ${RD_OPTION_APP_NAME} - ${DEPLOY} - ${STATUS}"
- info "${RD_OPTION_APP_NAME} - ${DEPLOY} - ${STATUS}"
- case $STATUS in
- running)
- sleep 5
- continue
- ;;
- pending)
- sleep 5
- continue
- ;;
- failed)
- #echo "> > > > [`date +"%Y-%m-%d_%H-%M-%S"`] [FAILURE] Deployment ${DEPLOY} finalizado com *erro*"
- error "Deployment ${DEPLOY} finalizado com *erro*"
- exit 3
- ;;
- deployed)
- #echo "> > > > [`date +"%Y-%m-%d_%H-%M-%S"`] [SUCCESS] Deployment ${DEPLOY} finalizado com sucesso."
- info "[SUCCESS] Deployment ${DEPLOY} finalizado com sucesso."
- break
- ;;
- *)
- #echo "> > > > [`date +"%Y-%m-%d_%H-%M-%S"`] ${RD_OPTION_APP_NAME} - ${DEPLOY} - $STATUS . . ."
- info "${RD_OPTION_APP_NAME} - ${DEPLOY} - $STATUS . . ."
- continue
- ;;
- esac
- done
- #### Sync deployment ####
- else
- #echo "> > > > [`date +"%Y-%m-%d_%H-%M-%S"`] [FAILURE] Patch *failed*, deployment not started"
- error "Patch *failed*, deployment not started"
- exit 2
- fi
- else
- #echo "> > > > [`date +"%Y-%m-%d_%H-%M-%S"`] [FAILURE] Can not get the current config"
- error "Can not get the current config"
- exit 1
- fi
Add Comment
Please, Sign In to add comment