Change:
Example:
Is kubelet healthz coupled with the docker daemon being accessible? ?
That particular error is coming from cAdvisor and should not be causing the test to block. The Kubelet does wait up to 5min for Docker to come up though. Do we use a real Docker in these tests?
Shippable is running on different os dist? ContainerOsVersion:Ubuntu precise?
Yes today kubelet healthz coupled with docker daemon. We even periodically healthcheck docker and kubelet, and restart them even there are issues.
Another example:
bumping priority because we have to get these flaky tests fixed.
This has been marked P0 for 2 months but hasn't had any updates. Is this still happening on Shippable? If so, can we just increase a timeout in the test?
This is ridiculous, I'll fix it myself.

Discussion:
kube::util::wait_for_url() { local url=$1 local prefix=${2:-} <del> local wait=${3:-0.2} local times=${4:-10} </del> <ins> local wait=${3:-0.5} local times=${4:-25} </ins> which curl >/dev/null || { kube::log::usage "curl must be installed"

} local i for i in $(seq 1 $times); do local out if out=$(curl -fs $url 2>/dev/null); then <del> kube::log::status ${prefix}${out} </del> <ins> kube::log::status "On try ${i}, ${prefix}: ${out}" </ins> return 0 fi <del> sleep $wait </del> <ins> sleep ${wait} </ins> done <del> kube::log::error "Timed out waiting for ${url}" </del> <ins> kube::log::error "Timed out waiting for ${prefix} to answer at ${url}; tried ${times} waiting ${wait} between each" </ins> return 1 }

--port="$KUBELET_PORT"  --healthz_port="${KUBELET_HEALTHZ_PORT}" 1>&2 & KUBELET_PID=$! <del> kube::util::wait_for_url "http://127.0.0.1:${KUBELET_HEALTHZ_PORT}/healthz" "kubelet: " 0.2 25 </del> <ins> kube::util::wait_for_url "http://127.0.0.1:${KUBELET_HEALTHZ_PORT}/healthz" "kubelet(masterless)" </ins> kill ${KUBELET_PID} 1>&2 2>/dev/null kube::log::status "Starting kubelet in masterful mode"

--healthz_port="${KUBELET_HEALTHZ_PORT}" 1>&2 & KUBELET_PID=$! <del> kube::util::wait_for_url "http://127.0.0.1:${KUBELET_HEALTHZ_PORT}/healthz" "kubelet: " 0.2 25 </del> <ins> kube::util::wait_for_url "http://127.0.0.1:${KUBELET_HEALTHZ_PORT}/healthz" "kubelet" </ins> # Start kube-apiserver kube::log::status "Starting kube-apiserver"

--service-cluster-ip-range="10.0.0.0/24" 1>&2 & APISERVER_PID=$! <del> kube::util::wait_for_url "http://127.0.0.1:${API_PORT}/healthz" "apiserver: " </del> <ins> kube::util::wait_for_url "http://127.0.0.1:${API_PORT}/healthz" "apiserver" </ins> # Start controller manager <del> kube::log::status "Starting CONTROLLER-MANAGER" </del> <ins> kube::log::status "Starting controller-manager" </ins> "${KUBE_OUTPUT_HOSTBIN}/kube-controller-manager"  --machines="127.0.0.1"  <ins> --port="${CTLRMGR_PORT}"  </ins> --master="127.0.0.1:${API_PORT}" 1>&2 & CTLRMGR_PID=$! <del> kube::util::wait_for_url "http://127.0.0.1:${CTLRMGR_PORT}/healthz" "controller-manager: " kube::util::wait_for_url "http://127.0.0.1:${API_PORT}/api/v1beta3/nodes/127.0.0.1" "apiserver(nodes): " 0.2 25 </del> <ins> kube::util::wait_for_url "http://127.0.0.1:${CTLRMGR_PORT}/healthz" "controller-manager" kube::util::wait_for_url "http://127.0.0.1:${API_PORT}/api/v1beta3/nodes/127.0.0.1" "apiserver(nodes)" </ins> # Expose kubectl directly for readability PATH="${KUBE_OUTPUT_HOSTBIN}":$PATH