From d9bb71b1fe14a4b6584f26ac1411e1914067955f Mon Sep 17 00:00:00 2001 From: Maciej Borsz Date: Mon, 18 Dec 2017 13:34:33 +0100 Subject: [PATCH] Add --retry-connrefused to all curl invocations. By default 'Connection refused' error is not a transient error and is not retried. --- cluster/gce/container-linux/configure-helper.sh | 6 +++--- cluster/gce/container-linux/configure.sh | 4 ++-- cluster/gce/container-linux/master.yaml | 2 +- cluster/gce/container-linux/node.yaml | 2 +- cluster/gce/gci/configure-helper.sh | 2 +- cluster/gce/gci/configure.sh | 6 +++--- cluster/gce/gci/master.yaml | 2 +- cluster/gce/gci/node.yaml | 2 +- 8 files changed, 13 insertions(+), 13 deletions(-) diff --git a/cluster/gce/container-linux/configure-helper.sh b/cluster/gce/container-linux/configure-helper.sh index 439e12fca8f..d438c71d924 100755 --- a/cluster/gce/container-linux/configure-helper.sh +++ b/cluster/gce/container-linux/configure-helper.sh @@ -975,7 +975,7 @@ function start-kube-apiserver { params+=" --feature-gates=${FEATURE_GATES}" fi if [[ -n "${PROJECT_ID:-}" && -n "${TOKEN_URL:-}" && -n "${TOKEN_BODY:-}" && -n "${NODE_NETWORK:-}" ]]; then - local -r vm_external_ip=$(curl --retry 5 --retry-delay 3 --fail --silent -H 'Metadata-Flavor: Google' "http://metadata/computeMetadata/v1/instance/network-interfaces/0/access-configs/0/external-ip") + local -r vm_external_ip=$(curl --retry 5 --retry-delay 3 --retry-connrefused --fail --silent -H 'Metadata-Flavor: Google' "http://metadata/computeMetadata/v1/instance/network-interfaces/0/access-configs/0/external-ip") if [[ -n "${PROXY_SSH_USER:-}" ]]; then params+=" --advertise-address=${vm_external_ip}" params+=" --ssh-user=${PROXY_SSH_USER}" @@ -1469,7 +1469,7 @@ function setup-rkt { mkdir -p /etc/rkt "${KUBE_HOME}/download/" local rkt_tar="${KUBE_HOME}/download/rkt.tar.gz" local rkt_tmpdir=$(mktemp -d "${KUBE_HOME}/rkt_download.XXXXX") - curl --retry 5 --retry-delay 3 --fail --silent --show-error \ + curl --retry 5 --retry-delay 3 --retry-connrefused --fail --silent --show-error \ --location --create-dirs --output "${rkt_tar}" \ https://github.com/coreos/rkt/releases/download/v${RKT_VERSION}/rkt-v${RKT_VERSION}.tar.gz tar --strip-components=1 -xf "${rkt_tar}" -C "${rkt_tmpdir}" --overwrite @@ -1508,7 +1508,7 @@ function install-docker2aci { local tar_path="${KUBE_HOME}/download/docker2aci.tar.gz" local tmp_path="${KUBE_HOME}/docker2aci" mkdir -p "${KUBE_HOME}/download/" "${tmp_path}" - curl --retry 5 --retry-delay 3 --fail --silent --show-error \ + curl --retry 5 --retry-delay 3 --retry-connrefused --fail --silent --show-error \ --location --create-dirs --output "${tar_path}" \ https://github.com/appc/docker2aci/releases/download/v0.14.0/docker2aci-v0.14.0.tar.gz tar --strip-components=1 -xf "${tar_path}" -C "${tmp_path}" --overwrite diff --git a/cluster/gce/container-linux/configure.sh b/cluster/gce/container-linux/configure.sh index 6ac60cd81d2..035c88dba31 100755 --- a/cluster/gce/container-linux/configure.sh +++ b/cluster/gce/container-linux/configure.sh @@ -21,7 +21,7 @@ set -o pipefail function download-kube-env { # Fetch kube-env from GCE metadata server. local -r tmp_kube_env="/tmp/kube-env.yaml" - curl --fail --retry 5 --retry-delay 3 --silent --show-error \ + curl --fail --retry 5 --retry-delay 3 --retry-connrefused --silent --show-error \ -H "X-Google-Metadata-Request: True" \ -o "${tmp_kube_env}" \ http://metadata.google.internal/computeMetadata/v1/instance/attributes/kube-env @@ -55,7 +55,7 @@ function download-or-bust { for url in "${urls[@]}"; do local file="${url##*/}" rm -f "${file}" - if ! curl -f --ipv4 -Lo "${file}" --connect-timeout 20 --max-time 300 --retry 6 --retry-delay 10 "${url}"; then + if ! curl -f --ipv4 -Lo "${file}" --connect-timeout 20 --max-time 300 --retry 6 --retry-delay 10 --retry-connrefused "${url}"; then echo "== Failed to download ${url}. Retrying. ==" elif [[ -n "${hash}" ]] && ! validate-hash "${file}" "${hash}"; then echo "== Hash validation of ${url} failed. Retrying. ==" diff --git a/cluster/gce/container-linux/master.yaml b/cluster/gce/container-linux/master.yaml index 4dec695c9d7..be4c3c31ccc 100644 --- a/cluster/gce/container-linux/master.yaml +++ b/cluster/gce/container-linux/master.yaml @@ -17,7 +17,7 @@ coreos: Type=oneshot RemainAfterExit=yes ExecStartPre=/bin/mkdir -p /opt/kubernetes/bin - ExecStartPre=/usr/bin/curl --fail --retry 5 --retry-delay 3 --silent --show-error -H "X-Google-Metadata-Request: True" -o /opt/kubernetes/bin/configure.sh http://metadata.google.internal/computeMetadata/v1/instance/attributes/configure-sh + ExecStartPre=/usr/bin/curl --fail --retry 5 --retry-delay 3 --retry-connrefused --silent --show-error -H "X-Google-Metadata-Request: True" -o /opt/kubernetes/bin/configure.sh http://metadata.google.internal/computeMetadata/v1/instance/attributes/configure-sh ExecStartPre=/bin/chmod 544 /opt/kubernetes/bin/configure.sh ExecStart=/opt/kubernetes/bin/configure.sh diff --git a/cluster/gce/container-linux/node.yaml b/cluster/gce/container-linux/node.yaml index b203c4fded3..24aaa7b43c1 100644 --- a/cluster/gce/container-linux/node.yaml +++ b/cluster/gce/container-linux/node.yaml @@ -17,7 +17,7 @@ coreos: Type=oneshot RemainAfterExit=yes ExecStartPre=/bin/mkdir -p /opt/kubernetes/bin - ExecStartPre=/usr/bin/curl --fail --retry 5 --retry-delay 3 --silent --show-error -H "X-Google-Metadata-Request: True" -o /opt/kubernetes/bin/configure.sh http://metadata.google.internal/computeMetadata/v1/instance/attributes/configure-sh + ExecStartPre=/usr/bin/curl --fail --retry 5 --retry-delay 3 --retry-connrefused --silent --show-error -H "X-Google-Metadata-Request: True" -o /opt/kubernetes/bin/configure.sh http://metadata.google.internal/computeMetadata/v1/instance/attributes/configure-sh ExecStartPre=/bin/chmod 544 /opt/kubernetes/bin/configure.sh ExecStart=/opt/kubernetes/bin/configure.sh diff --git a/cluster/gce/gci/configure-helper.sh b/cluster/gce/gci/configure-helper.sh index 4b97d9ee8fd..9307b382ea7 100644 --- a/cluster/gce/gci/configure-helper.sh +++ b/cluster/gce/gci/configure-helper.sh @@ -1655,7 +1655,7 @@ function start-kube-apiserver { params+=" --feature-gates=${FEATURE_GATES}" fi if [[ -n "${PROJECT_ID:-}" && -n "${TOKEN_URL:-}" && -n "${TOKEN_BODY:-}" && -n "${NODE_NETWORK:-}" ]]; then - local -r vm_external_ip=$(curl --retry 5 --retry-delay 3 --fail --silent -H 'Metadata-Flavor: Google' "http://metadata/computeMetadata/v1/instance/network-interfaces/0/access-configs/0/external-ip") + local -r vm_external_ip=$(curl --retry 5 --retry-delay 3 --retry-connrefused --fail --silent -H 'Metadata-Flavor: Google' "http://metadata/computeMetadata/v1/instance/network-interfaces/0/access-configs/0/external-ip") if [[ -n "${PROXY_SSH_USER:-}" ]]; then params+=" --advertise-address=${vm_external_ip}" params+=" --ssh-user=${PROXY_SSH_USER}" diff --git a/cluster/gce/gci/configure.sh b/cluster/gce/gci/configure.sh index 40060f613c4..aa2920fb017 100644 --- a/cluster/gce/gci/configure.sh +++ b/cluster/gce/gci/configure.sh @@ -50,7 +50,7 @@ function download-kube-env { # Fetch kube-env from GCE metadata server. (umask 700; local -r tmp_kube_env="/tmp/kube-env.yaml" - curl --fail --retry 5 --retry-delay 3 --silent --show-error \ + curl --fail --retry 5 --retry-delay 3 --retry-connrefused --silent --show-error \ -H "X-Google-Metadata-Request: True" \ -o "${tmp_kube_env}" \ http://metadata.google.internal/computeMetadata/v1/instance/attributes/kube-env @@ -68,7 +68,7 @@ function download-kube-master-certs { # Fetch kube-env from GCE metadata server. (umask 700; local -r tmp_kube_master_certs="/tmp/kube-master-certs.yaml" - curl --fail --retry 5 --retry-delay 3 --silent --show-error \ + curl --fail --retry 5 --retry-delay 3 --retry-connrefused --silent --show-error \ -H "X-Google-Metadata-Request: True" \ -o "${tmp_kube_master_certs}" \ http://metadata.google.internal/computeMetadata/v1/instance/attributes/kube-master-certs @@ -106,7 +106,7 @@ function download-or-bust { for url in "${urls[@]}"; do local file="${url##*/}" rm -f "${file}" - if ! curl -f --ipv4 -Lo "${file}" --connect-timeout 20 --max-time 300 --retry 6 --retry-delay 10 "${url}"; then + if ! curl -f --ipv4 -Lo "${file}" --connect-timeout 20 --max-time 300 --retry 6 --retry-delay 10 --retry-connrefused "${url}"; then echo "== Failed to download ${url}. Retrying. ==" elif [[ -n "${hash}" ]] && ! validate-hash "${file}" "${hash}"; then echo "== Hash validation of ${url} failed. Retrying. ==" diff --git a/cluster/gce/gci/master.yaml b/cluster/gce/gci/master.yaml index 7854ab4fa93..68fdc5a901a 100644 --- a/cluster/gce/gci/master.yaml +++ b/cluster/gce/gci/master.yaml @@ -15,7 +15,7 @@ write_files: ExecStartPre=/bin/mkdir -p /home/kubernetes/bin ExecStartPre=/bin/mount --bind /home/kubernetes/bin /home/kubernetes/bin ExecStartPre=/bin/mount -o remount,exec /home/kubernetes/bin - ExecStartPre=/usr/bin/curl --fail --retry 5 --retry-delay 3 --silent --show-error -H "X-Google-Metadata-Request: True" -o /home/kubernetes/bin/configure.sh http://metadata.google.internal/computeMetadata/v1/instance/attributes/configure-sh + ExecStartPre=/usr/bin/curl --fail --retry 5 --retry-delay 3 --retry-connrefused --silent --show-error -H "X-Google-Metadata-Request: True" -o /home/kubernetes/bin/configure.sh http://metadata.google.internal/computeMetadata/v1/instance/attributes/configure-sh ExecStartPre=/bin/chmod 544 /home/kubernetes/bin/configure.sh ExecStart=/home/kubernetes/bin/configure.sh diff --git a/cluster/gce/gci/node.yaml b/cluster/gce/gci/node.yaml index 52971e2a076..c716af56c49 100644 --- a/cluster/gce/gci/node.yaml +++ b/cluster/gce/gci/node.yaml @@ -15,7 +15,7 @@ write_files: ExecStartPre=/bin/mkdir -p /home/kubernetes/bin ExecStartPre=/bin/mount --bind /home/kubernetes/bin /home/kubernetes/bin ExecStartPre=/bin/mount -o remount,exec /home/kubernetes/bin - ExecStartPre=/usr/bin/curl --fail --retry 5 --retry-delay 3 --silent --show-error -H "X-Google-Metadata-Request: True" -o /home/kubernetes/bin/configure.sh http://metadata.google.internal/computeMetadata/v1/instance/attributes/configure-sh + ExecStartPre=/usr/bin/curl --fail --retry 5 --retry-delay 3 --retry-connrefused --silent --show-error -H "X-Google-Metadata-Request: True" -o /home/kubernetes/bin/configure.sh http://metadata.google.internal/computeMetadata/v1/instance/attributes/configure-sh ExecStartPre=/bin/chmod 544 /home/kubernetes/bin/configure.sh ExecStart=/home/kubernetes/bin/configure.sh