From f4dbd2d89fe67c2362799e8b6509a70a215bab1e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Wojciech=20Tyczy=C5=84ski?= Date: Wed, 8 Jan 2025 10:27:19 +0100 Subject: [PATCH 1/2] Bump golang in perf-test --- benchmark/go.mod | 2 +- clusterloader2/go.mod | 2 +- dns/dnsperfgo/go.mod | 2 +- dns/jsonify/go.mod | 2 +- network/benchmarks/netperf/go.mod | 2 +- network/tools/network-policy-enforcement-latency/go.mod | 2 +- perfdash/go.mod | 2 +- slo-monitor/go.mod | 2 +- util-images/access-tokens/go.mod | 2 +- util-images/network/netperfbenchmark/go.mod | 2 +- util-images/probes/go.mod | 2 +- util-images/request-benchmark/go.mod | 2 +- util-images/watch-list/go.mod | 2 +- 13 files changed, 13 insertions(+), 13 deletions(-) diff --git a/benchmark/go.mod b/benchmark/go.mod index 14dbcb12d9..432884d7e4 100644 --- a/benchmark/go.mod +++ b/benchmark/go.mod @@ -1,6 +1,6 @@ module k8s.io/perf-tests/benchmark -go 1.22.4 +go 1.23.4 require ( github.com/dgryski/go-onlinestats v0.0.0-20170612111826-1c7d19468768 diff --git a/clusterloader2/go.mod b/clusterloader2/go.mod index 23c4894615..e30e8ebed8 100644 --- a/clusterloader2/go.mod +++ b/clusterloader2/go.mod @@ -1,7 +1,7 @@ module k8s.io/perf-tests/clusterloader2 // go 1.15+ is required by k8s 1.20 we use as dependency. -go 1.22.4 +go 1.23.4 replace ( k8s.io/api => k8s.io/api v0.29.7 diff --git a/dns/dnsperfgo/go.mod b/dns/dnsperfgo/go.mod index ce46595a73..c0e1b8d99d 100644 --- a/dns/dnsperfgo/go.mod +++ b/dns/dnsperfgo/go.mod @@ -1,6 +1,6 @@ module k8s.io/perf-tests/dns/dnsperfgo -go 1.22.4 +go 1.23.4 require ( github.com/prometheus/client_golang v1.20.5 diff --git a/dns/jsonify/go.mod b/dns/jsonify/go.mod index 3bd758c485..e9c158e29d 100644 --- a/dns/jsonify/go.mod +++ b/dns/jsonify/go.mod @@ -1,6 +1,6 @@ module k8s.io/perf-tests/dns/jsonify -go 1.22.4 +go 1.23.4 require ( github.com/golang/glog v1.2.3 diff --git a/network/benchmarks/netperf/go.mod b/network/benchmarks/netperf/go.mod index 2b5480a886..68f86338b5 100644 --- a/network/benchmarks/netperf/go.mod +++ b/network/benchmarks/netperf/go.mod @@ -1,6 +1,6 @@ module k8s.io/perf-tests/network -go 1.22.4 +go 1.23.4 require ( k8s.io/api v0.31.3 diff --git a/network/tools/network-policy-enforcement-latency/go.mod b/network/tools/network-policy-enforcement-latency/go.mod index 535c18dd81..9ea458c1b9 100644 --- a/network/tools/network-policy-enforcement-latency/go.mod +++ b/network/tools/network-policy-enforcement-latency/go.mod @@ -1,6 +1,6 @@ module k8s.io/perf-tests/network/tools/network-policy-enforcement-latency -go 1.22.4 +go 1.23.4 require ( github.com/prometheus/client_golang v1.20.5 diff --git a/perfdash/go.mod b/perfdash/go.mod index aabe62e208..61d90bb554 100644 --- a/perfdash/go.mod +++ b/perfdash/go.mod @@ -1,6 +1,6 @@ module k8s.io/perf-tests/perfdash -go 1.22.4 +go 1.23.4 require ( cloud.google.com/go v0.116.0 // indirect diff --git a/slo-monitor/go.mod b/slo-monitor/go.mod index 462d6fbb4f..2eabeac69a 100644 --- a/slo-monitor/go.mod +++ b/slo-monitor/go.mod @@ -1,6 +1,6 @@ module k8s.io/perf-tests/slo-monitor -go 1.22.4 +go 1.23.4 require ( github.com/golang/glog v1.2.3 diff --git a/util-images/access-tokens/go.mod b/util-images/access-tokens/go.mod index 26b0f4203e..2bf6ba857a 100644 --- a/util-images/access-tokens/go.mod +++ b/util-images/access-tokens/go.mod @@ -1,6 +1,6 @@ module k8s.io/perf-tests/access-tokens -go 1.22.4 +go 1.23.4 require ( github.com/spf13/pflag v1.0.5 diff --git a/util-images/network/netperfbenchmark/go.mod b/util-images/network/netperfbenchmark/go.mod index 1a14610eb7..041985a3ff 100644 --- a/util-images/network/netperfbenchmark/go.mod +++ b/util-images/network/netperfbenchmark/go.mod @@ -1,6 +1,6 @@ module k8s.io/perf-tests/util-images/network/netperfbenchmark -go 1.22.4 +go 1.23.4 require ( k8s.io/apimachinery v0.31.3 diff --git a/util-images/probes/go.mod b/util-images/probes/go.mod index 14c2d3d86c..9105180684 100644 --- a/util-images/probes/go.mod +++ b/util-images/probes/go.mod @@ -1,6 +1,6 @@ module k8s.io/perf-tests/util-images/probes -go 1.22.4 +go 1.23.4 require ( github.com/prometheus/client_golang v1.20.5 diff --git a/util-images/request-benchmark/go.mod b/util-images/request-benchmark/go.mod index 7ef0a5b87e..e7a4e2fc5c 100644 --- a/util-images/request-benchmark/go.mod +++ b/util-images/request-benchmark/go.mod @@ -1,6 +1,6 @@ module k8s.io/perf-tests/request-benchmark -go 1.22.4 +go 1.23.4 require k8s.io/client-go v0.31.3 diff --git a/util-images/watch-list/go.mod b/util-images/watch-list/go.mod index 16108711f3..9299d84c0f 100644 --- a/util-images/watch-list/go.mod +++ b/util-images/watch-list/go.mod @@ -1,6 +1,6 @@ module k8s.io/perf-tests/watch-list -go 1.22.4 +go 1.23.4 require ( k8s.io/apimachinery v0.31.3 From 2a332586cc99f8d264c34094d5bd214a58a5f1ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Wojciech=20Tyczy=C5=84ski?= Date: Mon, 13 Jan 2025 14:23:14 +0100 Subject: [PATCH 2/2] Fix go1.23 issues --- benchmark/pkg/util/util.go | 6 +++--- clusterloader2/pkg/config/template_functions.go | 12 ++++++------ clusterloader2/pkg/imagepreload/imagepreload.go | 12 ++++++------ .../common/loadbalancer_nodesync_latency.go | 6 +++--- .../network/network_performance_measurement.go | 2 +- .../measurement/common/wait_for_controlled_pods.go | 2 +- .../common/wait_for_generic_k8s_object.go | 8 ++++---- network/benchmarks/netperf/nptest/nptest.go | 8 ++++---- 8 files changed, 28 insertions(+), 28 deletions(-) diff --git a/benchmark/pkg/util/util.go b/benchmark/pkg/util/util.go index 559f3f08f7..84ea66a78a 100644 --- a/benchmark/pkg/util/util.go +++ b/benchmark/pkg/util/util.go @@ -188,12 +188,12 @@ func GetFlattennedComparisonData(leftJobMetrics, rightJobMetrics []map[string][] return j } -func computeSampleStats(sample []float64, avg, stDev, max *float64) { +func computeSampleStats(sample []float64, avg, stDev, maxVal *float64) { length := len(sample) if length == 0 { *avg = math.NaN() *stDev = math.NaN() - *max = math.NaN() + *maxVal = math.NaN() return } sum := 0.0 @@ -201,7 +201,7 @@ func computeSampleStats(sample []float64, avg, stDev, max *float64) { for i := 0; i < length; i++ { sum += sample[i] squareSum += sample[i] * sample[i] - *max = math.Max(*max, sample[i]) + *maxVal = math.Max(*maxVal, sample[i]) } *avg = sum / float64(length) *stDev = math.Sqrt(squareSum/float64(length) - (*avg * *avg)) diff --git a/clusterloader2/pkg/config/template_functions.go b/clusterloader2/pkg/config/template_functions.go index 21c48d5080..4dc9daf75d 100644 --- a/clusterloader2/pkg/config/template_functions.go +++ b/clusterloader2/pkg/config/template_functions.go @@ -193,22 +193,22 @@ func maxFloat(numbers ...interface{}) float64 { if len(numbers) == 0 { panic("maximum undefined") } - max := toFloat64(numbers[0]) + result := toFloat64(numbers[0]) for _, number := range numbers { - max = math.Max(max, toFloat64(number)) + result = math.Max(result, toFloat64(number)) } - return max + return result } func minFloat(numbers ...interface{}) float64 { if len(numbers) == 0 { panic("minimum undefined") } - min := toFloat64(numbers[0]) + result := toFloat64(numbers[0]) for _, number := range numbers { - min = math.Min(min, toFloat64(number)) + result = math.Min(result, toFloat64(number)) } - return min + return result } func mod(a interface{}, b interface{}) int { diff --git a/clusterloader2/pkg/imagepreload/imagepreload.go b/clusterloader2/pkg/imagepreload/imagepreload.go index 3ea24fe5b3..5ed61d428e 100644 --- a/clusterloader2/pkg/imagepreload/imagepreload.go +++ b/clusterloader2/pkg/imagepreload/imagepreload.go @@ -112,7 +112,7 @@ func (c *controller) PreloadImages() error { return kclient.CoreV1().Nodes().Watch(context.TODO(), options) }, }, - func(old, new interface{}) { c.checkNode(doneNodes, old, new) }) + func(oldObj, newObj interface{}) { c.checkNode(doneNodes, oldObj, newObj) }) if err := informer.StartAndSync(nodeInformer, stopCh, informerTimeout); err != nil { return err } @@ -164,15 +164,15 @@ func (c *controller) PreloadImages() error { return nil } -func (c *controller) checkNode(set map[string]struct{}, old, new interface{}) { - if new != nil { - node := new.(*v1.Node) +func (c *controller) checkNode(set map[string]struct{}, oldObj, newObj interface{}) { + if newObj != nil { + node := newObj.(*v1.Node) preloaded := c.hasPreloadedImages(node) c.markDone(set, node.Name, preloaded) return } - if old != nil { - node := old.(*v1.Node) + if oldObj != nil { + node := oldObj.(*v1.Node) c.markDone(set, node.Name, false) return } diff --git a/clusterloader2/pkg/measurement/common/loadbalancer_nodesync_latency.go b/clusterloader2/pkg/measurement/common/loadbalancer_nodesync_latency.go index dcea97b7da..ab18f031d6 100644 --- a/clusterloader2/pkg/measurement/common/loadbalancer_nodesync_latency.go +++ b/clusterloader2/pkg/measurement/common/loadbalancer_nodesync_latency.go @@ -293,13 +293,13 @@ func isCandidateNode(node v1.Node) bool { return true } -func preparePatchBytes(old, new, refStruct interface{}) ([]byte, error) { - oldBytes, err := json.Marshal(old) +func preparePatchBytes(oldObj, newObj, refStruct interface{}) ([]byte, error) { + oldBytes, err := json.Marshal(oldObj) if err != nil { return nil, fmt.Errorf("failed to marshal old object: %v", err) } - newBytes, err := json.Marshal(new) + newBytes, err := json.Marshal(newObj) if err != nil { return nil, fmt.Errorf("failed to marshal new object: %v", err) } diff --git a/clusterloader2/pkg/measurement/common/network/network_performance_measurement.go b/clusterloader2/pkg/measurement/common/network/network_performance_measurement.go index ff74a5c01e..fe7b75158c 100644 --- a/clusterloader2/pkg/measurement/common/network/network_performance_measurement.go +++ b/clusterloader2/pkg/measurement/common/network/network_performance_measurement.go @@ -285,7 +285,7 @@ func (npm *networkPerformanceMeasurement) gather() (measurement.Summary, error) if err != nil { klog.Infof("Failed to print metrics: %v", err) } - summaryName := fmt.Sprintf(npm.String() + "_" + resultSummary.podRatio + "_" + resultSummary.protocol + "_" + resultSummary.service) + summaryName := fmt.Sprint(npm.String() + "_" + resultSummary.podRatio + "_" + resultSummary.protocol + "_" + resultSummary.service) return measurement.CreateSummary(summaryName, "json", content), nil } diff --git a/clusterloader2/pkg/measurement/common/wait_for_controlled_pods.go b/clusterloader2/pkg/measurement/common/wait_for_controlled_pods.go index afdd771e7e..14084b82bf 100644 --- a/clusterloader2/pkg/measurement/common/wait_for_controlled_pods.go +++ b/clusterloader2/pkg/measurement/common/wait_for_controlled_pods.go @@ -514,7 +514,7 @@ func (w *waitForControlledPodsRunningMeasurement) updateCacheLocked(oldObj, newO if errList.IsEmpty() { return nil } - return fmt.Errorf(errList.Error()) + return errList } func (w *waitForControlledPodsRunningMeasurement) updateOpResourceVersionLocked(runtimeObj runtime.Object) error { diff --git a/clusterloader2/pkg/measurement/common/wait_for_generic_k8s_object.go b/clusterloader2/pkg/measurement/common/wait_for_generic_k8s_object.go index 0491cb346d..fa2dab8159 100644 --- a/clusterloader2/pkg/measurement/common/wait_for_generic_k8s_object.go +++ b/clusterloader2/pkg/measurement/common/wait_for_generic_k8s_object.go @@ -135,18 +135,18 @@ func getNamespaces(namespacesPrefix string, params map[string]interface{}) (meas if err != nil { return measurementutil.NamespacesRange{}, err } - min, err := util.GetInt(namespaceRange, "min") + minParam, err := util.GetInt(namespaceRange, "min") if err != nil { return measurementutil.NamespacesRange{}, err } - max, err := util.GetInt(namespaceRange, "max") + maxParam, err := util.GetInt(namespaceRange, "max") if err != nil { return measurementutil.NamespacesRange{}, err } return measurementutil.NamespacesRange{ Prefix: namespacesPrefix, - Min: min, - Max: max, + Min: minParam, + Max: maxParam, }, nil } diff --git a/network/benchmarks/netperf/nptest/nptest.go b/network/benchmarks/netperf/nptest/nptest.go index 464375f416..47b8f2cd67 100644 --- a/network/benchmarks/netperf/nptest/nptest.go +++ b/network/benchmarks/netperf/nptest/nptest.go @@ -411,14 +411,14 @@ func flushDataPointsToCsv() { for _, label := range dataPointKeys { buffer = fmt.Sprintf("%-45s,", label) points := dataPoints[label] - var max float64 + var result float64 for _, p := range points { fv, _ := strconv.ParseFloat(p.bandwidth, 64) - if fv > max { - max = fv + if fv > result { + result = fv } } - buffer = buffer + fmt.Sprintf("%f,", max) + buffer = buffer + fmt.Sprintf("%f,", result) for _, p := range points { buffer = buffer + fmt.Sprintf("%s,", p.bandwidth) }