Skip to content
This repository has been archived by the owner on Jan 11, 2023. It is now read-only.

Add a bunch of retry. #2182

Closed
wants to merge 1 commit into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 6 additions & 7 deletions parts/k8s/kubernetesagentcustomdata.yml
Original file line number Diff line number Diff line change
Expand Up @@ -168,21 +168,20 @@ runcmd:
- echo `date`,`hostname`, startruncmd>>/opt/m
- apt-mark hold walinuxagent{{GetKubernetesAgentPreprovisionYaml .}}
- echo `date`,`hostname`, preaptupdate>>/opt/m
- apt-get update
- for i in 1 2 3 4 5; do apt-get update && break; sleep 5; done
- echo `date`,`hostname`, postaptupdate>>/opt/m
- apt-get install -y apt-transport-https ca-certificates nfs-common
- for i in 1 2 3 4 5; do apt-get install -y apt-transport-https ca-certificates nfs-common && break; sleep 5; done
- echo `date`,`hostname`, aptinstall>>/opt/m
- systemctl enable rpcbind
- systemctl enable rpc-statd
- systemctl start rpcbind
- systemctl start rpc-statd
- echo `date`,`hostname`, predockerinstall>>/opt/m
- for i in 1 2 3 4 5; do curl --max-time 60 -fsSL https://aptdocker.azureedge.net/gpg | apt-key add -; [ $? -eq 0 ] && break || sleep 5; done
- for i in 1 2 3 4 5; do curl --retry 5 --retry-delay 10 --retry-max-time 30 --retry-connrefused --max-time 60 -fsSL https://aptdocker.azureedge.net/gpg | apt-key add -; [ $? -eq 0 ] && break || sleep 5; done
- echo "deb {{WrapAsVariable "dockerEngineDownloadRepo"}} ubuntu-xenial main" | sudo tee /etc/apt/sources.list.d/docker.list
- "echo \"Package: docker-engine\nPin: version {{WrapAsVariable "dockerEngineVersion"}}\nPin-Priority: 550\n\" > /etc/apt/preferences.d/docker.pref"
- apt-get update
- apt-get install -y ebtables
- apt-get install -y docker-engine
- for i in 1 2 3 4 5; do apt-get update && break; sleep 5; done
- for i in 1 2 3 4 5; do apt-get install -y ebtables docker-engine && break; sleep 5; done
- echo "ExecStartPost=/sbin/iptables -P FORWARD ACCEPT" >> /etc/systemd/system/docker.service.d/exec_start.conf
- systemctl daemon-reload
- echo `date`,`hostname`, postdockerinstall>>/opt/m
Expand All @@ -196,4 +195,4 @@ runcmd:
- apt-mark unhold walinuxagent
- mkdir -p /opt/azure/containers && touch /opt/azure/containers/runcmd.complete
- echo `date`,`hostname`, endruncmd>>/opt/m
{{end}}
{{end}}
10 changes: 6 additions & 4 deletions parts/k8s/kubernetesmastercustomdata.yml
Original file line number Diff line number Diff line change
Expand Up @@ -295,7 +295,9 @@ MASTER_ARTIFACTS_CONFIG_PLACEHOLDER
ETCD_VER=v{{WrapAsVariable "etcdVersion"}}
DOWNLOAD_URL={{WrapAsVariable "etcdDownloadURLBase"}}
mkdir -p /tmp/etcd-download
curl -L ${DOWNLOAD_URL}/etcd-${ETCD_VER}-linux-amd64.tar.gz -o /tmp/etcd-${ETCD_VER}-linux-amd64.tar.gz
for x in 1 2 3 4 5; do
curl --retry 5 --retry-delay 10 --retry-max-time 30 --retry-connrefused -L ${DOWNLOAD_URL}/etcd-${ETCD_VER}-linux-amd64.tar.gz -o /tmp/etcd-${ETCD_VER}-linux-amd64.tar.gz
done
tar xzvf /tmp/etcd-${ETCD_VER}-linux-amd64.tar.gz -C /usr/bin/ --strip-components=1
useradd -U "etcd"
usermod -p "$(head -c 32 /dev/urandom | base64)" "etcd"
Expand Down Expand Up @@ -328,7 +330,7 @@ MASTER_ARTIFACTS_CONFIG_PLACEHOLDER
sudo /bin/sed -i s/Restart=on-failure/Restart=always/g /lib/systemd/system/etcd-member.service
systemctl daemon-reload
systemctl restart etcd-member
for i in $(seq 1 20); do curl --max-time 60 http://127.0.0.1:2379/v2/machines; [ $? -eq 0 ] && break || sleep 5; done
for i in $(seq 1 20); do curl --retry 5 --retry-delay 10 --retry-max-time 30 --retry-connrefused --max-time 60 http://127.0.0.1:2379/v2/machines; [ $? -eq 0 ] && break || sleep 5; done
mkdir -p /etc/kubernetes/manifests
usermod -aG docker {{WrapAsVariable "username"}}

