Skip to content

Bump multus-cni to Kube 1.35 and Go to 1.25#1487

Open
yingwang-0320 wants to merge 4 commits intok8snetworkplumbingwg:masterfrom
yingwang-0320:CORENET-6865-rebase
Open

Bump multus-cni to Kube 1.35 and Go to 1.25#1487
yingwang-0320 wants to merge 4 commits intok8snetworkplumbingwg:masterfrom
yingwang-0320:CORENET-6865-rebase

Conversation

@yingwang-0320
Copy link
Contributor

-> rg 'k8s.io|openshift' go.mod | rg -v 'indirect|module' | awk '{print "go get -u",$1}'
go get -u k8s.io/api
go get -u k8s.io/apimachinery
go get -u k8s.io/client-go
go get -u k8s.io/klog
go get -u k8s.io/klog/v2
go get -u k8s.io/kubelet

-> rg 'k8s.io|openshift' go.mod | rg -v 'indirect|module' | awk '{print "go get -u",$1}' | sh

-> go mod tidy
-> go mod vendor
-> make build
-> make test
-> e2e test passed

fixed make test failure: failed to sync pod informer cache.

Ying Wang added 2 commits March 13, 2026 11:31
Signed-off-by: Ying Wang <yingwang@rehat.com>
Signed-off-by: Ying Wang <yingwang@rehat.com>
@gemini-code-assist
Copy link

Summary of Changes

Hello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request modernizes the project's development environment and external dependencies. It updates the core Go language version, refreshes numerous third-party libraries, and refines testing infrastructure. These changes collectively improve the project's stability, performance, and maintainability by aligning it with current best practices and addressing compatibility challenges with newer versions of critical components like Kubernetes.

Highlights

  • Go Version Upgrade: The project's Go version has been bumped from 1.24 to 1.25 across the go.mod file and all images/Dockerfile variants, ensuring compatibility with the latest Go features and improvements.
  • Dependency Updates: Numerous Go module dependencies have been updated to their latest versions, including core Kubernetes API/client-go modules (v0.34.1 to v0.35.2), testing frameworks Ginkgo (v2.25.1 to v2.27.2) and Gomega (v1.38.1 to v1.38.2), Prometheus client libraries, and various golang.org/x modules. This brings the project up-to-date with upstream changes and security fixes.
  • gogo/protobuf Removal: The gogo/protobuf dependency and all its vendored files have been completely removed, indicating a significant shift in how Protocol Buffers are handled within the project, likely moving towards the official google.golang.org/protobuf or a newer compatible implementation.
  • Test Informer Cache Synchronization Fix: Modifications were made to pkg/multus/multus_cni100_test.go to address issues with fake clients and informer cache synchronization in Kubernetes 1.34+. The WaitForCacheSync call was removed, and tests now manually populate informer caches, preventing 20-second timeouts during test execution.
  • Ginkgo and Gomega Enhancements: Updates to Ginkgo introduce new features such as NodeArgsTransformer for modifying node arguments during tree construction and SpecPriority for prioritizing spec execution. Gomega also received a minor version bump with associated fixes.
  • Prometheus Client and Common Library Updates: Updates across Prometheus client_golang and common libraries include changes to metric name validation, improved exemplar handling in histograms, new collector wrapping functionalities, and refined parsing logic for OpenMetrics and duration strings.
  • Prometheus procfs Enhancements: The procfs library received several updates, including the addition of NetDevSNMP6 parsing, various fixes to existing parsing logic (e.g., proc_netstat, proc_smaps), and deprecation of certain NetTCP functions, enhancing its robustness and feature set.
