From e78be1fc350bd7e2b65e339a43a6f681454e8b4f Mon Sep 17 00:00:00 2001 From: Mike Bryant Date: Thu, 27 Apr 2017 11:43:07 +0100 Subject: [PATCH 1/2] fix(kube-peers): Add support for ExternalIP addresses Why: * In some environments Nodes have an ExternalIP but no InternalIP This change addresses the need by: * Falling back to ExternalIP addresses if there isn't an InternalIP for a node --- prog/kube-peers/main.go | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/prog/kube-peers/main.go b/prog/kube-peers/main.go index 977a4872..8320e626 100644 --- a/prog/kube-peers/main.go +++ b/prog/kube-peers/main.go @@ -35,11 +35,21 @@ func getKubePeers() ([]string, error) { } addresses := make([]string, 0, len(nodeList.Items)) for _, peer := range nodeList.Items { + var internalIP, externalIP string for _, addr := range peer.Status.Addresses { if addr.Type == "InternalIP" { - addresses = append(addresses, addr.Address) + internalIP = addr.Address + } else if addr.Type == "ExternalIP" { + externalIP = addr.Address } } + + // Fallback for cases where a Node has an ExternalIP but no InternalIP + if internalIP != "" { + addresses = append(addresses, internalIP) + } else if externalIP != "" { + addresses = append(addresses, externalIP) + } } return addresses, nil } From 28a1578d206c96a6cc38ff8d86fb7f111dec3f20 Mon Sep 17 00:00:00 2001 From: Marc CARRE Date: Wed, 26 Apr 2017 14:14:55 +0100 Subject: [PATCH 2/2] Please ./tools/lint -nocomment -notestpackage. Fixes: - `test/run-integration-tests.sh:160:75: arithmetic expressions must consist of names and numbers` - `test/run-integration-tests.sh:265:56: arithmetic expressions must consist of names and numbers` - `test/run-integration-tests.sh:295:61: arithmetic expressions must consist of names and numbers` - `test/run-integration-tests.sh:309:49: arithmetic expressions must consist of names and numbers` - `test/run-integration-tests.sh:316:41: arithmetic expressions must consist of names and numbers` - `test/run-integration-tests.sh: run shfmt -i 4 -w test/run-integration-tests.sh` See also: https://circleci.com/gh/weaveworks/weave/8685 --- test/run-integration-tests.sh | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/test/run-integration-tests.sh b/test/run-integration-tests.sh index a167e464..f2d74b7e 100755 --- a/test/run-integration-tests.sh +++ b/test/run-integration-tests.sh @@ -157,7 +157,8 @@ function create_image() { terraform destroy -force "$DIR/../tools/provisioning/gcp" rm terraform.tfstate* echo - greenly echo "> Created GCP image $IMAGE_NAME in $(date -u -d @$(($(date +%s) - begin_img)) +"%T")." + local end_img=$(date +%s) + greenly echo "> Created GCP image $IMAGE_NAME in $(date -u -d @$((end_img - begin_img)) +"%T")." else wait_for_image fi @@ -261,7 +262,8 @@ function provision() { esac [ "$1" == "on" ] && set_hosts echo - greenly echo "> Provisioning took $(date -u -d @$(($(date +%s) - begin_prov)) +"%T")." + local end_prov=$(date +%s) + greenly echo "> Provisioning took $(date -u -d @$((end_prov - begin_prov)) +"%T")." } function configure_with_ansible() { @@ -290,7 +292,8 @@ function configure() { done echo - greenly echo "> Configuration took $(date -u -d @$(($(date +%s) - begin_conf)) +"%T")." + local end_conf=$(date +%s) + greenly echo "> Configuration took $(date -u -d @$((end_conf - begin_conf)) +"%T")." fi } @@ -303,13 +306,16 @@ function run_tests() { "$DIR/run_all.sh" "$@" local status=$? echo - greenly echo "> Tests took $(date -u -d @$(($(date +%s) - begin_tests)) +"%T")." + local end_tests=$(date +%s) + greenly echo "> Tests took $(date -u -d @$((end_tests - begin_tests)) +"%T")." return $status } +# shellcheck disable=SC2155 function end() { echo - echo "> Build took $(date -u -d @$(($(date +%s) - begin)) +"%T")." + local end_time=$(date +%s) + echo "> Build took $(date -u -d @$((end_time - begin)) +"%T")." } function echo_export_hosts() {