Expand Down Expand Up @@ -365,10 +367,10 @@ runcmd:
- systemctl restart etcd
- MEMBER="$(sudo etcdctl member list | grep -E {{WrapAsVerbatim "variables('masterVMNames')[copyIndex(variables('masterOffset'))]"}} | cut -d{{WrapAsVariable "singleQuote"}}:{{WrapAsVariable "singleQuote"}} -f 1)"
- sudo etcdctl member update ${MEMBER} {{WrapAsVerbatim "variables('masterEtcdPeerURLs')[copyIndex(variables('masterOffset'))]"}}
- for i in $(seq 1 20); do curl --cacert /etc/kubernetes/certs/ca.crt --cert /etc/kubernetes/certs/etcdclient.crt --key /etc/kubernetes/certs/etcdclient.key --max-time 60 "{{WrapAsVerbatim "variables('masterEtcdClientURLs')[copyIndex(variables('masterOffset'))]"}}"/v2/machines; [ $? -eq 0 ] && break || sleep 5; done
- for i in $(seq 1 20); do curl --retry 5 --retry-delay 10 --retry-max-time 30 --retry-connrefused --cacert /etc/kubernetes/certs/ca.crt --cert /etc/kubernetes/certs/etcdclient.crt --key /etc/kubernetes/certs/etcdclient.key --max-time 60 "{{WrapAsVerbatim "variables('masterEtcdClientURLs')[copyIndex(variables('masterOffset'))]"}}"/v2/machines; [ $? -eq 0 ] && break || sleep 5; done
- retrycmd_if_failure apt-get update
- retrycmd_if_failure apt-get install -y apt-transport-https ca-certificates
- retrycmd_if_failure curl --max-time 60 -fsSL https://aptdocker.azureedge.net/gpg | apt-key add -
- retrycmd_if_failure curl --retry 5 --retry-delay 10 --retry-max-time 30 --retry-connrefused --max-time 60 -fsSL https://aptdocker.azureedge.net/gpg | apt-key add -
- echo "deb {{WrapAsVariable "dockerEngineDownloadRepo"}} ubuntu-xenial main" | sudo tee /etc/apt/sources.list.d/docker.list
- "echo \"Package: docker-engine\nPin: version {{WrapAsVariable "dockerEngineVersion"}}\nPin-Priority: 550\n\" > /etc/apt/preferences.d/docker.pref"
- retrycmd_if_failure apt-get update
Expand Down
6 changes: 3 additions & 3 deletions parts/k8s/kubernetesmastercustomscript.sh
Original file line number Diff line number Diff line change
Expand Up @@ -272,7 +272,7 @@ function configNetworkPolicy() {
function installClearContainersRuntime() {
# Add Clear Containers repository key
echo "Adding Clear Containers repository key..."
curl -sSL "https://download.opensuse.org/repositories/home:clearcontainers:clear-containers-3/xUbuntu_16.04/Release.key" | apt-key add -
curl -sSL --retry 5 --retry-delay 10 --retry-max-time 30 --retry-connrefused "https://download.opensuse.org/repositories/home:clearcontainers:clear-containers-3/xUbuntu_16.04/Release.key" | apt-key add -

# Add Clear Container repository
echo "Adding Clear Containers repository..."
Expand Down Expand Up @@ -321,13 +321,13 @@ function installGo() {
fi

# Get the latest Go version
GO_VERSION=$(curl -sSL "https://golang.org/VERSION?m=text")
GO_VERSION=$(curl -sSL --retry 5 --retry-delay 10 --retry-max-time 30 --retry-connrefused "https://golang.org/VERSION?m=text")

echo "Installing Go version $GO_VERSION..."

# subshell
(
curl -sSL "https://storage.googleapis.com/golang/${GO_VERSION}.linux-amd64.tar.gz" | sudo tar -v -C /usr/local -xz
curl -sSL --retry 5 --retry-delay 10 --retry-max-time 30 --retry-connrefused "https://storage.googleapis.com/golang/${GO_VERSION}.linux-amd64.tar.gz" | sudo tar -v -C /usr/local -xz
)

# Set GOPATH and update PATH
Expand Down
2 changes: 1 addition & 1 deletion pkg/acsengine/engine.go
Original file line number Diff line number Diff line change
Expand Up @@ -1629,7 +1629,7 @@ func makeExtensionScriptCommands(extension *api.Extension, extensionProfiles []*
extensionsParameterReference := fmt.Sprintf("parameters('%sParameters')", extensionProfile.Name)
scriptURL := getExtensionURL(extensionProfile.RootURL, extensionProfile.Name, extensionProfile.Version, extensionProfile.Script, extensionProfile.URLQuery)
scriptFilePath := fmt.Sprintf("/opt/azure/containers/extensions/%s/%s", extensionProfile.Name, extensionProfile.Script)
return fmt.Sprintf("- sudo /usr/bin/curl -o %s --create-dirs \"%s\" \n- sudo /bin/chmod 744 %s \n- sudo %s ',%s,' > /var/log/%s-output.log",
return fmt.Sprintf("- sudo /usr/bin/curl --retry --retry-connrefused --retry-delay 10 -o %s --create-dirs \"%s\" \n- sudo /bin/chmod 744 %s \n- sudo %s ',%s,' > /var/log/%s-output.log",
scriptFilePath, scriptURL, scriptFilePath, scriptFilePath, extensionsParameterReference, extensionProfile.Name)
}

Expand Down