Changelog
  • go.mod
    • Updated Go language version from 1.24.11 to 1.25.0.
    • Updated github.com/onsi/ginkgo/v2 from v2.25.1 to v2.27.2.
    • Updated github.com/onsi/gomega from v1.38.1 to v1.38.2.
    • Updated github.com/prometheus/client_golang from v1.22.0 to v1.23.2.
    • Updated github.com/spf13/pflag from v1.0.6 to v1.0.9.
    • Updated golang.org/x/net from v0.43.0 to v0.47.0.
    • Updated golang.org/x/sys from v0.35.0 to v0.38.0.
    • Updated k8s.io/api from v0.34.1 to v0.35.2.
    • Updated k8s.io/apimachinery from v0.34.1 to v0.35.2.
    • Updated k8s.io/client-go from v0.34.1 to v0.35.2.
    • Updated k8s.io/klog/v2 from v2.130.1 to v2.140.0.
    • Updated k8s.io/kubelet from v0.34.1 to v0.35.2.
    • Removed github.com/gogo/protobuf dependency.
    • Updated various indirect dependencies including golang.org/x/mod, golang.org/x/oauth2, golang.org/x/sync, golang.org/x/term, golang.org/x/text, golang.org/x/tools, google.golang.org/genproto/googleapis/rpc, google.golang.org/protobuf, gopkg.in/evanphx/json-patch.v4, k8s.io/kube-openapi, k8s.io/utils, and sigs.k8s.io/json.
  • go.sum
    • Updated checksums for numerous direct and indirect dependencies to reflect version upgrades and removals.
  • images/Dockerfile
    • Updated the base Go image from golang:1.24 to golang:1.25.
  • images/Dockerfile.debug
    • Updated the base Go image from golang:1.24 to golang:1.25.
  • images/Dockerfile.thick
    • Updated the base Go image from golang:1.24 to golang:1.25.
  • pkg/multus/multus_cni100_test.go
    • Removed cache.WaitForCacheSync calls for pod and network definition informers.
    • Added comments explaining why WaitForCacheSync is problematic with fake clients in K8s 1.34+.
    • Implemented manual population of informer caches using informer.GetStore().Add() for fake clients in tests.
  • vendor/github.com/gogo/protobuf/AUTHORS
    • Removed file as part of gogo/protobuf dependency removal.
  • vendor/github.com/gogo/protobuf/CONTRIBUTORS
    • Removed file as part of gogo/protobuf dependency removal.
  • vendor/github.com/gogo/protobuf/proto/Makefile
    • Removed file as part of gogo/protobuf dependency removal.
  • vendor/github.com/gogo/protobuf/proto/clone.go
    • Removed file as part of gogo/protobuf dependency removal.
  • vendor/github.com/gogo/protobuf/proto/custom_gogo.go
    • Removed file as part of gogo/protobuf dependency removal.
  • vendor/github.com/gogo/protobuf/proto/decode.go
    • Removed file as part of gogo/protobuf dependency removal.
  • vendor/github.com/gogo/protobuf/proto/deprecated.go
    • Removed file as part of gogo/protobuf dependency removal.
  • vendor/github.com/gogo/protobuf/proto/discard.go
    • Removed file as part of gogo/protobuf dependency removal.
  • vendor/github.com/gogo/protobuf/proto/duration.go
    • Removed file as part of gogo/protobuf dependency removal.
  • vendor/github.com/gogo/protobuf/proto/duration_gogo.go
    • Removed file as part of gogo/protobuf dependency removal.
  • vendor/github.com/gogo/protobuf/proto/encode.go
    • Removed file as part of gogo/protobuf dependency removal.
  • vendor/github.com/gogo/protobuf/proto/encode_gogo.go
    • Removed file as part of gogo/protobuf dependency removal.
  • vendor/github.com/gogo/protobuf/proto/equal.go
    • Removed file as part of gogo/protobuf dependency removal.
  • vendor/github.com/gogo/protobuf/proto/extensions.go
    • Removed file as part of gogo/protobuf dependency removal.
  • vendor/github.com/gogo/protobuf/proto/extensions_gogo.go
    • Removed file as part of gogo/protobuf dependency removal.
  • vendor/github.com/gogo/protobuf/proto/lib.go
    • Removed file as part of gogo/protobuf dependency removal.
  • vendor/github.com/gogo/protobuf/proto/lib_gogo.go
    • Removed file as part of gogo/protobuf dependency removal.
  • vendor/github.com/gogo/protobuf/proto/message_set.go
    • Removed file as part of gogo/protobuf dependency removal.
  • vendor/github.com/gogo/protobuf/proto/pointer_reflect.go
    • Removed file as part of gogo/protobuf dependency removal.
  • vendor/github.com/gogo/protobuf/proto/pointer_reflect_gogo.go
    • Removed file as part of gogo/protobuf dependency removal.
  • vendor/github.com/gogo/protobuf/proto/pointer_unsafe.go
    • Removed file as part of gogo/protobuf dependency removal.
  • vendor/github.com/gogo/protobuf/proto/pointer_unsafe_gogo.go
    • Removed file as part of gogo/protobuf dependency removal.
  • vendor/github.com/gogo/protobuf/proto/properties.go
    • Removed file as part of gogo/protobuf dependency removal.
  • vendor/github.com/gogo/protobuf/proto/properties_gogo.go
    • Removed file as part of gogo/protobuf dependency removal.
  • vendor/github.com/gogo/protobuf/proto/skip_gogo.go
    • Removed file as part of gogo/protobuf dependency removal.
  • vendor/github.com/gogo/protobuf/proto/table_marshal_gogo.go
    • Removed file as part of gogo/protobuf dependency removal.
  • vendor/github.com/gogo/protobuf/proto/table_merge.go
    • Removed file as part of gogo/protobuf dependency removal.
  • vendor/github.com/gogo/protobuf/proto/table_unmarshal.go
    • Removed file as part of gogo/protobuf dependency removal.
  • vendor/github.com/gogo/protobuf/proto/table_unmarshal_gogo.go
    • Removed file as part of gogo/protobuf dependency removal.
  • vendor/github.com/gogo/protobuf/proto/text.go
    • Removed file as part of gogo/protobuf dependency removal.
  • vendor/github.com/gogo/protobuf/proto/text_gogo.go
    • Removed file as part of gogo/protobuf dependency removal.
  • vendor/github.com/gogo/protobuf/proto/text_parser.go
    • Removed file as part of gogo/protobuf dependency removal.
  • vendor/github.com/gogo/protobuf/proto/timestamp.go
    • Removed file as part of gogo/protobuf dependency removal.
  • vendor/github.com/gogo/protobuf/proto/timestamp_gogo.go
    • Removed file as part of gogo/protobuf dependency removal.
  • vendor/github.com/gogo/protobuf/proto/wrappers.go
    • Removed file as part of gogo/protobuf dependency removal.
  • vendor/github.com/gogo/protobuf/proto/wrappers_gogo.go
    • Removed file as part of gogo/protobuf dependency removal.
  • vendor/github.com/gogo/protobuf/sortkeys/sortkeys.go
    • Removed file as part of gogo/protobuf dependency removal.
  • vendor/github.com/onsi/ginkgo/v2/CHANGELOG.md
    • Updated changelog to include versions 2.27.2, 2.27.1, 2.27.0, 2.26.0, 2.25.3, and 2.25.2, detailing new features, fixes, and maintenance updates.
  • vendor/github.com/onsi/ginkgo/v2/README.md
    • Added a 'Sponsors' section with information about Lambdatest.
  • vendor/github.com/onsi/ginkgo/v2/core_dsl.go
    • Introduced NodeArgsTransformer type and AddTreeConstructionNodeArgsTransformer function for modifying node arguments during tree construction.
    • Modified Describe, FDescribe, PDescribe, When, FWhen, PWhen, It, FIt, PIt, BeforeSuite, AfterSuite, SynchronizedBeforeSuite, SynchronizedAfterSuite, BeforeEach, JustBeforeEach, AfterEach, JustAfterEach, BeforeAll, and AfterAll functions to use internal.TransformNewNodeArgs.
  • vendor/github.com/onsi/ginkgo/v2/decorator_dsl.go
    • Added SpecPriority type for assigning priority to specs or containers.
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/automaxprocs.go
    • Added new file to inline automaxprocs for Go 1.25 compatibility.
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/automaxprocs/README.md
    • Added new file explaining the purpose and future removal of the automaxprocs clone.
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/automaxprocs/cgroup.go
    • Renamed from vendor/go.uber.org/automaxprocs/internal/cgroups/cgroup.go and updated package to automaxprocs.
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/automaxprocs/cgroups.go
    • Renamed from vendor/go.uber.org/automaxprocs/internal/cgroups/cgroups.go and updated package to automaxprocs.
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/automaxprocs/cgroups2.go
    • Renamed from vendor/go.uber.org/automaxprocs/internal/cgroups/cgroups2.go and updated package to automaxprocs.
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/automaxprocs/cpu_quota_linux.go
    • Renamed from vendor/go.uber.org/automaxprocs/internal/runtime/cpu_quota_linux.go and updated package to automaxprocs.
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/automaxprocs/cpu_quota_unsupported.go
    • Renamed from vendor/go.uber.org/automaxprocs/internal/runtime/cpu_quota_unsupported.go and updated package to automaxprocs.
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/automaxprocs/errors.go
    • Renamed from vendor/go.uber.org/automaxprocs/internal/cgroups/errors.go and updated package to automaxprocs.
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/automaxprocs/mountpoint.go
    • Renamed from vendor/go.uber.org/automaxprocs/internal/cgroups/mountpoint.go and updated package to automaxprocs.
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/automaxprocs/runtime.go
    • Renamed from vendor/go.uber.org/automaxprocs/internal/runtime/runtime.go and updated package to automaxprocs.
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/automaxprocs/subsys.go
    • Renamed from vendor/go.uber.org/automaxprocs/internal/cgroups/subsys.go and updated package to automaxprocs.
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/internal/profiles_and_reports.go
    • Added logic to generate Go JSON reports if reporterConfig.GoJSONReport is set.
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/internal/run.go
    • Added handling for reporterConfig.GoJSONReport to determine the absolute path for generated Go JSON reports.
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/main.go
    • Removed direct import of go.uber.org/automaxprocs.
  • vendor/github.com/onsi/ginkgo/v2/ginkgo_t_dsl.go
    • Added Attr and Output methods to GinkgoTBWrapper.
  • vendor/github.com/onsi/ginkgo/v2/internal/group.go
    • Added constructionNodeReportForTreeNode and addNodeToReportForNode functions for generating construction node reports.
    • Added SpecPriority to initialReportForSpec.
  • vendor/github.com/onsi/ginkgo/v2/internal/node.go
    • Added SpecPriority field and HasExplicitlySetSpecPriority to Node struct.
    • Added SpecPriority type.
    • Modified NewNode to handle SpecPriority decorator.
    • Modified NewCleanupNode to pass finalArgs directly.
    • Added GetSpecPriority method to Nodes.
    • Renamed unrollInterfaceSlice to UnrollInterfaceSlice and made it public.
    • Added NodeArgsTransformer type and AddTreeConstructionNodeArgsTransformer function.
    • Added TransformNewNodeArgs function to apply node argument transformers.
  • vendor/github.com/onsi/ginkgo/v2/internal/ordering.go
    • Corrected a typo in a comment from 'tu' to 'to'.
    • Modified OrderSpecs to calculate and use shufflableGroupingIDPriorities for stable sorting of shuffled grouping IDs.
  • vendor/github.com/onsi/ginkgo/v2/internal/reporters/gojson.go
    • Added new file defining gojsonEvent structure, GoJSONAction enum, and helper functions for Go JSON reporting.
  • vendor/github.com/onsi/ginkgo/v2/internal/reporters/gojson_event_writer.go
    • Added new file defining GoJSONEventWriter for writing Go JSON events.
  • vendor/github.com/onsi/ginkgo/v2/internal/reporters/gojson_reporter.go
    • Added new file defining GoJSONReporter for generating Go JSON reports.
  • vendor/github.com/onsi/ginkgo/v2/reporters/default_reporter.go
    • Modified emitTimeline to correctly handle GinkgoWriter output offsets.
    • Updated emitProgressReport to accept an emitGroup boolean and conditionally emit GitHub output groups.
  • vendor/github.com/onsi/ginkgo/v2/reporters/gojson_report.go
    • Added new file defining GenerateGoTestJSONReport and MergeAndCleanupGoTestJSONReports functions.
  • vendor/github.com/onsi/ginkgo/v2/reporting_dsl.go
    • Added ConstructionNodeReport type and CurrentTreeConstructionNodeReport function for accessing construction phase node reports.
    • Modified CurrentSpecReport documentation to clarify behavior during tree construction.
    • Updated ReportBeforeEach, ReportAfterEach, ReportBeforeSuite, and ReportAfterSuite to use internal.TransformNewNodeArgs.
  • vendor/github.com/onsi/ginkgo/v2/table_dsl.go
    • Modified generateTable to use internal.TransformNewNodeArgs when pushing nodes.
  • vendor/github.com/onsi/ginkgo/v2/types/config.go
    • Added GoJSONReport field to ReporterConfig.
    • Updated WillGenerateReport to include GoJSONReport.
  • vendor/github.com/onsi/ginkgo/v2/types/types.go
    • Added ConstructionNodeReport struct with hierarchy details, serial, and ordered flags.
    • Added FullText and Labels methods to ConstructionNodeReport.
    • Added SpecPriority field to SpecReport.
  • vendor/github.com/onsi/ginkgo/v2/types/version.go
    • Updated Ginkgo version constant to 2.27.2.
  • vendor/github.com/onsi/gomega/CHANGELOG.md
    • Updated changelog to include version 1.38.2 with a rollback to Go 1.23.0.
  • vendor/github.com/onsi/gomega/gomega_dsl.go
    • Updated Gomega version constant to 1.38.2.
  • vendor/github.com/pkg/errors/.gitignore
    • Removed file as part of github.com/pkg/errors dependency removal.
  • vendor/github.com/pkg/errors/.travis.yml
    • Removed file as part of github.com/pkg/errors dependency removal.
  • vendor/github.com/pkg/errors/LICENSE
    • Removed file as part of github.com/pkg/errors dependency removal.
  • vendor/github.com/pkg/errors/Makefile
    • Removed file as part of github.com/pkg/errors dependency removal.
  • vendor/github.com/pkg/errors/README.md
    • Removed file as part of github.com/pkg/errors dependency removal.
  • vendor/github.com/pkg/errors/appveyor.yml
    • Removed file as part of github.com/pkg/errors dependency removal.
  • vendor/github.com/pkg/errors/errors.go
    • Removed file as part of github.com/pkg/errors dependency removal.
  • vendor/github.com/pkg/errors/go113.go
    • Removed file as part of github.com/pkg/errors dependency removal.
  • vendor/github.com/pkg/errors/stack.go
    • Removed file as part of github.com/pkg/errors dependency removal.
  • vendor/github.com/prometheus/client_golang/prometheus/desc.go
    • Modified NewDesc to use model.NameValidationScheme.IsValidMetricName for metric name validation.
  • vendor/github.com/prometheus/client_golang/prometheus/internal/difflib.go
    • Modified GetGroupedOpCodes logic for handling 'e' tags.
    • Changed WriteUnifiedDiff to use fmt.Fprintf instead of fmt.Sprintf and WriteString.
  • vendor/github.com/prometheus/client_golang/prometheus/internal/go_runtime_metrics.go
    • Modified RuntimeMetricsToProm to use model.LegacyValidation.IsValidMetricName for metric name validation.
  • vendor/github.com/prometheus/client_golang/prometheus/labels.go
    • Modified checkLabelName to use model.NameValidationScheme.IsValidLabelName for label name validation.
  • vendor/github.com/prometheus/client_golang/prometheus/metric.go
    • Modified Write method for withExemplarsMetric to improve exemplar handling in histograms, including native histograms.
  • vendor/github.com/prometheus/client_golang/prometheus/process_collector_darwin.go
    • Renamed notImplementedErr to errNotImplemented.
  • vendor/github.com/prometheus/client_golang/prometheus/process_collector_mem_nocgo_darwin.go
    • Updated getMemory to return errNotImplemented.
  • vendor/github.com/prometheus/client_golang/prometheus/process_collector_procfsenabled.go
    • Updated processCollect to directly access InOctets and OutOctets from netstat.
  • vendor/github.com/prometheus/client_golang/prometheus/promhttp/instrument_server.go
    • Modified labels function to use !code && !method instead of !(code || method).
  • vendor/github.com/prometheus/client_golang/prometheus/vec.go
    • Modified DeleteLabelValues, Delete, DeletePartialMatch, GetMetricWithLabelValues, and GetMetricWith to directly call methods on MetricVec instead of metricMap.
  • vendor/github.com/prometheus/client_golang/prometheus/wrap.go
    • Corrected comment regarding metric name prefixes.
    • Added WrapCollectorWith and WrapCollectorWithPrefix functions for wrapping collectors with labels or prefixes.
  • vendor/github.com/prometheus/common/expfmt/decode.go
    • Modified NewDecoder to use model.ValidationScheme for metric name validation based on format type.
    • Added errDecoder type for handling unsupported decoding formats.
    • Modified protoDecoder to include model.ValidationScheme and use it for metric name validation.
  • vendor/github.com/prometheus/common/expfmt/encode.go
    • Reordered imports.
    • Updated Negotiate documentation to refer to NegotiateIncludingOpenMetrics.
    • Modified NewEncoder to use model.EscapeMetricFamily when marshaling protobufs.
  • vendor/github.com/prometheus/common/expfmt/expfmt.go
    • Added nolint:revive comments for OpenMetricsVersion constants.
    • Modified ToEscapingScheme to use the receiver f instead of format.
  • vendor/github.com/prometheus/common/expfmt/fuzz.go
    • Added import for github.com/prometheus/common/model.
    • Modified Fuzz function to use NewTextParser with model.UTF8Validation.
  • vendor/github.com/prometheus/common/expfmt/openmetrics_create.go
    • Reordered imports.
    • Modified MetricFamilyToOpenMetrics to use += for string concatenation.
    • Modified writeOpenMetricsNameAndLabelPairs to use model.LegacyValidation.IsValidMetricName.
    • Modified writeExemplar to check e.Timestamp.CheckValid().
  • vendor/github.com/prometheus/common/expfmt/text_create.go
    • Reordered imports.
    • Modified writeNameAndLabelPairs and writeName to use model.LegacyValidation.IsValidMetricName.
  • vendor/github.com/prometheus/common/expfmt/text_parse.go
    • Added scheme field to TextParser for name validation.
    • Added NewTextParser function.
    • Modified reset to initialize currentLabelPairs to nil.
    • Modified startComment and readingMetricName to check for p.err after setOrCreateCurrentMF.
    • Modified startLabelName to check for p.err after setOrCreateCurrentMF and handle invalid label names.
    • Modified readingValue to use a switch statement for metric type handling.
    • Modified setOrCreateCurrentMF to validate metric name using p.scheme.IsValidMetricName.
  • vendor/github.com/prometheus/common/model/alert.go
    • Corrected comment for ResolvedAt from 'off' to 'iff'.
  • vendor/github.com/prometheus/common/model/labels.go
    • Corrected comment for AlertNameLabel.
    • Added MetricTypeLabel and MetricUnitLabel constants.
    • Deprecated LabelName.IsValid() and LabelName.IsValidLegacy() methods, recommending ValidationScheme.IsValidLabelName instead.
  • vendor/github.com/prometheus/common/model/labelset.go
    • Modified Merge method to iterate over the receiver ls instead of l.
    • Modified UnmarshalJSON method to use ls as the receiver instead of l.
  • vendor/github.com/prometheus/common/model/metric.go
    • Added imports for encoding/json and go.yaml.in/yaml/v2.
    • Updated documentation for NameValidationScheme variable, deprecating its direct use.
    • Added UnsetValidation constant to ValidationScheme.
    • Implemented String, MarshalYAML, UnmarshalYAML, MarshalJSON, UnmarshalJSON, Set, IsValidMetricName, IsValidLabelName, and Type methods for ValidationScheme.
    • Deprecated IsValidMetricName and IsValidLegacyMetricName functions, recommending ValidationScheme.IsValidMetricName instead.
  • vendor/github.com/prometheus/common/model/time.go
    • Modified UnmarshalJSON to use strconv.ParseInt with p[0] directly.
    • Modified UnmarshalJSON to use += for string concatenation.
    • Corrected comments for Duration.Set and Duration.Type.
    • Added comment that negative durations are not supported by ParseDuration.
    • Added ParseDurationAllowNegative function.
    • Modified Duration.String to handle negative durations and return sign + r.
  • vendor/github.com/prometheus/common/model/value.go
    • Modified SampleStream.MarshalJSON to use a switch statement for handling different combinations of Histograms and Values.
    • Modified Scalar.MarshalJSON to directly marshal the string representation of the float value.
  • vendor/github.com/prometheus/common/model/value_histogram.go
    • Modified HistogramBucket.String to use s as the receiver instead of b.
  • vendor/github.com/prometheus/common/model/value_type.go
    • Modified ValueType.String to use et as the receiver instead of e.
  • vendor/github.com/prometheus/procfs/.golangci.yml
    • Updated golangci-lint configuration to version 2.0.2, enabling forbidigo and goimports formatters, and adding exclusions.
  • vendor/github.com/prometheus/procfs/Makefile.common
    • Updated GO_VERSION_NUMBER comment to include 'Error Parsing File'.
    • Updated GOLANGCI_LINT_VERSION to v2.0.2.
    • Added govulncheck target and install-govulncheck recipe.
  • vendor/github.com/prometheus/procfs/README.md
    • Updated paths for fixtures directory to testdata/fixtures in documentation.
  • vendor/github.com/prometheus/procfs/arp.go
    • Corrected comments for ATFComplete and ATFPermanent to use proper capitalization.
  • vendor/github.com/prometheus/procfs/fs.go
    • Added SectorSize constant (512 bytes).
    • Added DefaultSelinuxMountPoint constant to internal/fs/fs.go.
  • vendor/github.com/prometheus/procfs/fs_statfs_notype.go
    • Corrected comment for isRealProc to clarify its purpose.
  • vendor/github.com/prometheus/procfs/fscache.go
    • Corrected spelling of 'cancelled' to 'canceled' and 'initialised' to 'initialized' in comments.
  • vendor/github.com/prometheus/procfs/internal/fs/fs.go
    • Added DefaultSelinuxMountPoint constant.
  • vendor/github.com/prometheus/procfs/internal/util/parse.go
    • Added ReadHexFromFile function to parse hexadecimal values from files.
  • vendor/github.com/prometheus/procfs/internal/util/sysreadfile.go
    • Added SysReadUintFromFile and SysReadIntFromFile functions for reading and parsing unsigned/signed integers from files.
  • vendor/github.com/prometheus/procfs/mountstats.go
    • Corrected comments for kernel versions in fieldTransport11RDMAMaxLen and fieldTransport11RDMAMinLen.
    • Modified parseNFSTransportStats to use switch statements for protocol parsing logic.
  • vendor/github.com/prometheus/procfs/net_dev_snmp6.go
    • Added new file defining NetDevSNMP6 type and functions for parsing IPv6 SNMP statistics from /proc/net/dev_snmp6/.
  • vendor/github.com/prometheus/procfs/net_ip_socket.go
    • Corrected comment for readLimit.
    • Corrected comment for Drops from 'UPD' to 'UDP'.
    • Corrected comment for netIPSocketLine.
  • vendor/github.com/prometheus/procfs/net_protocols.go
    • Modified parseLine and parseCapabilities to use switch statements for parsing logic.
  • vendor/github.com/prometheus/procfs/net_tcp.go
    • Deprecated NetTCP, NetTCP6, NetTCPSummary, and NetTCP6Summary functions, recommending github.com/mdlayher/netlink#Conn instead.
  • vendor/github.com/prometheus/procfs/net_unix.go
    • Modified parseNetUNIX to use minFields instead of min for clarity.
    • Modified parseLine to use minFields instead of min.
  • vendor/github.com/prometheus/procfs/proc.go
    • Changed error messages to lowercase (e.g., Error Parsing File to error parsing file).
    • Modified Self() to use strings.ReplaceAll instead of strings.Replace with -1.
  • vendor/github.com/prometheus/procfs/proc_cgroup.go
    • Corrected comment for Cgroup API v1.
  • vendor/github.com/prometheus/procfs/proc_io.go
    • Added nolint:misspell comment for cancelled_write_bytes.
  • vendor/github.com/prometheus/procfs/proc_netstat.go
    • Updated field assignments in parseProcNetstat to directly assign to procNetstat fields instead of nested TcpExt or IpExt structs.
  • vendor/github.com/prometheus/procfs/proc_smaps.go
    • Removed fmt.Println from parseLine function.
    • Corrected comment for procSMapsHeaderLine.
  • vendor/github.com/prometheus/procfs/proc_snmp.go
    • Updated field assignments in parseSnmp to directly assign to procSnmp fields instead of nested Ip, Icmp, IcmpMsg, or Tcp structs.
  • vendor/github.com/prometheus/procfs/proc_snmp6.go
    • Updated field assignments in parseSNMP6Stats to directly assign to procSnmp6 fields instead of nested Ip6, Icmp6, or Udp6 structs.
  • vendor/github.com/prometheus/procfs/proc_status.go
    • Modified fillStatus to handle errors from calcNSPidsList.
    • Modified calcNSPidsList to split by tab (\t) instead of space and return an error.
  • vendor/github.com/prometheus/procfs/proc_sys.go
    • Modified sysctlToPath to use strings.ReplaceAll instead of strings.Replace with -1.
  • vendor/github.com/prometheus/procfs/softirqs.go
    • Modified parseSoftirqs to use switch statement for parsing different softirq types.
  • vendor/github.com/spf13/pflag/README.md
    • Added a new section 'Using pflag with go test' explaining how to handle go test flags with pflag and introducing ParseSkippedFlags.
  • vendor/github.com/spf13/pflag/bool_func.go
    • Added new file defining boolfuncValue type and BoolFunc/BoolFuncP functions for boolean flags with callback functions.
  • vendor/github.com/spf13/pflag/count.go
    • Corrected comment for Count flag from 'evey' to 'every'.
  • vendor/github.com/spf13/pflag/errors.go
    • Added new file defining custom error types: NotExistError, ValueRequiredError, and InvalidSyntaxError.
  • vendor/github.com/spf13/pflag/flag.go
    • Updated comments for flag definition examples.
    • Changed ParseErrorsWhitelist to ParseErrorsAllowlist and added a deprecation note.
    • Modified getFlagType, MarkDeprecated, MarkShorthandDeprecated, MarkHidden, Set to return new custom error types.
    • Modified defaultIsZeroValue to handle empty string for bool flags.
    • Modified defaultIsZeroValue to use f.DefValue directly.
    • Modified UnquoteUsage to include boolfunc and func types.
    • Modified FlagUsagesWrapped to include boolfunc type.
    • Modified failf to fail and updated error handling logic.
    • Modified parseLongArg and parseSingleShortArg to use new custom error types and handle ParseErrorsAllowlist.
  • vendor/github.com/spf13/pflag/func.go
    • Added new file defining funcValue type and Func/FuncP functions for flags with callback functions.
  • vendor/github.com/spf13/pflag/golangflag.go
    • Added isGotestFlag and isGotestShorthandFlag functions.
    • Added CopyToGoFlagSet function to copy pflag flags to a Go flag set.
    • Added ParseSkippedFlags function to explicitly parse go test flags.
  • vendor/github.com/spf13/pflag/ipnet_slice.go
    • Corrected typo in comment from 'Emtpy' to 'Empty'.
  • vendor/github.com/spf13/pflag/string_to_string.go
    • Modified String method to sort map keys alphabetically before formatting the string representation.
  • vendor/golang.org/x/mod/LICENSE
    • Renamed from vendor/github.com/gogo/protobuf/LICENSE.
  • vendor/golang.org/x/net/http2/writesched_priority_rfc7540.go
    • Renamed from vendor/golang.org/x/net/http2/writesched_priority.go.
