Code change:
I tried to spin up GCE kube environment using kube-up and got the following error: The script would then hang on a subsequent command. The verify-prereqs for kube-up should require yaml support for python and fail early. To rectify, I had to do the following:
Thanks for the report Derek!
Yeah, this broke our Jenkins a while ago, and I thought I fixed it, but didn't. The real fix is in

Related discussion:
text: local file=$2 rm -f ${file} <del> add-to-env ${file} ENV_TIMESTAMP "$(date -uIs)" # Just to track it add-to-env ${file} KUBERNETES_MASTER "${master}" add-to-env ${file} INSTANCE_PREFIX "${INSTANCE_PREFIX}" add-to-env ${file} NODE_INSTANCE_PREFIX "${NODE_INSTANCE_PREFIX}" add-to-env ${file} SERVER_BINARY_TAR_URL "${SERVER_BINARY_TAR_URL}" add-to-env ${file} SALT_TAR_URL "${SALT_TAR_URL}" add-to-env ${file} PORTAL_NET "${PORTAL_NET}" add-to-env ${file} ENABLE_CLUSTER_MONITORING "${ENABLE_CLUSTER_MONITORING:-false}" add-to-env ${file} ENABLE_NODE_MONITORING "${ENABLE_NODE_MONITORING:-false}" add-to-env ${file} ENABLE_CLUSTER_LOGGING "${ENABLE_CLUSTER_LOGGING:-false}" add-to-env ${file} ENABLE_NODE_LOGGING "${ENABLE_NODE_LOGGING:-false}" add-to-env ${file} LOGGING_DESTINATION "${LOGGING_DESTINATION:-}" add-to-env ${file} ELASTICSEARCH_LOGGING_REPLICAS "${ELASTICSEARCH_LOGGING_REPLICAS:-}" add-to-env ${file} ENABLE_CLUSTER_DNS "${ENABLE_CLUSTER_DNS:-false}" add-to-env ${file} DNS_REPLICAS "${DNS_REPLICAS:-}" add-to-env ${file} DNS_SERVER_IP "${DNS_SERVER_IP:-}" add-to-env ${file} DNS_DOMAIN "${DNS_DOMAIN:-}" add-to-env ${file} MASTER_HTPASSWD "${MASTER_HTPASSWD}" </del> <ins> cat >$file <<EOF ENV_TIMESTAMP: $(yaml-quote $(date -uIs)) KUBERNETES_MASTER: $(yaml-quote ${master}) INSTANCE_PREFIX: $(yaml-quote ${INSTANCE_PREFIX}) NODE_INSTANCE_PREFIX: $(yaml-quote ${NODE_INSTANCE_PREFIX}) SERVER_BINARY_TAR_URL: $(yaml-quote ${SERVER_BINARY_TAR_URL}) SALT_TAR_URL: $(yaml-quote ${SALT_TAR_URL}) PORTAL_NET: $(yaml-quote ${PORTAL_NET}) ENABLE_CLUSTER_MONITORING: $(yaml-quote ${ENABLE_CLUSTER_MONITORING:-false}) ENABLE_NODE_MONITORING: $(yaml-quote ${ENABLE_NODE_MONITORING:-false}) ENABLE_CLUSTER_LOGGING: $(yaml-quote ${ENABLE_CLUSTER_LOGGING:-false}) ENABLE_NODE_LOGGING: $(yaml-quote ${ENABLE_NODE_LOGGING:-false}) LOGGING_DESTINATION: $(yaml-quote ${LOGGING_DESTINATION:-}) ELASTICSEARCH_LOGGING_REPLICAS: $(yaml-quote ${ELASTICSEARCH_LOGGING_REPLICAS:-}) ENABLE_CLUSTER_DNS: $(yaml-quote ${ENABLE_CLUSTER_DNS:-false}) DNS_REPLICAS: $(yaml-quote ${DNS_REPLICAS:-}) DNS_SERVER_IP: $(yaml-quote ${DNS_SERVER_IP:-}) DNS_DOMAIN: $(yaml-quote ${DNS_DOMAIN:-}) MASTER_HTPASSWD: $(yaml-quote ${MASTER_HTPASSWD}) EOF </ins> if [[ "${master}" != "true" ]]; then <del> add-to-env ${file} KUBERNETES_MASTER_NAME "${MASTER_NAME}" add-to-env ${file} ZONE "${ZONE}" add-to-env ${file} EXTRA_DOCKER_OPTS "${EXTRA_DOCKER_OPTS}" add-to-env ${file} ENABLE_DOCKER_REGISTRY_CACHE "${ENABLE_DOCKER_REGISTRY_CACHE:-false}" </del> <ins> cat >>$file <<EOF KUBERNETES_MASTER_NAME: $(yaml-quote ${MASTER_NAME}) ZONE: $(yaml-quote ${ZONE}) EXTRA_DOCKER_OPTS: $(yaml-quote ${EXTRA_DOCKER_OPTS}) ENABLE_DOCKER_REGISTRY_CACHE: $(yaml-quote ${ENABLE_DOCKER_REGISTRY_CACHE:-false}) EOF </ins> fi }