From 5b17b7011111cf32b2f4afdb3db31f96999c3b69 Mon Sep 17 00:00:00 2001 From: Alex Aladov Date: Tue, 27 Nov 2018 09:54:07 +0300 Subject: [PATCH 1/2] Fix custom objects in yaml --- cf-deploy-kubernetes.sh | 29 ++++++++++++++++++++++++----- 1 file changed, 24 insertions(+), 5 deletions(-) diff --git a/cf-deploy-kubernetes.sh b/cf-deploy-kubernetes.sh index cc34986..b192ee3 100755 --- a/cf-deploy-kubernetes.sh +++ b/cf-deploy-kubernetes.sh @@ -1,5 +1,27 @@ #!/bin/bash +parse_yaml() { + local prefix=$2 + local s='[[:space:]]*' w='[a-zA-Z0-9_]*' fs=$(echo @|tr @ '\034') + sed -ne "s|^\($s\)\($w\)$s:$s\"\(.*\)\"$s\$|\1$fs\2$fs\3|p" \ + -e "s|^\($s\)\($w\)$s:$s\(.*\)$s\$|\1$fs\2$fs\3|p" $1 | + awk -F$fs '{ + indent = length($1)/2; + vname[indent] = $2; + for (i in vname) {if (i > indent) {delete vname[i]}} + if (length($3) > 0) { + vn=""; for (i=0; i1)? $NF : "";printf " "; i=1}' +} + + fatal() { echo "ERROR: $1" exit 1 @@ -52,11 +74,7 @@ $(dirname $0)/template.sh "$deployment_file" > "$DEPLOYMENT_FILE" || fatal "Fail echo "---> Kubernetes objects to deploy in $deployment_file :" KUBECTL_OBJECTS=/tmp/deployment.objects -kubectl convert -f "$DEPLOYMENT_FILE" --local=true --no-headers=true -o=custom-columns="KIND:{.kind},NAME:{.metadata.name}" > >(tee $KUBECTL_OBJECTS) 2>${KUBECTL_OBJECTS}.errors -if [ $? != 0 ]; then - cat ${KUBECTL_OBJECTS}.errors - fatal "Failed to parse $deployment_file " -fi +objects $DEPLOYMENT_FILE | tee $KUBECTL_OBJECTS DEPLOYMENT_NAME=$(awk '/^Deployment /{a=$2}END{print a}' $KUBECTL_OBJECTS) @@ -68,3 +86,4 @@ if [ -n "$DEPLOYMENT_NAME" ]; then echo "---> Waiting for a successful deployment/${DEPLOYMENT_NAME} status to namespace ${KUBERNETES_NAMESPACE} ..." timeout -s SIGTERM -t $KUBERNETES_DEPLOYMENT_TIMEOUT kubectl --context "${KUBECONTEXT}" --namespace "${KUBERNETES_NAMESPACE}" rollout status deployment/"${DEPLOYMENT_NAME}" || fatal "Deployment Failed" fi + From e7cb1547fc08f3e69d86b6aa54e5b775a49f00e3 Mon Sep 17 00:00:00 2001 From: Alex Aladov Date: Tue, 27 Nov 2018 18:28:05 +0300 Subject: [PATCH 2/2] added as alternative pasing method --- cf-deploy-kubernetes.sh | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/cf-deploy-kubernetes.sh b/cf-deploy-kubernetes.sh index b192ee3..47e93cf 100755 --- a/cf-deploy-kubernetes.sh +++ b/cf-deploy-kubernetes.sh @@ -74,7 +74,14 @@ $(dirname $0)/template.sh "$deployment_file" > "$DEPLOYMENT_FILE" || fatal "Fail echo "---> Kubernetes objects to deploy in $deployment_file :" KUBECTL_OBJECTS=/tmp/deployment.objects -objects $DEPLOYMENT_FILE | tee $KUBECTL_OBJECTS +kubectl convert -f "$DEPLOYMENT_FILE" --local=true --no-headers=true -o=custom-columns="KIND:{.kind},NAME:{.metadata.name}" > >(tee $KUBECTL_OBJECTS) 2>${KUBECTL_OBJECTS}.errors +if [ $? != 0 ]; then + cat ${KUBECTL_OBJECTS}.errors + echo "Failed to parse $deployment_file with kubectl... " + echo "Using alternative parsing method... " + truncate -s 0 $KUBECTL_OBJECTS + objects $DEPLOYMENT_FILE | tee $KUBECTL_OBJECTS +fi DEPLOYMENT_NAME=$(awk '/^Deployment /{a=$2}END{print a}' $KUBECTL_OBJECTS)