Ignored Files
  • Ignored by pattern: .github/workflows/** (3)
    • .github/workflows/build.yml
    • .github/workflows/release.yml
    • .github/workflows/test.yml
Activity
  • The author, yingwang-0320, initiated the pull request to bump multus-cni to Kubernetes 1.35 compatibility.
  • The author executed go get -u commands for various k8s.io and openshift modules to update dependencies.
  • The author ran go mod tidy and go mod vendor to synchronize module dependencies.
  • The author performed make build and make test to verify the changes.
  • The author confirmed that e2e tests passed after the changes.
  • The author identified and fixed a make test failure related to pod informer cache synchronization, leading to the modifications in pkg/multus/multus_cni100_test.go.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request bumps the Go version to 1.25.0 and updates several dependencies, most notably the Kubernetes client libraries to a version compatible with Kube 1.35. The changes also include removing the gogo/protobuf dependency, which is a positive step for long-term maintainability.

The code modifications in pkg/multus/multus_cni100_test.go correctly address test failures resulting from the Kubernetes client-go upgrade. The removal of WaitForCacheSync and the manual population of informer caches for fake clients are appropriate fixes for the issues encountered with newer versions of the client library. The accompanying comments clearly explain the reasoning behind these changes.

The Dockerfiles have been updated to use the new Go version, ensuring consistency. The extensive changes in the vendor directory are expected as part of the dependency update.

Overall, the changes are well-executed and necessary for keeping the project up-to-date with its dependencies. I have found one minor issue in a vendored Makefile which should be addressed.


GO_VERSION ?= $(shell $(GO) version)
GO_VERSION_NUMBER ?= $(word 3, $(GO_VERSION))
GO_VERSION_NUMBER ?= $(word 3, $(GO_VERSION))Error Parsing File

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

It seems there's a typo or corruption in this line. The string Error Parsing File has been appended, which will likely cause issues with parsing the Go version number and could break builds that rely on this Makefile. It should probably be removed.

GO_VERSION_NUMBER ?= $(word 3, $(GO_VERSION))

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed.

…00_test.go

Signed-off-by: Ying Wang <yingwang@rehat.com>
Signed-off-by: Ying Wang <yingwang@rehat.com>
@yingwang-0320
Copy link
Contributor Author

@bpickard22 @pliurh can you please help review?

@yingwang-0320
Copy link
Contributor Author

/assign @bpickard22

@bpickard22
Copy link
Collaborator

/retitle Bump multus-cni to Kube 1.35

@bpickard22
Copy link
Collaborator

@yingwang-0320 please refrain from referring to downstream issues in upstream pr titles
Otherwise thanks for the version bumps

@bpickard22
Copy link
Collaborator

lgtm

@bpickard22 bpickard22 changed the title CORENET-6865: Bump multus-cni to Kube 1.35 Bump multus-cni to Kube 1.35 and Go to 1.25 Mar 16, 2026
@yingwang-0320
Copy link
Contributor Author

@yingwang-0320 please refrain from referring to downstream issues in upstream pr titles Otherwise thanks for the version bumps

Got it, thank you for the retitle.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants