Loading templates/gitlab-ci-cf.yml +45 −31 Original line number Diff line number Diff line Loading @@ -490,7 +490,8 @@ stages: generate_vars_file # find manifest export manifestfile=$(ls -1 "$CF_SCRIPTS_DIR/${CF_MANIFEST_BASENAME}-${env}.yml" 2>/dev/null || ls -1 "$CF_SCRIPTS_DIR/${CF_MANIFEST_BASENAME}.yml" 2>/dev/null || echo "") manifestfile=$(ls -1 "$CF_SCRIPTS_DIR/${CF_MANIFEST_BASENAME}-${env}.yml" 2>/dev/null || ls -1 "$CF_SCRIPTS_DIR/${CF_MANIFEST_BASENAME}.yml" 2>/dev/null || echo "") export manifestfile if [[ -z "$manifestfile" ]] then log_info "Manifest not found, lookedup paths are:\n - \\e[33;1m$CF_SCRIPTS_DIR/${CF_MANIFEST_BASENAME}-${env}.yml\\e[0m\n - \\e[33;1m$CF_SCRIPTS_DIR/${CF_MANIFEST_BASENAME}.yml\\e[0m\n - no app to deploy" Loading Loading @@ -669,7 +670,8 @@ stages: pre_delete # delete app local sfound=$(cf apps | sed -e 1,3d | grep "^${appname} " | cat) local sfound sfound=$(cf apps | sed -e 1,3d | grep "^${appname} " | cat) if [[ -z "$sfound" ]]; then log_info "--- nothing to delete" else Loading Loading @@ -755,21 +757,25 @@ stages: } function get_desc_field() { local field_value=$(cat $1 | jq .${2}) local notnull=$3 export desc_field_error="" local field_value local notnull field_value=$(cat "$1" | jq ."${2}") notnull=$3 export desc_field export desc_field_error desc_field_error="" if [[ "${field_value}" == "null" ]]; then if [[ "${notnull}" == "true" ]]; then export desc_field_error="${2} should not be null: creation aborted" desc_field_error="${2} should not be null: creation aborted" return else export desc_field="" desc_field="" fi else if [[ "${field_value}" == "\""* ]]; then export desc_field=$(expr substr ${field_value} 2 $(( ${#field_value} - 2 ))) desc_field=$(expr substr ${field_value} 2 $(( ${#field_value} - 2 ))) else export desc_field=${field_value} desc_field=${field_value} fi fi } Loading @@ -796,12 +802,17 @@ stages: } function create_service() { local fields=("cfServiceName" "cfServiceOffering" "cfServicePlan" "cfServiceBroker" "cfServiceArgs") local mandatory=("true" "true" "true" "false" "false") local fvalues=("" "" "" "" "") local service_desc=$1 local smsg="Create service instance ${COLOR_YELLOW}${service_desc}${COLOR_NONE}: " for fi in ${!fields[@]} local fields local mandatory local fvalues local service_desc local smsg fields=("cfServiceName" "cfServiceOffering" "cfServicePlan" "cfServiceBroker" "cfServiceArgs") mandatory=("true" "true" "true" "false" "false") fvalues=("" "" "" "" "") service_desc=$1 smsg="Create service instance ${COLOR_YELLOW}${service_desc}${COLOR_NONE}: " for fi in "${!fields[@]}" do get_desc_field $service_desc "${fields[$fi]}" "${mandatory[$fi]}" if [[ ! -z "$desc_field_error" ]]; then Loading @@ -812,29 +823,31 @@ stages: fvalues[$fi]=$(echo ${desc_field} | tr -d '\r' | envsubst) done log_info "${smsg}service definition OK - proceed" for fi in ${!fields[@]} for fi in "${!fields[@]}" do log_info "--- ${fields[$fi]}: ${COLOR_YELLOW}${fvalues[$fi]}${COLOR_NONE}" done local sfound=$(cf services | sed -e 1,3d | grep "^${fvalues[0]}" | cat) local sfound sfound=$(cf services | sed -e 1,3d | grep "^${fvalues[0]}" | cat) if [[ -z "$sfound" ]]; then is_cups "${fvalues[1]}" "${fvalues[2]}" if [[ "$res_is_cups" = "CUPS" ]]; then cf cups ${fvalues[0]} -p $(echo "'${fvalues[4]}'" | tr -d ' ') >/dev/null 2>&1 cf cups "${fvalues[0]}" -p "$(echo "'${fvalues[4]}'" | tr -d ' ')" >/dev/null 2>&1 else if [[ -z "${fvalues[3]}" ]]; then broker="" else broker="-b ${fvalues[3]}" fi local argfile=`mktemp` local argfile argfile=`mktemp` if [[ -z "${fvalues[4]}" ]]; then params="" else echo ${fvalues[4]} >${argfile} echo "${fvalues[4]}" >"${argfile}" params="-c ${argfile}" fi cf create-service ${fvalues[1]} ${fvalues[2]} ${fvalues[0]} ${broker} ${params} -w >/dev/null 2>&1 cf create-service "${fvalues[1]}" "${fvalues[2]}" "${fvalues[0]}" "${broker}" "${params}" -w >/dev/null 2>&1 rm -f ${argfile} fi log_info "${COLOR_GREEN}... created${COLOR_NONE}" Loading @@ -844,7 +857,7 @@ stages: } function delete_service() { local service_desc=$1 service_desc=$1 case ${ENV_TYPE} in staging | production) log_info "Delete service instance ${COLOR_YELLOW}${service_desc}${COLOR_NONE}: ignored (env=${ENV_TYPE})" Loading @@ -857,10 +870,10 @@ stages: manage_services_errors=$((manage_services_errors+1)) return fi local name=$(echo ${desc_field} | tr -d '\r') name=$(echo ${desc_field} | tr -d '\r') log_info "${smsg}service definition OK - proceed" log_info "--- cfServiceName: ${COLOR_YELLOW}${name}${COLOR_NONE}" local sfound=$(cf services | sed -e 1,3d | grep "^${name}" | cat) sfound=$(cf services | sed -e 1,3d | grep "^${name}" | cat) if [[ -z "$sfound" ]]; then log_info "${COLOR_BLUE}.... service instance \"${name}\" does not exist - skipped${COLOR_NONE}" else Loading @@ -872,8 +885,9 @@ stages: } function manage_services() { local mgt_action=${1} export manage_services_errors=0 mgt_action=${1} export manage_services_errors manage_services_errors=0 # service_files service descriptors for service instances to be created before deployment if [[ -d "${CF_SCRIPTS_DIR}/${ENV_TYPE}" ]]; then service_dir="${CF_SCRIPTS_DIR}/${ENV_TYPE}" Loading @@ -881,7 +895,7 @@ stages: service_dir="${CF_SCRIPTS_DIR}" fi log_info "Looking for service descriptor files into: ${service_dir}" service_files=$(ls -l "${service_dir}" | grep "cf-service.json" | cut -d ':' -f2 | cut -d ' ' -f2) service_files=$(ls -1 "${service_dir}"/*.cf-service.json) if [[ -z "$service_files" ]] then log_info "No service found to manage, expected files are: \\e[33;1m${service_dir}/*.cf-service.json\\e[0m" Loading @@ -893,14 +907,14 @@ stages: do case ${mgt_action} in create) create_service "${service_dir}/${service_desc}" create_service "${service_desc}" ;; delete) delete_service "${service_dir}/${service_desc}" delete_service "${service_desc}" ;; esac done if [[ "$manage_services_errors" > "0" ]]; then if (( manage_services_errors > 0 )); then log_info "${COLOR_RED}Errors while managing service instances - aborted${COLOR_NONE}" return 1 fi Loading Loading
templates/gitlab-ci-cf.yml +45 −31 Original line number Diff line number Diff line Loading @@ -490,7 +490,8 @@ stages: generate_vars_file # find manifest export manifestfile=$(ls -1 "$CF_SCRIPTS_DIR/${CF_MANIFEST_BASENAME}-${env}.yml" 2>/dev/null || ls -1 "$CF_SCRIPTS_DIR/${CF_MANIFEST_BASENAME}.yml" 2>/dev/null || echo "") manifestfile=$(ls -1 "$CF_SCRIPTS_DIR/${CF_MANIFEST_BASENAME}-${env}.yml" 2>/dev/null || ls -1 "$CF_SCRIPTS_DIR/${CF_MANIFEST_BASENAME}.yml" 2>/dev/null || echo "") export manifestfile if [[ -z "$manifestfile" ]] then log_info "Manifest not found, lookedup paths are:\n - \\e[33;1m$CF_SCRIPTS_DIR/${CF_MANIFEST_BASENAME}-${env}.yml\\e[0m\n - \\e[33;1m$CF_SCRIPTS_DIR/${CF_MANIFEST_BASENAME}.yml\\e[0m\n - no app to deploy" Loading Loading @@ -669,7 +670,8 @@ stages: pre_delete # delete app local sfound=$(cf apps | sed -e 1,3d | grep "^${appname} " | cat) local sfound sfound=$(cf apps | sed -e 1,3d | grep "^${appname} " | cat) if [[ -z "$sfound" ]]; then log_info "--- nothing to delete" else Loading Loading @@ -755,21 +757,25 @@ stages: } function get_desc_field() { local field_value=$(cat $1 | jq .${2}) local notnull=$3 export desc_field_error="" local field_value local notnull field_value=$(cat "$1" | jq ."${2}") notnull=$3 export desc_field export desc_field_error desc_field_error="" if [[ "${field_value}" == "null" ]]; then if [[ "${notnull}" == "true" ]]; then export desc_field_error="${2} should not be null: creation aborted" desc_field_error="${2} should not be null: creation aborted" return else export desc_field="" desc_field="" fi else if [[ "${field_value}" == "\""* ]]; then export desc_field=$(expr substr ${field_value} 2 $(( ${#field_value} - 2 ))) desc_field=$(expr substr ${field_value} 2 $(( ${#field_value} - 2 ))) else export desc_field=${field_value} desc_field=${field_value} fi fi } Loading @@ -796,12 +802,17 @@ stages: } function create_service() { local fields=("cfServiceName" "cfServiceOffering" "cfServicePlan" "cfServiceBroker" "cfServiceArgs") local mandatory=("true" "true" "true" "false" "false") local fvalues=("" "" "" "" "") local service_desc=$1 local smsg="Create service instance ${COLOR_YELLOW}${service_desc}${COLOR_NONE}: " for fi in ${!fields[@]} local fields local mandatory local fvalues local service_desc local smsg fields=("cfServiceName" "cfServiceOffering" "cfServicePlan" "cfServiceBroker" "cfServiceArgs") mandatory=("true" "true" "true" "false" "false") fvalues=("" "" "" "" "") service_desc=$1 smsg="Create service instance ${COLOR_YELLOW}${service_desc}${COLOR_NONE}: " for fi in "${!fields[@]}" do get_desc_field $service_desc "${fields[$fi]}" "${mandatory[$fi]}" if [[ ! -z "$desc_field_error" ]]; then Loading @@ -812,29 +823,31 @@ stages: fvalues[$fi]=$(echo ${desc_field} | tr -d '\r' | envsubst) done log_info "${smsg}service definition OK - proceed" for fi in ${!fields[@]} for fi in "${!fields[@]}" do log_info "--- ${fields[$fi]}: ${COLOR_YELLOW}${fvalues[$fi]}${COLOR_NONE}" done local sfound=$(cf services | sed -e 1,3d | grep "^${fvalues[0]}" | cat) local sfound sfound=$(cf services | sed -e 1,3d | grep "^${fvalues[0]}" | cat) if [[ -z "$sfound" ]]; then is_cups "${fvalues[1]}" "${fvalues[2]}" if [[ "$res_is_cups" = "CUPS" ]]; then cf cups ${fvalues[0]} -p $(echo "'${fvalues[4]}'" | tr -d ' ') >/dev/null 2>&1 cf cups "${fvalues[0]}" -p "$(echo "'${fvalues[4]}'" | tr -d ' ')" >/dev/null 2>&1 else if [[ -z "${fvalues[3]}" ]]; then broker="" else broker="-b ${fvalues[3]}" fi local argfile=`mktemp` local argfile argfile=`mktemp` if [[ -z "${fvalues[4]}" ]]; then params="" else echo ${fvalues[4]} >${argfile} echo "${fvalues[4]}" >"${argfile}" params="-c ${argfile}" fi cf create-service ${fvalues[1]} ${fvalues[2]} ${fvalues[0]} ${broker} ${params} -w >/dev/null 2>&1 cf create-service "${fvalues[1]}" "${fvalues[2]}" "${fvalues[0]}" "${broker}" "${params}" -w >/dev/null 2>&1 rm -f ${argfile} fi log_info "${COLOR_GREEN}... created${COLOR_NONE}" Loading @@ -844,7 +857,7 @@ stages: } function delete_service() { local service_desc=$1 service_desc=$1 case ${ENV_TYPE} in staging | production) log_info "Delete service instance ${COLOR_YELLOW}${service_desc}${COLOR_NONE}: ignored (env=${ENV_TYPE})" Loading @@ -857,10 +870,10 @@ stages: manage_services_errors=$((manage_services_errors+1)) return fi local name=$(echo ${desc_field} | tr -d '\r') name=$(echo ${desc_field} | tr -d '\r') log_info "${smsg}service definition OK - proceed" log_info "--- cfServiceName: ${COLOR_YELLOW}${name}${COLOR_NONE}" local sfound=$(cf services | sed -e 1,3d | grep "^${name}" | cat) sfound=$(cf services | sed -e 1,3d | grep "^${name}" | cat) if [[ -z "$sfound" ]]; then log_info "${COLOR_BLUE}.... service instance \"${name}\" does not exist - skipped${COLOR_NONE}" else Loading @@ -872,8 +885,9 @@ stages: } function manage_services() { local mgt_action=${1} export manage_services_errors=0 mgt_action=${1} export manage_services_errors manage_services_errors=0 # service_files service descriptors for service instances to be created before deployment if [[ -d "${CF_SCRIPTS_DIR}/${ENV_TYPE}" ]]; then service_dir="${CF_SCRIPTS_DIR}/${ENV_TYPE}" Loading @@ -881,7 +895,7 @@ stages: service_dir="${CF_SCRIPTS_DIR}" fi log_info "Looking for service descriptor files into: ${service_dir}" service_files=$(ls -l "${service_dir}" | grep "cf-service.json" | cut -d ':' -f2 | cut -d ' ' -f2) service_files=$(ls -1 "${service_dir}"/*.cf-service.json) if [[ -z "$service_files" ]] then log_info "No service found to manage, expected files are: \\e[33;1m${service_dir}/*.cf-service.json\\e[0m" Loading @@ -893,14 +907,14 @@ stages: do case ${mgt_action} in create) create_service "${service_dir}/${service_desc}" create_service "${service_desc}" ;; delete) delete_service "${service_dir}/${service_desc}" delete_service "${service_desc}" ;; esac done if [[ "$manage_services_errors" > "0" ]]; then if (( manage_services_errors > 0 )); then log_info "${COLOR_RED}Errors while managing service instances - aborted${COLOR_NONE}" return 1 fi Loading