summaryrefslogtreecommitdiff
blob: 1a8935b31c9cbed92d85a26d595a891eaf0b58bc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
From cce3f6ffa796ea416021b0d62567a3f52b979567 Mon Sep 17 00:00:00 2001
From: Jordan Liggitt <liggitt@google.com>
Date: Wed, 16 Aug 2023 09:33:02 -0400
Subject: [PATCH 2/2] Make gomaxprocs install optional, limit to tests

---
 hack/lib/golang.sh               | 25 +++++++++++++++----------
 hack/make-rules/test-e2e-node.sh |  1 +
 hack/make-rules/test.sh          |  1 +
 3 files changed, 17 insertions(+), 10 deletions(-)

diff --git a/hack/lib/golang.sh b/hack/lib/golang.sh
index 66772f08a81..983ff368e25 100755
--- a/hack/lib/golang.sh
+++ b/hack/lib/golang.sh
@@ -556,20 +556,25 @@ kube::golang::setup_env() {
 
   # This seems to matter to some tools
   export GO15VENDOREXPERIMENT=1
+}
 
+kube::golang::setup_gomaxprocs() {
   # GOMAXPROCS by default does not reflect the number of cpu(s) available
   # when running in a container, please see https://github.com/golang/go/issues/33803
-  if ! command -v ncpu >/dev/null 2>&1; then
-    # shellcheck disable=SC2164
-    pushd "${KUBE_ROOT}/hack/tools" >/dev/null
-    GO111MODULE=on go install ./ncpu
-    # shellcheck disable=SC2164
-    popd >/dev/null
+  if [[ -z "${GOMAXPROCS:-}" ]]; then
+    if ! command -v ncpu >/dev/null 2>&1; then
+      # shellcheck disable=SC2164
+      pushd "${KUBE_ROOT}/hack/tools" >/dev/null
+      GO111MODULE=on go install ./ncpu || echo "Will not automatically set GOMAXPROCS"
+      # shellcheck disable=SC2164
+      popd >/dev/null
+    fi
+    if command -v ncpu >/dev/null 2>&1; then
+      GOMAXPROCS=$(ncpu)
+      export GOMAXPROCS
+      kube::log::status "Set GOMAXPROCS automatically to ${GOMAXPROCS}"
+    fi
   fi
-
-  GOMAXPROCS=${GOMAXPROCS:-$(ncpu)}
-  export GOMAXPROCS
-  kube::log::status "Setting GOMAXPROCS: ${GOMAXPROCS}"
 }
 
 # This will take binaries from $GOPATH/bin and copy them to the appropriate
diff --git a/hack/make-rules/test-e2e-node.sh b/hack/make-rules/test-e2e-node.sh
index 43dde0c740f..49e3e04ac71 100755
--- a/hack/make-rules/test-e2e-node.sh
+++ b/hack/make-rules/test-e2e-node.sh
@@ -18,6 +18,7 @@ KUBE_ROOT=$(dirname "${BASH_SOURCE[0]}")/../..
 source "${KUBE_ROOT}/hack/lib/init.sh"
 
 kube::golang::setup_env
+kube::golang::setup_gomaxprocs
 
 # start the cache mutation detector by default so that cache mutators will be found
 KUBE_CACHE_MUTATION_DETECTOR="${KUBE_CACHE_MUTATION_DETECTOR:-true}"
diff --git a/hack/make-rules/test.sh b/hack/make-rules/test.sh
index e9074678a8f..4aa72730d83 100755
--- a/hack/make-rules/test.sh
+++ b/hack/make-rules/test.sh
@@ -22,6 +22,7 @@ KUBE_ROOT=$(dirname "${BASH_SOURCE[0]}")/../..
 source "${KUBE_ROOT}/hack/lib/init.sh"
 
 kube::golang::setup_env
+kube::golang::setup_gomaxprocs
 
 # start the cache mutation detector by default so that cache mutators will be found
 KUBE_CACHE_MUTATION_DETECTOR="${KUBE_CACHE_MUTATION_DETECTOR:-true}"
-- 
2.41.0