Skip to content

🌱 Bump to go 1.24 and k8s 1.33 #380

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

qiujian16
Copy link
Member

@qiujian16 qiujian16 commented Jul 2, 2025

Summary

Related issue(s)

Fixes #

Summary by CodeRabbit

  • New Features

    • Informers now support context-aware list and watch operations, enabling better context propagation for resource monitoring.
  • Bug Fixes

    • Improved fake clientsets to respect list options during watch operations, enhancing test accuracy.
  • Chores

    • Upgraded Go version to 1.24.0 across build files, workflows, and dependencies.
    • Updated multiple project dependencies to their latest versions.
    • Simplified configuration functions by removing unnecessary error handling.

Copy link

coderabbitai bot commented Jul 2, 2025

Walkthrough

This change updates various client, informer, and fake clientset implementations to improve context handling and watch functionality. Informers now support context-aware list and watch operations, replacing context.TODO() with context.Background() and adding explicit context functions. Fake clientsets now pass ListOptions to watch reactors. Several setConfigDefaults functions were simplified to no longer return errors. The Go module and dependencies were also updated.

Changes

Files/Groups Change Summary
client/addon/clientset/versioned/fake/clientset_generated.go
client/cluster/clientset/versioned/fake/clientset_generated.go
client/operator/clientset/versioned/fake/clientset_generated.go
client/work/clientset/versioned/fake/clientset_generated.go
Fake clientsets now extract and pass metav1.ListOptions to the object tracker's Watch method in watch reactors.
client/addon/clientset/versioned/typed/addon/v1alpha1/addon_client.go
client/cluster/clientset/versioned/typed/cluster/v1/cluster_client.go
client/cluster/clientset/versioned/typed/cluster/v1alpha1/cluster_client.go
client/cluster/clientset/versioned/typed/cluster/v1beta1/cluster_client.go
client/cluster/clientset/versioned/typed/cluster/v1beta2/cluster_client.go
client/operator/clientset/versioned/typed/operator/v1/operator_client.go
client/work/clientset/versioned/typed/work/v1/work_client.go
client/work/clientset/versioned/typed/work/v1alpha1/work_client.go
setConfigDefaults functions changed to void (no error return); callers no longer check for errors.
client/addon/informers/externalversions/addon/v1alpha1/addondeploymentconfig.go
client/addon/informers/externalversions/addon/v1alpha1/addontemplate.go
client/addon/informers/externalversions/addon/v1alpha1/clustermanagementaddon.go
client/addon/informers/externalversions/addon/v1alpha1/managedclusteraddon.go
client/cluster/informers/externalversions/cluster/v1/managedcluster.go
client/cluster/informers/externalversions/cluster/v1alpha1/addonplacementscore.go
client/cluster/informers/externalversions/cluster/v1alpha1/clusterclaim.go
client/cluster/informers/externalversions/cluster/v1beta1/placement.go
client/cluster/informers/externalversions/cluster/v1beta1/placementdecision.go
client/cluster/informers/externalversions/cluster/v1beta2/managedclusterset.go
client/cluster/informers/externalversions/cluster/v1beta2/managedclustersetbinding.go
client/operator/informers/externalversions/operator/v1/clustermanager.go
client/operator/informers/externalversions/operator/v1/klusterlet.go
client/work/informers/externalversions/work/v1/appliedmanifestwork.go
client/work/informers/externalversions/work/v1/manifestwork.go
client/work/informers/externalversions/work/v1alpha1/manifestworkreplicaset.go
Informers now use context.Background() instead of context.TODO() and add ListWithContextFunc and WatchFuncWithContext for context-aware operations.
dependencymagnet/doc.go Added blank import for k8s.io/code-generator/cmd/validation-gen to tool dependencies.
go.mod Go version updated to 1.24.0; multiple dependencies upgraded, some removed, and new indirect dependencies added.
✨ Finishing Touches
  • 📝 Generate Docstrings

🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Explain this complex logic.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai explain this code block.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and explain its main purpose.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@openshift-ci openshift-ci bot requested review from deads2k and mdelder July 2, 2025 08:37
Copy link
Contributor

openshift-ci bot commented Jul 2, 2025

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: qiujian16

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@openshift-ci openshift-ci bot added the approved label Jul 2, 2025
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 5

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between ade1c7c and 771b6a8.

