promenade/tools/g2/lib/promenade.sh

69 lines
2.0 KiB
Bash

promenade_teardown_node() {
TARGET=${1}
VIA=${2}
ssh_cmd "${TARGET}" /usr/local/bin/promenade-teardown
kubectl_cmd "${VIA}" delete node "${TARGET}"
}
promenade_render_curl_url() {
NAME=${1}
USE_DECKHAND=${2}
DECKHAND_REVISION=${3}
shift 3
LABELS=(${@})
LABEL_PARAMS=
for label in "${LABELS[@]}"; do
LABEL_PARAMS+="&labels.dynamic=${label}"
done
BASE_URL="${PROMENADE_BASE_URL}/api/v1.0/join-scripts"
if [[ ${USE_DECKHAND} == 1 ]]; then
DESIGN_REF="design_ref=deckhand%2Bhttp://deckhand-int.ucp.svc.cluster.local:9000/api/v1.0/revisions/${DECKHAND_REVISION}/rendered-documents"
else
DESIGN_REF="design_ref=${NGINX_URL}/promenade.yaml"
fi
HOST_PARAMS="hostname=${NAME}&ip=$(config_vm_ip "${NAME}")"
echo "${BASE_URL}?${DESIGN_REF}&${HOST_PARAMS}&leave_kubectl=true${LABEL_PARAMS}"
}
promenade_render_validate_url() {
echo "${PROMENADE_BASE_URL}/api/v1.0/validatedesign"
}
promenade_render_validate_body() {
USE_DECKHAND=${1}
DECKHAND_REVISION=${2}
if [[ ${USE_DECKHAND} == 1 ]]; then
JSON="{\"rel\":\"design\",\"href\":\"deckhand+http://deckhand-int.ucp.svc.cluster.local:9000/api/v1.0/revisions/${DECKHAND_REVISION}/rendered-documents\",\"type\":\"application/x-yaml\"}"
else
JSON="{\"rel\":\"design\",\"href\":\"${NGINX_URL}/promenade.yaml\",\"type\":\"application/x-yaml\"}"
fi
echo "${JSON}"
}
promenade_health_check() {
VIA=${1}
log "Checking Promenade API health"
MAX_HEALTH_ATTEMPTS=6
for attempt in $(seq ${MAX_HEALTH_ATTEMPTS}); do
if ssh_cmd "${VIA}" curl -v --fail "${PROMENADE_BASE_URL}/api/v1.0/health"; then
log "Promenade API healthy"
break
elif [[ $attempt == "${MAX_HEALTH_ATTEMPTS}" ]]; then
log "Promenade health check failed, max retries (${MAX_HEALTH_ATTEMPTS}) exceeded."
exit 1
fi
sleep 10
done
}
promenade_put_labels_url() {
NODE_NAME=${1}
echo "${PROMENADE_BASE_URL}/api/v1.0/node-labels/${NODE_NAME}"
}