⛔ Files ignored due to path filters (268)
  • go.sum is excluded by !**/*.sum
  • vendor/github.com/golang/protobuf/AUTHORS is excluded by !vendor/**
  • vendor/github.com/golang/protobuf/CONTRIBUTORS is excluded by !vendor/**
  • vendor/github.com/golang/protobuf/proto/buffer.go is excluded by !vendor/**
  • vendor/github.com/golang/protobuf/proto/defaults.go is excluded by !vendor/**
  • vendor/github.com/golang/protobuf/proto/deprecated.go is excluded by !vendor/**
  • vendor/github.com/golang/protobuf/proto/discard.go is excluded by !vendor/**
  • vendor/github.com/golang/protobuf/proto/extensions.go is excluded by !vendor/**
  • vendor/github.com/golang/protobuf/proto/properties.go is excluded by !vendor/**
  • vendor/github.com/golang/protobuf/proto/proto.go is excluded by !vendor/**
  • vendor/github.com/golang/protobuf/proto/registry.go is excluded by !vendor/**
  • vendor/github.com/golang/protobuf/proto/text_decode.go is excluded by !vendor/**
  • vendor/github.com/golang/protobuf/proto/text_encode.go is excluded by !vendor/**
  • vendor/github.com/golang/protobuf/proto/wire.go is excluded by !vendor/**
  • vendor/github.com/golang/protobuf/proto/wrappers.go is excluded by !vendor/**
  • vendor/github.com/golang/protobuf/ptypes/any.go is excluded by !vendor/**
  • vendor/github.com/golang/protobuf/ptypes/any/any.pb.go is excluded by !**/*.pb.go, !vendor/**
  • vendor/github.com/golang/protobuf/ptypes/doc.go is excluded by !vendor/**
  • vendor/github.com/golang/protobuf/ptypes/duration.go is excluded by !vendor/**
  • vendor/github.com/golang/protobuf/ptypes/duration/duration.pb.go is excluded by !**/*.pb.go, !vendor/**
  • vendor/github.com/golang/protobuf/ptypes/timestamp.go is excluded by !vendor/**
  • vendor/github.com/golang/protobuf/ptypes/timestamp/timestamp.pb.go is excluded by !**/*.pb.go, !vendor/**
  • vendor/github.com/google/gnostic-models/compiler/extensions.go is excluded by !vendor/**
  • vendor/github.com/google/gnostic-models/extensions/extension.pb.go is excluded by !**/*.pb.go, !vendor/**
  • vendor/github.com/google/gnostic-models/extensions/extensions.go is excluded by !vendor/**
  • vendor/github.com/google/gnostic-models/openapiv2/OpenAPIv2.pb.go is excluded by !**/*.pb.go, !vendor/**
  • vendor/github.com/google/gnostic-models/openapiv3/OpenAPIv3.pb.go is excluded by !**/*.pb.go, !vendor/**
  • vendor/github.com/google/gnostic-models/openapiv3/annotations.pb.go is excluded by !**/*.pb.go, !vendor/**
  • vendor/github.com/google/gnostic-models/openapiv3/annotations.proto is excluded by !vendor/**
  • vendor/github.com/google/go-cmp/cmp/internal/function/func.go is excluded by !vendor/**
  • vendor/github.com/google/go-cmp/cmp/options.go is excluded by !vendor/**
  • vendor/github.com/google/gofuzz/.travis.yml is excluded by !vendor/**
  • vendor/github.com/google/gofuzz/CONTRIBUTING.md is excluded by !vendor/**
  • vendor/github.com/google/gofuzz/fuzz.go is excluded by !vendor/**
  • vendor/github.com/inconshreveable/mousetrap/LICENSE is excluded by !vendor/**
  • vendor/github.com/inconshreveable/mousetrap/README.md is excluded by !vendor/**
  • vendor/github.com/inconshreveable/mousetrap/trap_others.go is excluded by !vendor/**
  • vendor/github.com/inconshreveable/mousetrap/trap_windows.go is excluded by !vendor/**
  • vendor/github.com/openshift/build-machinery-go/.ci-operator.yaml is excluded by !vendor/**
  • vendor/github.com/openshift/build-machinery-go/.gitignore is excluded by !vendor/**
  • vendor/github.com/openshift/build-machinery-go/Dockerfile.commitchecker is excluded by !vendor/**
  • vendor/github.com/openshift/build-machinery-go/OWNERS is excluded by !vendor/**
  • vendor/github.com/openshift/build-machinery-go/make/operator.example.mk.help.log is excluded by !**/*.log, !vendor/**
  • vendor/github.com/openshift/build-machinery-go/make/targets/golang/verify-update.mk is excluded by !vendor/**
  • vendor/github.com/openshift/build-machinery-go/make/targets/golang/version.mk is excluded by !vendor/**
  • vendor/github.com/openshift/build-machinery-go/make/targets/openshift/controller-gen.mk is excluded by !vendor/**
  • vendor/github.com/openshift/build-machinery-go/make/targets/openshift/images.mk is excluded by !vendor/**
  • vendor/github.com/openshift/build-machinery-go/make/targets/openshift/operator/mom.mk is excluded by !vendor/**
  • vendor/github.com/openshift/build-machinery-go/make/targets/openshift/yq.mk is excluded by !vendor/**
  • vendor/github.com/openshift/build-machinery-go/scripts/test-operator-integration.sh is excluded by !vendor/**
  • vendor/github.com/prometheus/client_golang/NOTICE is excluded by !vendor/**
  • vendor/github.com/prometheus/client_golang/internal/github.com/golang/gddo/LICENSE is excluded by !vendor/**
  • vendor/github.com/prometheus/client_golang/internal/github.com/golang/gddo/httputil/header/header.go is excluded by !vendor/**
  • vendor/github.com/prometheus/client_golang/internal/github.com/golang/gddo/httputil/negotiate.go is excluded by !vendor/**
  • vendor/github.com/prometheus/client_golang/prometheus/collectorfunc.go is excluded by !vendor/**
  • vendor/github.com/prometheus/client_golang/prometheus/collectors/go_collector_latest.go is excluded by !vendor/**
  • vendor/github.com/prometheus/client_golang/prometheus/desc.go is excluded by !vendor/**
  • vendor/github.com/prometheus/client_golang/prometheus/go_collector.go is excluded by !vendor/**
  • vendor/github.com/prometheus/client_golang/prometheus/go_collector_latest.go is excluded by !vendor/**
  • vendor/github.com/prometheus/client_golang/prometheus/histogram.go is excluded by !vendor/**
  • vendor/github.com/prometheus/client_golang/prometheus/internal/difflib.go is excluded by !vendor/**
  • vendor/github.com/prometheus/client_golang/prometheus/internal/go_collector_options.go is excluded by !vendor/**
  • vendor/github.com/prometheus/client_golang/prometheus/internal/go_runtime_metrics.go is excluded by !vendor/**
  • vendor/github.com/prometheus/client_golang/prometheus/metric.go is excluded by !vendor/**
  • vendor/github.com/prometheus/client_golang/prometheus/process_collector.go is excluded by !vendor/**
  • vendor/github.com/prometheus/client_golang/prometheus/process_collector_darwin.go is excluded by !vendor/**
  • vendor/github.com/prometheus/client_golang/prometheus/process_collector_mem_cgo_darwin.c is excluded by !vendor/**
  • vendor/github.com/prometheus/client_golang/prometheus/process_collector_mem_cgo_darwin.go is excluded by !vendor/**
  • vendor/github.com/prometheus/client_golang/prometheus/process_collector_mem_nocgo_darwin.go is excluded by !vendor/**
  • vendor/github.com/prometheus/client_golang/prometheus/process_collector_not_supported.go is excluded by !vendor/**
  • vendor/github.com/prometheus/client_golang/prometheus/process_collector_procfsenabled.go is excluded by !vendor/**
  • vendor/github.com/prometheus/client_golang/prometheus/process_collector_windows.go is excluded by !vendor/**
  • vendor/github.com/prometheus/client_golang/prometheus/promhttp/delegator.go is excluded by !vendor/**
  • vendor/github.com/prometheus/client_golang/prometheus/promhttp/http.go is excluded by !vendor/**
  • vendor/github.com/prometheus/client_golang/prometheus/promhttp/internal/compression.go is excluded by !vendor/**
  • vendor/github.com/prometheus/client_golang/prometheus/registry.go is excluded by !vendor/**
  • vendor/github.com/prometheus/client_golang/prometheus/summary.go is excluded by !vendor/**
  • vendor/github.com/prometheus/client_golang/prometheus/vec.go is excluded by !vendor/**
  • vendor/github.com/prometheus/common/expfmt/decode.go is excluded by !vendor/**
  • vendor/github.com/prometheus/common/expfmt/encode.go is excluded by !vendor/**
  • vendor/github.com/prometheus/common/expfmt/expfmt.go is excluded by !vendor/**
  • vendor/github.com/prometheus/common/expfmt/openmetrics_create.go is excluded by !vendor/**
  • vendor/github.com/prometheus/common/expfmt/text_create.go is excluded by !vendor/**
  • vendor/github.com/prometheus/common/expfmt/text_parse.go is excluded by !vendor/**
  • vendor/github.com/prometheus/common/model/alert.go is excluded by !vendor/**
  • vendor/github.com/prometheus/common/model/labels.go is excluded by !vendor/**
  • vendor/github.com/prometheus/common/model/labelset_string.go is excluded by !vendor/**
  • vendor/github.com/prometheus/common/model/labelset_string_go120.go is excluded by !vendor/**
  • vendor/github.com/prometheus/common/model/metric.go is excluded by !vendor/**
  • vendor/github.com/prometheus/common/model/silence.go is excluded by !vendor/**
  • vendor/github.com/prometheus/common/model/value_float.go is excluded by !vendor/**
  • vendor/github.com/prometheus/common/model/value_histogram.go is excluded by !vendor/**
  • vendor/github.com/spf13/cobra/.gitignore is excluded by !vendor/**
  • vendor/github.com/spf13/cobra/.golangci.yml is excluded by !vendor/**
  • vendor/github.com/spf13/cobra/.mailmap is excluded by !vendor/**
  • vendor/github.com/spf13/cobra/CONDUCT.md is excluded by !vendor/**
  • vendor/github.com/spf13/cobra/CONTRIBUTING.md is excluded by !vendor/**
  • vendor/github.com/spf13/cobra/LICENSE.txt is excluded by !vendor/**
  • vendor/github.com/spf13/cobra/MAINTAINERS is excluded by !vendor/**
  • vendor/github.com/spf13/cobra/Makefile is excluded by !vendor/**
  • vendor/github.com/spf13/cobra/README.md is excluded by !vendor/**
  • vendor/github.com/spf13/cobra/active_help.go is excluded by !vendor/**
  • vendor/github.com/spf13/cobra/args.go is excluded by !vendor/**
  • vendor/github.com/spf13/cobra/bash_completions.go is excluded by !vendor/**
  • vendor/github.com/spf13/cobra/bash_completionsV2.go is excluded by !vendor/**
  • vendor/github.com/spf13/cobra/cobra.go is excluded by !vendor/**
  • vendor/github.com/spf13/cobra/command.go is excluded by !vendor/**
  • vendor/github.com/spf13/cobra/command_notwin.go is excluded by !vendor/**
  • vendor/github.com/spf13/cobra/command_win.go is excluded by !vendor/**
  • vendor/github.com/spf13/cobra/completions.go is excluded by !vendor/**
  • vendor/github.com/spf13/cobra/fish_completions.go is excluded by !vendor/**
  • vendor/github.com/spf13/cobra/flag_groups.go is excluded by !vendor/**
  • vendor/github.com/spf13/cobra/powershell_completions.go is excluded by !vendor/**
  • vendor/github.com/spf13/cobra/shell_completions.go is excluded by !vendor/**
  • vendor/github.com/spf13/cobra/zsh_completions.go is excluded by !vendor/**
  • vendor/github.com/stretchr/testify/assert/assertion_compare.go is excluded by !vendor/**
  • vendor/github.com/stretchr/testify/assert/assertion_format.go is excluded by !vendor/**
  • vendor/github.com/stretchr/testify/assert/assertion_forward.go is excluded by !vendor/**
  • vendor/github.com/stretchr/testify/assert/assertion_order.go is excluded by !vendor/**
  • vendor/github.com/stretchr/testify/assert/assertions.go is excluded by !vendor/**
  • vendor/github.com/stretchr/testify/assert/yaml/yaml_custom.go is excluded by !vendor/**
  • vendor/github.com/stretchr/testify/assert/yaml/yaml_default.go is excluded by !vendor/**
  • vendor/github.com/stretchr/testify/assert/yaml/yaml_fail.go is excluded by !vendor/**
  • vendor/go.opentelemetry.io/otel/attribute/set.go is excluded by !vendor/**
  • vendor/go.opentelemetry.io/otel/codes/codes.go is excluded by !vendor/**
  • vendor/go.opentelemetry.io/otel/internal/attribute/attribute.go is excluded by !vendor/**
  • vendor/go.opentelemetry.io/otel/internal/rawhelpers.go is excluded by !vendor/**
  • vendor/go.opentelemetry.io/otel/trace/config.go is excluded by !vendor/**
  • vendor/go.opentelemetry.io/otel/trace/context.go is excluded by !vendor/**
  • vendor/go.opentelemetry.io/otel/trace/doc.go is excluded by !vendor/**
  • vendor/go.opentelemetry.io/otel/trace/provider.go is excluded by !vendor/**
  • vendor/go.opentelemetry.io/otel/trace/span.go is excluded by !vendor/**
  • vendor/go.opentelemetry.io/otel/trace/trace.go is excluded by !vendor/**
  • vendor/go.opentelemetry.io/otel/trace/tracer.go is excluded by !vendor/**
  • vendor/go.opentelemetry.io/otel/trace/tracestate.go is excluded by !vendor/**
  • vendor/golang.org/x/net/html/atom/table.go is excluded by !vendor/**
  • vendor/golang.org/x/net/html/doc.go is excluded by !vendor/**
  • vendor/golang.org/x/net/html/doctype.go is excluded by !vendor/**
  • vendor/golang.org/x/net/html/foreign.go is excluded by !vendor/**
  • vendor/golang.org/x/net/html/iter.go is excluded by !vendor/**
  • vendor/golang.org/x/net/html/node.go is excluded by !vendor/**
  • vendor/golang.org/x/net/html/parse.go is excluded by !vendor/**
  • vendor/golang.org/x/net/html/token.go is excluded by !vendor/**
  • vendor/golang.org/x/net/http2/client_conn_pool.go is excluded by !vendor/**
  • vendor/golang.org/x/net/http2/config.go is excluded by !vendor/**
  • vendor/golang.org/x/net/http2/config_go124.go is excluded by !vendor/**
  • vendor/golang.org/x/net/http2/frame.go is excluded by !vendor/**
  • vendor/golang.org/x/net/http2/http2.go is excluded by !vendor/**
  • vendor/golang.org/x/net/http2/server.go is excluded by !vendor/**
  • vendor/golang.org/x/net/http2/transport.go is excluded by !vendor/**
  • vendor/golang.org/x/net/http2/unencrypted.go is excluded by !vendor/**
  • vendor/golang.org/x/net/http2/write.go is excluded by !vendor/**
  • vendor/golang.org/x/net/internal/httpcommon/ascii.go is excluded by !vendor/**
  • vendor/golang.org/x/net/internal/httpcommon/headermap.go is excluded by !vendor/**
  • vendor/golang.org/x/net/internal/httpcommon/request.go is excluded by !vendor/**
  • vendor/golang.org/x/oauth2/README.md is excluded by !vendor/**
  • vendor/golang.org/x/oauth2/oauth2.go is excluded by !vendor/**
  • vendor/golang.org/x/oauth2/pkce.go is excluded by !vendor/**
  • vendor/golang.org/x/sync/errgroup/errgroup.go is excluded by !vendor/**
  • vendor/golang.org/x/sync/errgroup/go120.go is excluded by !vendor/**
  • vendor/golang.org/x/sync/errgroup/pre_go120.go is excluded by !vendor/**
  • vendor/golang.org/x/sys/unix/auxv.go is excluded by !vendor/**
  • vendor/golang.org/x/sys/unix/auxv_unsupported.go is excluded by !vendor/**
  • vendor/golang.org/x/sys/unix/ioctl_linux.go is excluded by !vendor/**
  • vendor/golang.org/x/sys/unix/mkerrors.sh is excluded by !vendor/**
  • vendor/golang.org/x/sys/unix/syscall_dragonfly.go is excluded by !vendor/**
  • vendor/golang.org/x/sys/unix/syscall_linux.go is excluded by !vendor/**
  • vendor/golang.org/x/sys/unix/syscall_solaris.go is excluded by !vendor/**
  • vendor/golang.org/x/sys/unix/syscall_zos_s390x.go is excluded by !vendor/**
  • vendor/golang.org/x/sys/unix/zerrors_linux.go is excluded by !vendor/**
  • vendor/golang.org/x/sys/unix/zerrors_linux_386.go is excluded by !vendor/**
  • vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go is excluded by !vendor/**
  • vendor/golang.org/x/sys/unix/zerrors_linux_arm.go is excluded by !vendor/**
  • vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go is excluded by !vendor/**
  • vendor/golang.org/x/sys/unix/zerrors_linux_loong64.go is excluded by !vendor/**
  • vendor/golang.org/x/sys/unix/zerrors_linux_mips.go is excluded by !vendor/**
  • vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go is excluded by !vendor/**
  • vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go is excluded by !vendor/**
  • vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go is excluded by !vendor/**
  • vendor/golang.org/x/sys/unix/zerrors_linux_ppc.go is excluded by !vendor/**
  • vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go is excluded by !vendor/**
  • vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go is excluded by !vendor/**
  • vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go is excluded by !vendor/**
  • vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go is excluded by !vendor/**
  • vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go is excluded by !vendor/**
  • vendor/golang.org/x/sys/unix/zsyscall_linux.go is excluded by !vendor/**
  • vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go is excluded by !vendor/**
  • vendor/golang.org/x/sys/unix/zsysnum_linux_386.go is excluded by !vendor/**
  • vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go is excluded by !vendor/**
  • vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go is excluded by !vendor/**
  • vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go is excluded by !vendor/**
  • vendor/golang.org/x/sys/unix/zsysnum_linux_loong64.go is excluded by !vendor/**
  • vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go is excluded by !vendor/**
  • vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go is excluded by !vendor/**
  • vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go is excluded by !vendor/**
  • vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go is excluded by !vendor/**
  • vendor/golang.org/x/sys/unix/zsysnum_linux_ppc.go is excluded by !vendor/**
  • vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go is excluded by !vendor/**
  • vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go is excluded by !vendor/**
  • vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go is excluded by !vendor/**
  • vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go is excluded by !vendor/**
  • vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go is excluded by !vendor/**
  • vendor/golang.org/x/sys/unix/ztypes_darwin_amd64.go is excluded by !vendor/**
  • vendor/golang.org/x/sys/unix/ztypes_darwin_arm64.go is excluded by !vendor/**
  • vendor/golang.org/x/sys/unix/ztypes_linux.go is excluded by !vendor/**
  • vendor/golang.org/x/sys/unix/ztypes_zos_s390x.go is excluded by !vendor/**
  • vendor/golang.org/x/sys/windows/dll_windows.go is excluded by !vendor/**
  • vendor/golang.org/x/sys/windows/syscall_windows.go is excluded by !vendor/**
  • vendor/golang.org/x/sys/windows/types_windows.go is excluded by !vendor/**
  • vendor/golang.org/x/sys/windows/zsyscall_windows.go is excluded by !vendor/**
  • vendor/golang.org/x/term/README.md is excluded by !vendor/**
  • vendor/golang.org/x/text/language/parse.go is excluded by !vendor/**
  • vendor/google.golang.org/protobuf/encoding/prototext/decode.go is excluded by !vendor/**
  • vendor/google.golang.org/protobuf/internal/editiondefaults/editions_defaults.binpb is excluded by !vendor/**
  • vendor/google.golang.org/protobuf/internal/editionssupport/editions.go is excluded by !vendor/**
  • vendor/google.golang.org/protobuf/internal/encoding/tag/tag.go is excluded by !vendor/**
  • vendor/google.golang.org/protobuf/internal/errors/is_go112.go is excluded by !vendor/**
  • vendor/google.golang.org/protobuf/internal/errors/is_go113.go is excluded by !vendor/**
  • vendor/google.golang.org/protobuf/internal/filedesc/desc.go is excluded by !vendor/**
  • vendor/google.golang.org/protobuf/internal/filedesc/desc_lazy.go is excluded by !vendor/**
  • vendor/google.golang.org/protobuf/internal/filedesc/editions.go is excluded by !vendor/**
  • vendor/google.golang.org/protobuf/internal/filetype/build.go is excluded by !vendor/**
  • vendor/google.golang.org/protobuf/internal/flags/flags.go is excluded by !vendor/**
  • vendor/google.golang.org/protobuf/internal/genid/go_features_gen.go is excluded by !vendor/**
  • vendor/google.golang.org/protobuf/internal/genid/goname.go is excluded by !vendor/**
  • vendor/google.golang.org/protobuf/internal/genid/name.go is excluded by !vendor/**
  • vendor/google.golang.org/protobuf/internal/impl/api_export_opaque.go is excluded by !vendor/**
  • vendor/google.golang.org/protobuf/internal/impl/bitmap.go is excluded by !vendor/**
  • vendor/google.golang.org/protobuf/internal/impl/bitmap_race.go is excluded by !vendor/**
  • vendor/google.golang.org/protobuf/internal/impl/checkinit.go is excluded by !vendor/**
  • vendor/google.golang.org/protobuf/internal/impl/codec_field.go is excluded by !vendor/**
  • vendor/google.golang.org/protobuf/internal/impl/codec_field_opaque.go is excluded by !vendor/**
  • vendor/google.golang.org/protobuf/internal/impl/codec_map.go is excluded by !vendor/**
  • vendor/google.golang.org/protobuf/internal/impl/codec_map_go111.go is excluded by !vendor/**
  • vendor/google.golang.org/protobuf/internal/impl/codec_map_go112.go is excluded by !vendor/**
  • vendor/google.golang.org/protobuf/internal/impl/codec_message.go is excluded by !vendor/**
  • vendor/google.golang.org/protobuf/internal/impl/codec_message_opaque.go is excluded by !vendor/**
  • vendor/google.golang.org/protobuf/internal/impl/convert_map.go is excluded by !vendor/**
  • vendor/google.golang.org/protobuf/internal/impl/decode.go is excluded by !vendor/**
  • vendor/google.golang.org/protobuf/internal/impl/encode.go is excluded by !vendor/**
  • vendor/google.golang.org/protobuf/internal/impl/lazy.go is excluded by !vendor/**
  • vendor/google.golang.org/protobuf/internal/impl/legacy_message.go is excluded by !vendor/**
  • vendor/google.golang.org/protobuf/internal/impl/merge.go is excluded by !vendor/**
  • vendor/google.golang.org/protobuf/internal/impl/message.go is excluded by !vendor/**
  • vendor/google.golang.org/protobuf/internal/impl/message_opaque.go is excluded by !vendor/**
  • vendor/google.golang.org/protobuf/internal/impl/message_opaque_gen.go is excluded by !vendor/**
  • vendor/google.golang.org/protobuf/internal/impl/message_reflect.go is excluded by !vendor/**
  • vendor/google.golang.org/protobuf/internal/impl/message_reflect_field.go is excluded by !vendor/**
  • vendor/google.golang.org/protobuf/internal/impl/message_reflect_field_gen.go is excluded by !vendor/**
  • vendor/google.golang.org/protobuf/internal/impl/pointer_unsafe.go is excluded by !vendor/**
  • vendor/google.golang.org/protobuf/internal/impl/pointer_unsafe_opaque.go is excluded by !vendor/**
  • vendor/google.golang.org/protobuf/internal/impl/presence.go is excluded by !vendor/**
  • vendor/google.golang.org/protobuf/internal/impl/validate.go is excluded by !vendor/**
  • vendor/google.golang.org/protobuf/internal/impl/weak.go is excluded by !vendor/**
  • vendor/google.golang.org/protobuf/internal/protolazy/bufferreader.go is excluded by !vendor/**
  • vendor/google.golang.org/protobuf/internal/protolazy/lazy.go is excluded by !vendor/**
  • vendor/google.golang.org/protobuf/internal/protolazy/pointer_unsafe.go is excluded by !vendor/**
  • vendor/google.golang.org/protobuf/internal/version/version.go is excluded by !vendor/**
  • vendor/google.golang.org/protobuf/proto/decode.go is excluded by !vendor/**
  • vendor/google.golang.org/protobuf/proto/encode.go is excluded by !vendor/**
  • vendor/google.golang.org/protobuf/proto/size.go is excluded by !vendor/**
  • vendor/google.golang.org/protobuf/proto/wrapperopaque.go is excluded by !vendor/**
  • vendor/google.golang.org/protobuf/reflect/protodesc/desc.go is excluded by !vendor/**
  • vendor/google.golang.org/protobuf/reflect/protodesc/desc_init.go is excluded by !vendor/**
  • vendor/google.golang.org/protobuf/reflect/protodesc/desc_resolve.go is excluded by !vendor/**
  • vendor/google.golang.org/protobuf/reflect/protodesc/desc_validate.go is excluded by !vendor/**
  • vendor/google.golang.org/protobuf/reflect/protodesc/editions.go is excluded by !vendor/**
  • vendor/google.golang.org/protobuf/reflect/protodesc/proto.go is excluded by !vendor/**
📒 Files selected for processing (32)
  • .github/workflows/go.yml (3 hunks)
  • Dockerfile.build (1 hunks)
  • client/addon/clientset/versioned/fake/clientset_generated.go (2 hunks)
  • client/addon/clientset/versioned/typed/addon/v1alpha1/addon_client.go (3 hunks)
  • client/addon/informers/externalversions/addon/v1alpha1/addondeploymentconfig.go (1 hunks)
  • client/addon/informers/externalversions/addon/v1alpha1/addontemplate.go (1 hunks)
  • client/addon/informers/externalversions/addon/v1alpha1/clustermanagementaddon.go (1 hunks)
  • client/addon/informers/externalversions/addon/v1alpha1/managedclusteraddon.go (1 hunks)
  • client/cluster/clientset/versioned/fake/clientset_generated.go (2 hunks)
  • client/cluster/clientset/versioned/typed/cluster/v1/cluster_client.go (3 hunks)
  • client/cluster/clientset/versioned/typed/cluster/v1alpha1/cluster_client.go (3 hunks)
  • client/cluster/clientset/versioned/typed/cluster/v1beta1/cluster_client.go (3 hunks)
  • client/cluster/clientset/versioned/typed/cluster/v1beta2/cluster_client.go (3 hunks)
  • client/cluster/informers/externalversions/cluster/v1/managedcluster.go (1 hunks)
  • client/cluster/informers/externalversions/cluster/v1alpha1/addonplacementscore.go (1 hunks)
  • client/cluster/informers/externalversions/cluster/v1alpha1/clusterclaim.go (1 hunks)
  • client/cluster/informers/externalversions/cluster/v1beta1/placement.go (1 hunks)
  • client/cluster/informers/externalversions/cluster/v1beta1/placementdecision.go (1 hunks)
  • client/cluster/informers/externalversions/cluster/v1beta2/managedclusterset.go (1 hunks)
  • client/cluster/informers/externalversions/cluster/v1beta2/managedclustersetbinding.go (1 hunks)
  • client/operator/clientset/versioned/fake/clientset_generated.go (2 hunks)
  • client/operator/clientset/versioned/typed/operator/v1/operator_client.go (3 hunks)
  • client/operator/informers/externalversions/operator/v1/clustermanager.go (1 hunks)
  • client/operator/informers/externalversions/operator/v1/klusterlet.go (1 hunks)
  • client/work/clientset/versioned/fake/clientset_generated.go (2 hunks)
  • client/work/clientset/versioned/typed/work/v1/work_client.go (3 hunks)
  • client/work/clientset/versioned/typed/work/v1alpha1/work_client.go (3 hunks)
  • client/work/informers/externalversions/work/v1/appliedmanifestwork.go (1 hunks)
  • client/work/informers/externalversions/work/v1/manifestwork.go (1 hunks)
  • client/work/informers/externalversions/work/v1alpha1/manifestworkreplicaset.go (1 hunks)
  • dependencymagnet/doc.go (1 hunks)
  • go.mod (3 hunks)
🧰 Additional context used
🧬 Code Graph Analysis (3)
client/cluster/informers/externalversions/cluster/v1beta2/managedclusterset.go (3)
client/cluster/clientset/versioned/clientset.go (1)
  • Interface (18-24)
client/cluster/informers/externalversions/cluster/interface.go (1)
  • Interface (14-23)
client/cluster/informers/externalversions/cluster/v1beta2/interface.go (1)
  • Interface (10-15)
client/addon/informers/externalversions/addon/v1alpha1/addontemplate.go (1)
client/addon/informers/externalversions/addon/v1alpha1/interface.go (1)
  • Interface (10-19)
client/work/informers/externalversions/work/v1/manifestwork.go (2)
client/work/clientset/versioned/clientset.go (1)
  • Interface (16-20)
client/work/informers/externalversions/work/v1/interface.go (1)
  • Interface (10-15)
🔇 Additional comments (42)
.github/workflows/go.yml (1)

16-16: Consistent Go version update.

The Go version update aligns well with the Dockerfile change, maintaining consistency across build environments.

dependencymagnet/doc.go (1)

23-23: Good addition of validation-gen tool dependency.

This import ensures the Kubernetes validation generation tool is included as a build dependency, supporting the K8s 1.33 upgrade.

client/cluster/clientset/versioned/typed/cluster/v1alpha1/cluster_client.go (2)

72-72: Function signature change is appropriate.

Converting setConfigDefaults to a void function simplifies the error handling flow, assuming the configuration defaults are now infallible.


37-37: setConfigDefaults signature updated consistently across all client versions

Verification confirms that setConfigDefaults no longer returns an error in every *_client.go under client/*/clientset/versioned/typed/*/*_client.go. The void signature and corresponding removal of error handling have been applied uniformly:

• client/operator/clientset/versioned/typed/operator/v1/operator_client.go
• client/work/clientset/versioned/typed/work/v1alpha1/work_client.go
• client/work/clientset/versioned/typed/work/v1/work_client.go
• client/addon/clientset/versioned/typed/addon/v1alpha1/addon_client.go
• client/cluster/clientset/versioned/typed/cluster/v1beta2/cluster_client.go
• client/cluster/clientset/versioned/typed/cluster/v1beta1/cluster_client.go
• client/cluster/clientset/versioned/typed/cluster/v1/cluster_client.go
• client/cluster/clientset/versioned/typed/cluster/v1alpha1/cluster_client.go

No runtime issues are introduced by this change. All callers now correctly invoke setConfigDefaults(&config) without error checks.

client/work/clientset/versioned/fake/clientset_generated.go (2)

6-6: Good addition of metav1 import.

The import is needed for the ListOptions type used in the enhanced watch reactor.


39-45: Enhanced watch reactor functionality looks good.

The enhancement to extract and pass ListOptions from watch actions improves the fake clientset's fidelity to real Kubernetes client behavior.

client/addon/clientset/versioned/fake/clientset_generated.go (2)

6-6: LGTM: Import addition supports ListOptions extraction.

The metav1 import is correctly added to support the ListOptions extraction functionality.


43-43: LGTM: ListOptions now properly passed to Watch method.

The enhancement correctly passes the extracted ListOptions to the object tracker's Watch method, improving the fidelity of watch simulations in tests.

client/cluster/clientset/versioned/typed/cluster/v1beta1/cluster_client.go (2)

37-37: LGTM: Simplified configuration setup.

The removal of error handling from setConfigDefaults calls is appropriate since configuration defaulting is unlikely to fail.

Also applies to: 49-49


72-72: LGTM: Function signature simplified.

The setConfigDefaults function no longer returns an error, which is appropriate since setting configuration defaults is unlikely to fail.

client/cluster/clientset/versioned/typed/cluster/v1/cluster_client.go (2)

32-32: LGTM: Consistent simplification of configuration setup.

The removal of error handling from setConfigDefaults calls maintains consistency with other client packages.

Also applies to: 44-44


67-67: LGTM: Function signature consistently simplified.

The setConfigDefaults function signature change is consistent with other client packages.

client/operator/clientset/versioned/fake/clientset_generated.go (2)

6-6: LGTM: Import addition supports ListOptions extraction.

The metav1 import is correctly added to support the ListOptions extraction functionality.


43-43: LGTM: ListOptions now properly passed to Watch method.

The enhancement correctly passes the extracted ListOptions to the object tracker's Watch method, improving the fidelity of watch simulations in tests.

client/cluster/clientset/versioned/typed/cluster/v1beta2/cluster_client.go (2)

37-37: LGTM: Consistent simplification of configuration setup.

The removal of error handling from setConfigDefaults calls maintains consistency with other client packages.

Also applies to: 49-49


72-72: LGTM: Function signature consistently simplified.

The setConfigDefaults function signature change is consistent with other client packages.

client/work/clientset/versioned/typed/work/v1/work_client.go (2)

37-37: LGTM: Simplified setConfigDefaults calls

The removal of error handling for setConfigDefaults calls is appropriate since setting configuration defaults cannot fail.

Also applies to: 49-49


72-81: LGTM: Function signature simplification

Converting setConfigDefaults from an error-returning function to a void function is correct since the function only sets configuration defaults and has no failure conditions.

client/work/clientset/versioned/typed/work/v1alpha1/work_client.go (1)

32-32: LGTM: Consistent simplification pattern

The changes mirror those in the v1 client and are appropriate for the same reasons - setConfigDefaults cannot fail.

Also applies to: 44-44, 67-76

client/addon/clientset/versioned/typed/addon/v1alpha1/addon_client.go (1)

47-47: LGTM: Consistent client simplification across addon client

The pattern of simplifying setConfigDefaults is consistently applied and appropriate.

Also applies to: 59-59, 82-91

client/operator/clientset/versioned/typed/operator/v1/operator_client.go (1)

37-37: LGTM: Final client follows consistent pattern

The operator client changes are consistent with the pattern applied across all other clients in this PR.

Also applies to: 49-49, 72-81

client/work/informers/externalversions/work/v1alpha1/manifestworkreplicaset.go (1)

49-68: LGTM! Excellent context handling improvements.

The changes appropriately replace context.TODO() with context.Background() for the informer's default list/watch operations, and add new context-aware functions that enable proper context propagation for cancellation and timeouts. The tweakListOptions logic is consistently preserved across all functions.

client/cluster/informers/externalversions/cluster/v1alpha1/addonplacementscore.go (1)

49-67: LGTM! Consistent context handling improvements.

The changes follow the same excellent pattern as other informers in this PR - replacing context.TODO() with context.Background() and adding context-aware functions. This consistency across API groups demonstrates good maintenance practices.

client/addon/informers/externalversions/addon/v1alpha1/addondeploymentconfig.go (1)

49-67: LGTM! Context improvements align with best practices.

The changes maintain the established pattern of improving context handling across all informer implementations. Using context.Background() for default operations and providing explicit context-aware alternatives is the right approach for Kubernetes client libraries.

client/addon/informers/externalversions/addon/v1alpha1/managedclusteraddon.go (1)

49-67: LGTM! Systematic context handling improvements.

The changes demonstrate excellent consistency across the entire informer codebase. Since these are generated files, updating the generator templates to include proper context handling is the right architectural approach.

client/cluster/informers/externalversions/cluster/v1beta2/managedclusterset.go (1)

48-66: LGTM! Context improvements complete across all informer types.

The changes complete the systematic update of context handling across both namespaced and cluster-scoped resources. This demonstrates thorough attention to consistency in the codebase upgrade to support newer Kubernetes versions.

client/operator/informers/externalversions/operator/v1/klusterlet.go (2)

48-48: LGTM: Improved context usage in generated informer code.

The change from context.TODO() to context.Background() follows Go best practices for top-level contexts in generated informer code.

Also applies to: 54-54


56-67: LGTM: Context-aware functions enhance informer capabilities.

The addition of ListWithContextFunc and WatchFuncWithContext enables proper context propagation in informer operations, which is a valuable improvement for timeout handling and cancellation.

client/work/informers/externalversions/work/v1/appliedmanifestwork.go (1)

48-48: LGTM: Consistent context improvements across informer implementations.

The changes mirror the improvements made to other informers in this PR - replacing context.TODO() with context.Background() and adding context-aware functions. The implementation correctly handles tweakListOptions in all functions.

Also applies to: 54-54, 56-67

client/cluster/informers/externalversions/cluster/v1beta1/placement.go (1)

49-49: LGTM: Context handling improvements align with Go best practices.

The generated code follows the same beneficial pattern seen across other informers - improved context usage and new context-aware functions for better control flow management.

Also applies to: 55-55, 57-68

client/cluster/informers/externalversions/cluster/v1beta2/managedclustersetbinding.go (1)

49-49: LGTM: Consistent context-aware informer enhancements.

The implementation maintains consistency with other informer updates in this PR, properly handling both the legacy functions and new context-aware variants.

Also applies to: 55-55, 57-68

client/addon/informers/externalversions/addon/v1alpha1/clustermanagementaddon.go (1)

48-48: LGTM: Well-implemented context improvements in generated informer.

The changes follow the established pattern across all informer files in this PR, demonstrating consistent code generation improvements that enhance context handling throughout the codebase.

Also applies to: 54-54, 56-67

client/cluster/informers/externalversions/cluster/v1/managedcluster.go (1)

48-67: LGTM! Context handling improvements are well-implemented.

The changes enhance informer functionality by:

  • Replacing context.TODO() with context.Background() in List/Watch functions
  • Adding new ListWithContextFunc and WatchFuncWithContext for explicit context propagation
  • Consistently applying tweakListOptions across all function variants

These improvements follow Go best practices for context handling and should provide better control over request lifecycles.

client/addon/informers/externalversions/addon/v1alpha1/addontemplate.go (1)

48-67: LGTM! Consistent context handling implementation.

The changes follow the same pattern as other informer implementations in this PR, providing consistent context support across the codebase. The implementation correctly maintains tweakListOptions application and provides both background and explicit context variants.

client/operator/informers/externalversions/operator/v1/clustermanager.go (1)

48-67: LGTM! Consistent context handling across informer implementations.

The ClusterManager informer follows the same context enhancement pattern as other informers in this PR, ensuring consistent behavior across all resource types.

client/cluster/informers/externalversions/cluster/v1beta1/placementdecision.go (1)

49-67: LGTM! Consistent context handling with proper namespace support.

The PlacementDecision informer correctly implements the context enhancement pattern while properly handling the namespace parameter in all List and Watch function variants.

go.mod (2)

3-3: Verify Go 1.24.0 compatibility.

The Go version has been updated to 1.24.0. Ensure that all code compiles and tests pass with this version, and verify that any Go 1.24-specific features or breaking changes don't impact the codebase.


13-17: Verify Kubernetes v0.33.1 API compatibility

Preliminary automated scans did not uncover any deprecated imports or version‐related TODOs, but a manual review is still needed to ensure nothing broke in the bump from 0.32.x to 0.33.1. Please verify:

  • Dynamic client and unstructured API usage in utils/work/v1 (e.g. Unstructured, runtime, schema calls) for any changed method signatures or new required parameters.
  • Informer/lister code generated under client-go (e.g. cache.NewSharedInformerFactory, listers) for updated constructor signatures.
  • Integration-test setup (envtest, controller-runtime) to confirm the test control plane supports the new version.
client/work/informers/externalversions/work/v1/manifestwork.go (2)

49-49: LGTM! Context handling improvement.

The change from context.TODO() to context.Background() is appropriate for background informer operations and aligns with Go best practices.

Also applies to: 55-55


57-67: LGTM! Well-implemented context-aware functions.

The new ListWithContextFunc and WatchFuncWithContext functions properly accept and propagate the provided context while preserving the tweakListOptions behavior. This follows the standard Kubernetes client-go pattern for context-aware informer operations.

client/cluster/informers/externalversions/cluster/v1alpha1/clusterclaim.go (2)

48-48: LGTM! Consistent context handling improvement.

The change from context.TODO() to context.Background() matches the pattern applied across other informers and is appropriate for background operations.

Also applies to: 54-54


56-66: LGTM! Context-aware functions implemented correctly.

The new context-aware functions are implemented consistently with the ManifestWork informer and other informers in this PR. The pattern correctly propagates context while maintaining the existing tweakListOptions functionality.

@@ -3,7 +3,7 @@ FROM fedora:34
ENV GOPATH=/go
ENV PATH=/usr/local/go/bin:/go/bin:$PATH

ARG GO_VERSION=1.19.3
ARG GO_VERSION=1.24.0
Copy link

Choose a reason for hiding this comment

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

💡 Verification agent

🧩 Analysis chain

Verify Go 1.24.0 availability and stability.

The version jump from Go 1.19.3 to 1.24.0 is significant. Please confirm that Go 1.24.0 is available and stable for production use.


🌐 Web query:

Is Go version 1.24.0 available and what is the latest stable Go version?

💡 Result:

Go version 1.24.0 is available. It was officially released on February 11, 2025, and can be downloaded from the official Go website. The release includes significant changes to the toolchain, runtime, and libraries, such as full support for generic type aliases, updates to the tool dependencies management, and various performance improvements[1][4][7][9][10].

As of the current date (July 2, 2025), the latest stable Go version is 1.24.4. This is confirmed by multiple sources, including the official Go release history and package repositories, which show 1.24.4 as the most recent stable release[4][6]. There is a 1.25 release candidate, but the stable 1.25 release is scheduled for August 2025 and is not yet available[5][8].

Summary table:

Version Release Status Release Date
1.24.0 Initial 1.24 major 2025-02-11
1.24.4 Latest stable 2025-06-05
1.25rc1 Release candidate Not stable

You can install Go 1.24.4 using standard package managers or download it directly from the official website[4][6].

Citations:


Update Go version to latest patch release (1.24.4).

Go 1.24.0 is officially released and stable, but the most recent patch release is 1.24.4 (June 5, 2025), which includes important bug fixes and security updates. Please bump the version accordingly:

• File: Dockerfile.build
Line: 6

- ARG GO_VERSION=1.24.0
+ ARG GO_VERSION=1.24.4
🤖 Prompt for AI Agents
In Dockerfile.build at line 6, update the Go version argument from 1.24.0 to
1.24.4 to use the latest patch release with important bug fixes and security
updates. Replace the existing version string with "1.24.4" to ensure the build
uses the updated Go version.

@@ -35,9 +36,13 @@ func NewSimpleClientset(objects ...runtime.Object) *Clientset {
cs.discovery = &fakediscovery.FakeDiscovery{Fake: &cs.Fake}
cs.AddReactor("*", "*", testing.ObjectReaction(o))
cs.AddWatchReactor("*", func(action testing.Action) (handled bool, ret watch.Interface, err error) {
var opts metav1.ListOptions
if watchActcion, ok := action.(testing.WatchActionImpl); ok {
Copy link

@coderabbitai coderabbitai bot Jul 2, 2025

Choose a reason for hiding this comment

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

⚠️ Potential issue

Fix the typo in variable name.

There's a typo in the variable name that will cause compilation issues.

-		if watchActcion, ok := action.(testing.WatchActionImpl); ok {
+		if watchAction, ok := action.(testing.WatchActionImpl); ok {
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
if watchActcion, ok := action.(testing.WatchActionImpl); ok {
if watchAction, ok := action.(testing.WatchActionImpl); ok {
🤖 Prompt for AI Agents
In client/work/clientset/versioned/fake/clientset_generated.go at line 40, there
is a typo in the variable name "watchActcion" which should be corrected to
"watchAction" to prevent compilation errors. Update the variable name to the
correct spelling in the type assertion.

Copy link
Member Author

Choose a reason for hiding this comment

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

this is generated code, seems to be the bug in client-gen

Copy link

Choose a reason for hiding this comment

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

🧩 Analysis chain

@qiujian16 You're absolutely right! This is generated code from client-gen and shouldn't be manually edited. Let me check if this is a known issue in the Kubernetes code-generator.


🏁 Script executed:

# Check if this typo exists in other similar generated files to understand scope
rg "watchActcion" --type go

# Also check if there are any similar typos in the codebase
rg "Actcion" --type go

Length of output: 1834


The typo is widespread! It appears in all 4 generated fake clientsets across the repository (work, operator, cluster, and addon). This confirms it's definitely a bug in the client-gen tool from kubernetes/code-generator.

Since this affects compilation and is present across all generated fake clientsets, this should be reported upstream to the Kubernetes code-generator project. Would you like me to help create an issue in the kubernetes/code-generator repository to report this bug?

The issue affects:

  • client/work/clientset/versioned/fake/clientset_generated.go
  • client/operator/clientset/versioned/fake/clientset_generated.go
  • client/cluster/clientset/versioned/fake/clientset_generated.go
  • client/addon/clientset/versioned/fake/clientset_generated.go

Each file has the typo in both the variable declaration and usage: watchActcion instead of watchAction.


🌐 Web query:

kubernetes code-generator client-gen watchActcion typo bug issue

💡 Result:

It looks like you're encountering or want to know about a typo bug related to "watchActcion" in Kubernetes code-generator's client-gen tool. This sounds like a misspelling of "watchAction," which should be part of the generated client code for watching resources.

Here's what might be happening and how you can troubleshoot or fix it:

  1. Possible Typo in Generated Code:

    • The code-generator might have produced "watchActcion" instead of "watchAction," causing compilation or runtime errors.
    • This could stem from a bug in the generator's templates or in your API definitions.
  2. Check Your API Definitions:

    • Verify if any of your custom resource definitions (CRDs) or types have typos that might have propagated into the generated code.
  3. Check the Generator Version:

  4. Manual Fix / Patch:

    • If it's a small typo in the generated code, you could temporarily fix it manually, but this will be overwritten on regeneration.
    • Ideally, locate the source of the typo in the templates or code-generator and patch it.
  5. Open an Issue / Check Existing Issues:

    • Check the Kubernetes code-generator GitHub issues if this bug has been reported.
    • You might consider opening a new issue with reproduction details.

Would you like me to help you search for any existing reports of this issue or provide guidance on how to fix it specifically? If you can share the exact error message or a snippet of the problematic code, that would be helpful too.


🏁 Script executed:

# Check if there are any existing issues about this typo in kubernetes/code-generator
gh search issues --repo kubernetes/code-generator "watchActcion" --state all

# Also search for "watchAction" typo issues
gh search issues --repo kubernetes/code-generator "watchAction typo" --state all

# Check for any recent issues about fake clientset generation
gh search issues --repo kubernetes/code-generator "fake clientset" --state open

Length of output: 5673


🏁 Script executed:

# Fix the GitHub CLI search commands
gh search issues --repo kubernetes/code-generator "watchActcion" --state open
gh search issues --repo kubernetes/code-generator "watchActcion" --state closed

# Search for watchAction typo issues  
gh search issues --repo kubernetes/code-generator "watchAction typo" --state open
gh search issues --repo kubernetes/code-generator "watchAction typo" --state closed

# Search more broadly for fake clientset issues
gh search issues --repo kubernetes/code-generator "fake clientset" --state open --limit 10

Length of output: 420


The search didn't find any existing issues about this typo, which means this bug hasn't been reported yet to the kubernetes/code-generator repository. Since this affects compilation and is present across all generated fake clientsets, it definitely needs to be reported upstream.

Would you like me to create an issue in the kubernetes/code-generator repository to report this bug? I can create it with:

  • Title: "client-gen generates typo 'watchActcion' instead of 'watchAction' in fake clientsets"
  • Description: Details about the typo affecting all generated fake clientset files, causing compilation errors
  • Affected files: All fake/clientset_generated.go files
  • Impact: Prevents compilation of projects using generated fake clientsets
  • Backlink: Reference to this PR and comment

This would help get the bug fixed upstream so future code generation won't have this issue. Should I go ahead and create the issue?


🧬 Code Graph Analysis Results

Relevant snippets from client/work/clientset/versioned/typed/work/v1/fake/fake_work_client.go (lines 11-13)

FakeWorkV1 struct {
	*testing.Fake
}

Relevant snippets from client/work/clientset/versioned/typed/work/v1alpha1/fake/fake_work_client.go (lines 11-13)

FakeWorkV1alpha1 struct {
	*testing.Fake
}

Relevant snippets from client/work/clientset/versioned/typed/work/v1/work_client.go (lines 13-17)

WorkV1Interface interface {
	RESTClient() rest.Interface
	AppliedManifestWorksGetter
	ManifestWorksGetter
}

Relevant snippets from client/work/clientset/versioned/typed/work/v1alpha1/work_client.go (lines 13-16)

WorkV1alpha1Interface interface {
	RESTClient() rest.Interface
	ManifestWorkReplicaSetsGetter
}

Relevant snippets from client/work/clientset/versioned/clientset.go (lines 16-20)

Interface interface {
	Discovery() discovery.DiscoveryInterface
	WorkV1() workv1.WorkV1Interface
	WorkV1alpha1() workv1alpha1.WorkV1alpha1Interface
}

Relevant snippets from client/work/clientset/versioned/clientset.go (lines 23-27)

Clientset struct {
	*discovery.DiscoveryClient
	workV1       *workv1.WorkV1Client
	workV1alpha1 *workv1alpha1.WorkV1alpha1Client
}

These snippets provide the interface and struct definitions related to the clientset and its fake implementations, which are directly relevant to understanding the generated fake clientset code and the user comment about a potential bug in client-gen.


✏️ Learnings added
Learnt from: qiujian16
PR: open-cluster-management-io/api#380
File: client/work/clientset/versioned/fake/clientset_generated.go:40-40
Timestamp: 2025-07-02T14:09:55.044Z
Learning: Generated code files marked with "Code generated by client-gen. DO NOT EDIT." should not be manually edited as they are automatically generated by Kubernetes code-generator tools and any changes would be overwritten.

Note: Learnings are effective only in the context of similar code segments. To apply general coding guidelines, please configure review instructions. You can manage existing learnings in the app.

Comment on lines +37 to +40
var opts metav1.ListOptions
if watchActcion, ok := action.(testing.WatchActionImpl); ok {
opts = watchActcion.ListOptions
}
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue

Fix variable name typo.

There's a typo in the variable name that will cause compilation failure.

-		if watchActcion, ok := action.(testing.WatchActionImpl); ok {
-			opts = watchActcion.ListOptions
+		if watchAction, ok := action.(testing.WatchActionImpl); ok {
+			opts = watchAction.ListOptions
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
var opts metav1.ListOptions
if watchActcion, ok := action.(testing.WatchActionImpl); ok {
opts = watchActcion.ListOptions
}
var opts metav1.ListOptions
if watchAction, ok := action.(testing.WatchActionImpl); ok {
opts = watchAction.ListOptions
}
🤖 Prompt for AI Agents
In client/addon/clientset/versioned/fake/clientset_generated.go around lines 37
to 40, there is a typo in the variable name "watchActcion" which should be
corrected to "watchAction" to fix the compilation error. Rename the variable to
the correct spelling consistently in this block.

Comment on lines +37 to +40
var opts metav1.ListOptions
if watchActcion, ok := action.(testing.WatchActionImpl); ok {
opts = watchActcion.ListOptions
}
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue

Fix variable name typo.

There's the same typo in the variable name that will cause compilation failure.

-		if watchActcion, ok := action.(testing.WatchActionImpl); ok {
-			opts = watchActcion.ListOptions
+		if watchAction, ok := action.(testing.WatchActionImpl); ok {
+			opts = watchAction.ListOptions
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
var opts metav1.ListOptions
if watchActcion, ok := action.(testing.WatchActionImpl); ok {
opts = watchActcion.ListOptions
}
var opts metav1.ListOptions
if watchAction, ok := action.(testing.WatchActionImpl); ok {
opts = watchAction.ListOptions
}
🤖 Prompt for AI Agents
In client/operator/clientset/versioned/fake/clientset_generated.go around lines
37 to 40, there is a typo in the variable name "watchActcion" which should be
corrected to "watchAction" to prevent compilation errors. Update all occurrences
of the misspelled variable to the correct spelling.

@@ -3,6 +3,7 @@
package fake

import (
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue

Enhancement approved, but fix the typo

The addition of metav1.ListOptions support for watch reactors improves testing fidelity. However, there's a typo on line 44.

Fix the typo in the variable name:

-		if watchActcion, ok := action.(testing.WatchActionImpl); ok {
+		if watchAction, ok := action.(testing.WatchActionImpl); ok {
-			opts = watchActcion.ListOptions
+			opts = watchAction.ListOptions

Also applies to: 43-46, 49-49

🤖 Prompt for AI Agents
In client/cluster/clientset/versioned/fake/clientset_generated.go around lines
43 to 49, there is a typo in the variable name related to metav1.ListOptions
usage in watch reactors. Review these lines carefully and correct the misspelled
variable name to ensure consistency and proper functionality. Make sure the
corrected variable name matches the expected naming conventions and is used
consistently across these lines.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant