Merge https://github.com/kubernetes/cloud-provider-gcp:master (f4eae5e) into main#104
Merge https://github.com/kubernetes/cloud-provider-gcp:master (f4eae5e) into main#104cloud-team-rebase-bot[bot] wants to merge 62 commits into
Conversation
feat: enforce release branch matches k8s version
…d-seed chore: remove deprecated rand.Seed usage
…again feat(metis): Add build-tarball target and remove local image load
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
WalkthroughRefactors Metis daemon into a context-aware package with a UDS gRPC Adaptive IPAM server backed by a new SQLite store, removes legacy ipam store/tests, adds extensive tests, upgrades Go/Kubernetes deps, and introduces CI/release tooling (auto-tag, dependabot/workflows, verify scripts) and build tweaks. Changes
Sequence Diagram(s)sequenceDiagram
participant Client as gRPC Client
participant Server as adaptiveIpamServer
participant Daemon as Daemon.Run
participant Store as Store
participant DB as SQLite DB
Client->>Server: AllocatePodIP(request)
activate Server
Server->>Store: AllocateIPv4(ctx, network, iface, containerID)
activate Store
alt Idempotent fast-path
Store->>DB: SELECT existing allocation
DB-->>Store: existing row
Store-->>Server: return existing IP
else New allocation (retry loop)
loop until success / timeout
Store->>DB: BEGIN TRANSACTION
Store->>DB: SELECT Ready CIDR with capacity
Store->>DB: UPDATE/INSERT allocation rows
DB-->>Store: COMMIT or transient error
end
Store-->>Server: allocated IP or error
end
deactivate Store
Server-->>Client: Respond with IP or gRPC error
deactivate Server
Estimated code review effort🎯 4 (Complex) | ⏱️ ~55 minutes 🚥 Pre-merge checks | ✅ 9 | ❌ 3❌ Failed checks (2 warnings, 1 inconclusive)
✅ Passed checks (9 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
|
Hi @cloud-team-rebase-bot[bot]. Thanks for your PR. I'm waiting for a openshift member to verify that this patch is reasonable to test. If it is, they should reply with Regular contributors should join the org to skip this step. Once the patch is verified, the new status will be reflected by the I understand the commands that are listed here. DetailsInstructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |
There was a problem hiding this comment.
Actionable comments posted: 2
🧹 Nitpick comments (1)
metis/Makefile (1)
77-77: Narrow cleanup scope to the configured tarball path.Line 77 deletes all
*.tarfiles inmetis/, which can remove unrelated local artifacts. Prefer deleting only$(OCI_TARBALL_PATH).As per coding guidelines, "Focus on major issues impacting performance, readability, maintainability and security. Avoid nitpicks and avoid verbosity."Proposed change
clean: ## Clean up build artifacts. rm -rf bin - rm -rf *.tar + rm -f "$(OCI_TARBALL_PATH)" go clean🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@metis/Makefile` at line 77, The cleanup command currently removes all tar files via "rm -rf *.tar"; change the Makefile cleanup to remove only the configured tarball by using the $(OCI_TARBALL_PATH) variable (replace the "*.tar" usage), and add a guard so rm is only run when $(OCI_TARBALL_PATH) is non-empty (e.g., conditional check or test -n) to avoid accidental deletion if the variable is unset. This targets the rm -rf *.tar occurrence and the OCI_TARBALL_PATH Makefile variable.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@metis/Makefile`:
- Around line 101-102: The Makefile currently hard-codes --provenance=false and
--sbom=false for the build-tarball step; change these into configurable Makefile
variables (e.g., PROVENANCE and SBOM) defaulting to true and use them in the
build command (replace the literal flags with --provenance=$(PROVENANCE) and
--sbom=$(SBOM) or equivalent) so callers can override them when needed and the
defaults preserve attestations; also update any README or target comment near
the build-tarball target to document how to override these variables.
In `@tools/check-kubernetes-version.sh`:
- Around line 39-47: The current extraction of VERSION_STRING using piped grep
can cause the script to exit early under set -e -o pipefail if no match is
found; update the logic around VERSION_STRING (the grep pipeline that sets
VERSION_STRING) to avoid causing a fatal exit (e.g., run the pipeline with a
safe fallback like appending "|| true" or temporarily disable errexit around
that command), then keep the existing regex check against VERSION_STRING (the if
[[ "$VERSION_STRING" =~ v0\.([0-9]+)\. ]], using BASH_REMATCH to set
ACTUAL_MINOR) and retain the fallback error message and exit 1 when no version
is determined.
---
Nitpick comments:
In `@metis/Makefile`:
- Line 77: The cleanup command currently removes all tar files via "rm -rf
*.tar"; change the Makefile cleanup to remove only the configured tarball by
using the $(OCI_TARBALL_PATH) variable (replace the "*.tar" usage), and add a
guard so rm is only run when $(OCI_TARBALL_PATH) is non-empty (e.g., conditional
check or test -n) to avoid accidental deletion if the variable is unset. This
targets the rm -rf *.tar occurrence and the OCI_TARBALL_PATH Makefile variable.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: 0cae7af0-f2cb-446a-b463-490878b9138a
⛔ Files ignored due to path filters (294)
go.workis excluded by!**/*.workmetis/go.sumis excluded by!**/*.sumvendor/github.com/Masterminds/semver/v3/.gitignoreis excluded by!vendor/**,!**/vendor/**vendor/github.com/Masterminds/semver/v3/.golangci.ymlis excluded by!vendor/**,!**/vendor/**vendor/github.com/Masterminds/semver/v3/CHANGELOG.mdis excluded by!vendor/**,!**/vendor/**vendor/github.com/Masterminds/semver/v3/LICENSE.txtis excluded by!vendor/**,!**/vendor/**vendor/github.com/Masterminds/semver/v3/Makefileis excluded by!vendor/**,!**/vendor/**vendor/github.com/Masterminds/semver/v3/README.mdis excluded by!vendor/**,!**/vendor/**vendor/github.com/Masterminds/semver/v3/SECURITY.mdis excluded by!vendor/**,!**/vendor/**vendor/github.com/Masterminds/semver/v3/collection.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/Masterminds/semver/v3/constraints.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/Masterminds/semver/v3/doc.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/Masterminds/semver/v3/version.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/distribution/reference/.gitattributesis excluded by!vendor/**,!**/vendor/**vendor/github.com/distribution/reference/.gitignoreis excluded by!vendor/**,!**/vendor/**vendor/github.com/distribution/reference/.golangci.ymlis excluded by!vendor/**,!**/vendor/**vendor/github.com/distribution/reference/CODE-OF-CONDUCT.mdis excluded by!vendor/**,!**/vendor/**vendor/github.com/distribution/reference/CONTRIBUTING.mdis excluded by!vendor/**,!**/vendor/**vendor/github.com/distribution/reference/GOVERNANCE.mdis excluded by!vendor/**,!**/vendor/**vendor/github.com/distribution/reference/LICENSEis excluded by!vendor/**,!**/vendor/**vendor/github.com/distribution/reference/MAINTAINERSis excluded by!vendor/**,!**/vendor/**vendor/github.com/distribution/reference/Makefileis excluded by!vendor/**,!**/vendor/**vendor/github.com/distribution/reference/README.mdis excluded by!vendor/**,!**/vendor/**vendor/github.com/distribution/reference/SECURITY.mdis excluded by!vendor/**,!**/vendor/**vendor/github.com/distribution/reference/distribution-logo.svgis excluded by!**/*.svg,!vendor/**,!**/vendor/**vendor/github.com/distribution/reference/helpers.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/distribution/reference/normalize.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/distribution/reference/reference.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/distribution/reference/regexp.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/distribution/reference/sort.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-task/slim-sprig/v3/.editorconfigis excluded by!vendor/**,!**/vendor/**vendor/github.com/go-task/slim-sprig/v3/.gitattributesis excluded by!vendor/**,!**/vendor/**vendor/github.com/go-task/slim-sprig/v3/.gitignoreis excluded by!vendor/**,!**/vendor/**vendor/github.com/go-task/slim-sprig/v3/CHANGELOG.mdis excluded by!vendor/**,!**/vendor/**vendor/github.com/go-task/slim-sprig/v3/LICENSE.txtis excluded by!vendor/**,!**/vendor/**vendor/github.com/go-task/slim-sprig/v3/README.mdis excluded by!vendor/**,!**/vendor/**vendor/github.com/go-task/slim-sprig/v3/Taskfile.ymlis excluded by!vendor/**,!**/vendor/**vendor/github.com/go-task/slim-sprig/v3/crypto.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-task/slim-sprig/v3/date.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-task/slim-sprig/v3/defaults.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-task/slim-sprig/v3/dict.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-task/slim-sprig/v3/doc.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-task/slim-sprig/v3/functions.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-task/slim-sprig/v3/list.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-task/slim-sprig/v3/network.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-task/slim-sprig/v3/numeric.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-task/slim-sprig/v3/reflect.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-task/slim-sprig/v3/regex.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-task/slim-sprig/v3/strings.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/go-task/slim-sprig/v3/url.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/google/pprof/AUTHORSis excluded by!vendor/**,!**/vendor/**vendor/github.com/google/pprof/CONTRIBUTORSis excluded by!vendor/**,!**/vendor/**vendor/github.com/google/pprof/LICENSEis excluded by!vendor/**,!**/vendor/**vendor/github.com/google/pprof/profile/encode.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/google/pprof/profile/filter.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/google/pprof/profile/index.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/google/pprof/profile/legacy_java_profile.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/google/pprof/profile/legacy_profile.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/google/pprof/profile/merge.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/google/pprof/profile/profile.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/google/pprof/profile/proto.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/google/pprof/profile/prune.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/gorilla/websocket/.gitignoreis excluded by!vendor/**,!**/vendor/**vendor/github.com/gorilla/websocket/AUTHORSis excluded by!vendor/**,!**/vendor/**vendor/github.com/gorilla/websocket/LICENSEis excluded by!vendor/**,!**/vendor/**vendor/github.com/gorilla/websocket/README.mdis excluded by!vendor/**,!**/vendor/**vendor/github.com/gorilla/websocket/client.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/gorilla/websocket/compression.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/gorilla/websocket/conn.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/gorilla/websocket/doc.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/gorilla/websocket/join.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/gorilla/websocket/json.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/gorilla/websocket/mask.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/gorilla/websocket/mask_safe.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/gorilla/websocket/prepared.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/gorilla/websocket/proxy.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/gorilla/websocket/server.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/gorilla/websocket/util.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/mattn/go-sqlite3/.codecov.ymlis excluded by!vendor/**,!**/vendor/**vendor/github.com/mattn/go-sqlite3/.gitignoreis excluded by!vendor/**,!**/vendor/**vendor/github.com/mattn/go-sqlite3/LICENSEis excluded by!vendor/**,!**/vendor/**vendor/github.com/mattn/go-sqlite3/README.mdis excluded by!vendor/**,!**/vendor/**vendor/github.com/mattn/go-sqlite3/backup.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/mattn/go-sqlite3/callback.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/mattn/go-sqlite3/convert.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/mattn/go-sqlite3/doc.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/mattn/go-sqlite3/error.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/mattn/go-sqlite3/sqlite3-binding.cis excluded by!vendor/**,!**/vendor/**vendor/github.com/mattn/go-sqlite3/sqlite3-binding.his excluded by!vendor/**,!**/vendor/**vendor/github.com/mattn/go-sqlite3/sqlite3.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/mattn/go-sqlite3/sqlite3_context.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/mattn/go-sqlite3/sqlite3_func_crypt.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/mattn/go-sqlite3/sqlite3_go18.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/mattn/go-sqlite3/sqlite3_libsqlite3.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/mattn/go-sqlite3/sqlite3_load_extension.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/mattn/go-sqlite3/sqlite3_load_extension_omit.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/mattn/go-sqlite3/sqlite3_opt_allow_uri_authority.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/mattn/go-sqlite3/sqlite3_opt_app_armor.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/mattn/go-sqlite3/sqlite3_opt_column_metadata.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/mattn/go-sqlite3/sqlite3_opt_foreign_keys.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/mattn/go-sqlite3/sqlite3_opt_fts5.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/mattn/go-sqlite3/sqlite3_opt_icu.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/mattn/go-sqlite3/sqlite3_opt_introspect.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/mattn/go-sqlite3/sqlite3_opt_math_functions.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/mattn/go-sqlite3/sqlite3_opt_os_trace.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/mattn/go-sqlite3/sqlite3_opt_percentile.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/mattn/go-sqlite3/sqlite3_opt_preupdate.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/mattn/go-sqlite3/sqlite3_opt_preupdate_hook.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/mattn/go-sqlite3/sqlite3_opt_preupdate_omit.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/mattn/go-sqlite3/sqlite3_opt_secure_delete.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/mattn/go-sqlite3/sqlite3_opt_secure_delete_fast.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/mattn/go-sqlite3/sqlite3_opt_serialize.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/mattn/go-sqlite3/sqlite3_opt_serialize_omit.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/mattn/go-sqlite3/sqlite3_opt_stat4.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/mattn/go-sqlite3/sqlite3_opt_unlock_notify.cis excluded by!vendor/**,!**/vendor/**vendor/github.com/mattn/go-sqlite3/sqlite3_opt_unlock_notify.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/mattn/go-sqlite3/sqlite3_opt_userauth.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/mattn/go-sqlite3/sqlite3_opt_userauth_omit.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/mattn/go-sqlite3/sqlite3_opt_vacuum_full.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/mattn/go-sqlite3/sqlite3_opt_vacuum_incr.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/mattn/go-sqlite3/sqlite3_opt_vtable.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/mattn/go-sqlite3/sqlite3_other.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/mattn/go-sqlite3/sqlite3_solaris.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/mattn/go-sqlite3/sqlite3_trace.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/mattn/go-sqlite3/sqlite3_type.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/mattn/go-sqlite3/sqlite3_usleep_windows.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/mattn/go-sqlite3/sqlite3_windows.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/mattn/go-sqlite3/sqlite3ext.his excluded by!vendor/**,!**/vendor/**vendor/github.com/mattn/go-sqlite3/static_mock.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/moby/spdystream/CONTRIBUTING.mdis excluded by!vendor/**,!**/vendor/**vendor/github.com/moby/spdystream/LICENSEis excluded by!vendor/**,!**/vendor/**vendor/github.com/moby/spdystream/MAINTAINERSis excluded by!vendor/**,!**/vendor/**vendor/github.com/moby/spdystream/NOTICEis excluded by!vendor/**,!**/vendor/**vendor/github.com/moby/spdystream/README.mdis excluded by!vendor/**,!**/vendor/**vendor/github.com/moby/spdystream/connection.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/moby/spdystream/handlers.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/moby/spdystream/priority.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/moby/spdystream/spdy/dictionary.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/moby/spdystream/spdy/read.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/moby/spdystream/spdy/types.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/moby/spdystream/spdy/write.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/moby/spdystream/stream.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/moby/spdystream/utils.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/mxk/go-flowrate/LICENSEis excluded by!vendor/**,!**/vendor/**vendor/github.com/mxk/go-flowrate/flowrate/flowrate.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/mxk/go-flowrate/flowrate/io.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/mxk/go-flowrate/flowrate/util.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/.gitignoreis excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/CHANGELOG.mdis excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/CONTRIBUTING.mdis excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/LICENSEis excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/Makefileis excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/README.mdis excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/RELEASING.mdis excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/config/deprecated.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/core_dsl.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/decorator_dsl.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/deprecated_dsl.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/formatter/colorable_others.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/formatter/colorable_windows.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/formatter/formatter.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/ginkgo/automaxprocs.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/ginkgo/automaxprocs/README.mdis excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/ginkgo/automaxprocs/automaxprocs.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/ginkgo/automaxprocs/cgroup.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/ginkgo/automaxprocs/cgroups.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/ginkgo/automaxprocs/cgroups2.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/ginkgo/automaxprocs/cpu_quota_linux.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/ginkgo/automaxprocs/cpu_quota_unsupported.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/ginkgo/automaxprocs/errors.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/ginkgo/automaxprocs/mountpoint.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/ginkgo/automaxprocs/runtime.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/ginkgo/automaxprocs/subsys.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/ginkgo/build/build_command.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/ginkgo/command/abort.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/ginkgo/command/command.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/ginkgo/command/program.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/ginkgo/generators/boostrap_templates.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/ginkgo/generators/bootstrap_command.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/ginkgo/generators/generate_command.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/ginkgo/generators/generate_templates.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/ginkgo/generators/generators_common.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/ginkgo/internal/compile.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/ginkgo/internal/gocovmerge.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/ginkgo/internal/profiles_and_reports.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/ginkgo/internal/run.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/ginkgo/internal/test_suite.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/ginkgo/internal/utils.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/ginkgo/internal/verify_version.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/ginkgo/labels/labels_command.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/ginkgo/main.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/ginkgo/outline/ginkgo.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/ginkgo/outline/import.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/ginkgo/outline/outline.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/ginkgo/outline/outline_command.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/ginkgo/run/run_command.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/ginkgo/unfocus/unfocus_command.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/ginkgo/watch/delta.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/ginkgo/watch/delta_tracker.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/ginkgo/watch/dependencies.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/ginkgo/watch/package_hash.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/ginkgo/watch/package_hashes.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/ginkgo/watch/suite.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/ginkgo/watch/watch_command.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/ginkgo_cli_dependencies.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/ginkgo_t_dsl.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/internal/around_node.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/internal/counter.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/internal/failer.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/internal/focus.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/internal/global/init.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/internal/group.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/internal/interrupt_handler/interrupt_handler.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/internal/interrupt_handler/sigquit_swallower_unix.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/internal/interrupt_handler/sigquit_swallower_windows.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/internal/node.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/internal/ordering.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/internal/output_interceptor.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/internal/output_interceptor_unix.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/internal/output_interceptor_wasm.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/internal/output_interceptor_win.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/internal/parallel_support/client_server.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/internal/parallel_support/http_client.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/internal/parallel_support/http_server.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/internal/parallel_support/rpc_client.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/internal/parallel_support/rpc_server.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/internal/parallel_support/server_handler.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/internal/progress_report.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/internal/progress_report_bsd.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/internal/progress_report_unix.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/internal/progress_report_wasm.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/internal/progress_report_win.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/internal/progress_reporter_manager.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/internal/report_entry.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/internal/reporters/gojson.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/internal/reporters/gojson_event_writer.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/internal/reporters/gojson_reporter.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/internal/spec.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/internal/spec_context.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/internal/suite.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/internal/testingtproxy/testing_t_proxy.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/internal/tree.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/internal/writer.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/reporters/default_reporter.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/reporters/deprecated_reporter.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/reporters/gojson_report.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/reporters/json_report.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/reporters/junit_report.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/reporters/reporter.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/reporters/teamcity_report.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/reporting_dsl.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/table_dsl.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/types/around_node.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/types/code_location.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/types/config.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/types/deprecated_types.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/types/deprecation_support.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/types/enum_support.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/types/errors.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/types/file_filter.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/types/flags.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/types/label_filter.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/types/report_entry.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/types/semver_filter.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/types/types.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/ginkgo/v2/types/version.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/onsi/gomega/gcustom/make_matcher.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/opencontainers/go-digest/.mailmapis excluded by!vendor/**,!**/vendor/**vendor/github.com/opencontainers/go-digest/.pullapprove.ymlis excluded by!vendor/**,!**/vendor/**vendor/github.com/opencontainers/go-digest/.travis.ymlis excluded by!vendor/**,!**/vendor/**vendor/github.com/opencontainers/go-digest/CONTRIBUTING.mdis excluded by!vendor/**,!**/vendor/**vendor/github.com/opencontainers/go-digest/LICENSEis excluded by!vendor/**,!**/vendor/**vendor/github.com/opencontainers/go-digest/LICENSE.docsis excluded by!vendor/**,!**/vendor/**vendor/github.com/opencontainers/go-digest/MAINTAINERSis excluded by!vendor/**,!**/vendor/**vendor/github.com/opencontainers/go-digest/README.mdis excluded by!vendor/**,!**/vendor/**vendor/github.com/opencontainers/go-digest/algorithm.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/opencontainers/go-digest/digest.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/opencontainers/go-digest/digester.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/opencontainers/go-digest/doc.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/opencontainers/go-digest/verifiers.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/robfig/cron/v3/.gitignoreis excluded by!vendor/**,!**/vendor/**vendor/github.com/robfig/cron/v3/.travis.ymlis excluded by!vendor/**,!**/vendor/**vendor/github.com/robfig/cron/v3/LICENSEis excluded by!vendor/**,!**/vendor/**vendor/github.com/robfig/cron/v3/README.mdis excluded by!vendor/**,!**/vendor/**vendor/github.com/robfig/cron/v3/chain.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/robfig/cron/v3/constantdelay.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/robfig/cron/v3/cron.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/robfig/cron/v3/doc.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/robfig/cron/v3/logger.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/robfig/cron/v3/option.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/robfig/cron/v3/parser.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/robfig/cron/v3/spec.gois excluded by!vendor/**,!**/vendor/**vendor/golang.org/x/crypto/blowfish/block.gois excluded by!vendor/**,!**/vendor/**vendor/golang.org/x/crypto/blowfish/cipher.gois excluded by!vendor/**,!**/vendor/**
📒 Files selected for processing (6)
.github/workflows/check-version.ymlcmd/cloud-controller-manager/main.gometis/Makefiletest/e2e/suite_test.gotools/check-kubernetes-version.shtools/update_vendor.sh
💤 Files with no reviewable changes (2)
- test/e2e/suite_test.go
- cmd/cloud-controller-manager/main.go
| --provenance=false \ | ||
| --sbom=false . |
There was a problem hiding this comment.
Hard-coding --provenance=false and --sbom=false weakens artifact security metadata.
Lines 101-102 unconditionally disable attestations for every build-tarball output. Make these flags configurable (and enable by default where possible) so pipelines can preserve supply-chain guarantees.
Proposed change
OCI_TARBALL_PATH ?= metis.tar
+OCI_PROVENANCE ?= true
+OCI_SBOM ?= true
@@
docker buildx build --platform $(ALL_PLATFORMS) \
$(DOCKER_BUILD_ARGS) \
--output=type=oci,dest=$(OCI_TARBALL_PATH) \
- --provenance=false \
- --sbom=false .
+ --provenance=$(OCI_PROVENANCE) \
+ --sbom=$(OCI_SBOM) .🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@metis/Makefile` around lines 101 - 102, The Makefile currently hard-codes
--provenance=false and --sbom=false for the build-tarball step; change these
into configurable Makefile variables (e.g., PROVENANCE and SBOM) defaulting to
true and use them in the build command (replace the literal flags with
--provenance=$(PROVENANCE) and --sbom=$(SBOM) or equivalent) so callers can
override them when needed and the defaults preserve attestations; also update
any README or target comment near the build-tarball target to document how to
override these variables.
| VERSION_STRING=$(grep -E 'k8s.io/client-go' go.mod | grep -oE 'v0\.[0-9]+\.[0-9]+' | head -n 1) | ||
| echo "Found client-go version string: $VERSION_STRING" | ||
|
|
||
| if [[ "$VERSION_STRING" =~ v0\.([0-9]+)\. ]]; then | ||
| ACTUAL_MINOR="${BASH_REMATCH[1]}" | ||
| echo "Actual client-go minor version: $ACTUAL_MINOR" | ||
| else | ||
| echo "Could not determine client-go version from go.mod" | ||
| exit 1 |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
set -euo pipefail
tmp="$(mktemp -d)"
trap 'rm -rf "$tmp"' EXIT
cat > "$tmp/go.mod" <<'EOF'
module example
go 1.25.0
require (
k8s.io/api v0.35.1
)
EOF
echo "Reproducing current Line 39 behavior..."
if bash -c 'set -euo pipefail; VERSION_STRING=$(grep -E "k8s.io/client-go" "'"$tmp"'/go.mod" | grep -oE "v0\.[0-9]+\.[0-9]+" | head -n 1); echo "UNEXPECTED: reached";'; then
echo "UNEXPECTED: pipeline did not fail"
else
echo "Expected: shell exits before custom fallback block due errexit+pipefail"
fiRepository: openshift/cloud-provider-gcp
Length of output: 183
🏁 Script executed:
# Check if the file exists and read the relevant lines
if [ -f tools/check-kubernetes-version.sh ]; then
echo "=== File exists ==="
wc -l tools/check-kubernetes-version.sh
echo ""
echo "=== Lines 35-50 ==="
sed -n '35,50p' tools/check-kubernetes-version.sh
echo ""
echo "=== Lines 17-20 (errexit settings) ==="
sed -n '17,20p' tools/check-kubernetes-version.sh
else
echo "File not found: tools/check-kubernetes-version.sh"
fiRepository: openshift/cloud-provider-gcp
Length of output: 775
errexit/pipefail can abort before your explicit error handling runs
At Line 39, a no-match grep exits the script immediately under set -e -o pipefail, so the intended fallback message at Lines 46-47 is skipped.
Suggested hardening
-# Get version from go.mod
-VERSION_STRING=$(grep -E 'k8s.io/client-go' go.mod | grep -oE 'v0\.[0-9]+\.[0-9]+' | head -n 1)
+# Get version from go.mod
+VERSION_STRING="$(awk '$1=="k8s.io/client-go"{print $2; exit}' go.mod || true)"
echo "Found client-go version string: $VERSION_STRING"
-if [[ "$VERSION_STRING" =~ v0\.([0-9]+)\. ]]; then
+if [[ -z "${VERSION_STRING}" ]]; then
+ echo "Could not determine client-go version from go.mod"
+ exit 1
+fi
+
+if [[ "$VERSION_STRING" =~ ^v0\.([0-9]+)\.[0-9]+$ ]]; then
ACTUAL_MINOR="${BASH_REMATCH[1]}"
echo "Actual client-go minor version: $ACTUAL_MINOR"
else🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@tools/check-kubernetes-version.sh` around lines 39 - 47, The current
extraction of VERSION_STRING using piped grep can cause the script to exit early
under set -e -o pipefail if no match is found; update the logic around
VERSION_STRING (the grep pipeline that sets VERSION_STRING) to avoid causing a
fatal exit (e.g., run the pipeline with a safe fallback like appending "|| true"
or temporarily disable errexit around that command), then keep the existing
regex check against VERSION_STRING (the if [[ "$VERSION_STRING" =~
v0\.([0-9]+)\. ]], using BASH_REMATCH to set ACTUAL_MINOR) and retain the
fallback error message and exit 1 when no version is determined.
feat: add automation to create release tags
fix METIS_BINARY path in install-plugin.sh
feat: add workflow to auto tags release branch
b80f80b to
2c93d75
Compare
There was a problem hiding this comment.
🧹 Nitpick comments (2)
metis/Makefile (1)
77-77: Limit cleanup to the configured tarball path.Line 77 removes all
*.tarfiles inmetis/, which can delete unrelated artifacts. Prefer deleting$(OCI_TARBALL_PATH)only.Proposed adjustment
- rm -rf *.tar + rm -f $(OCI_TARBALL_PATH)🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@metis/Makefile` at line 77, The Makefile target currently uses a broad cleanup command "rm -rf *.tar" which can delete unrelated tar files; change it to remove only the configured tarball variable by replacing that command with a deletion of "$(OCI_TARBALL_PATH)" (use the OCI_TARBALL_PATH variable) so the cleanup is limited to the intended artifact and avoids wiping other .tar files.tools/auto-tag.sh (1)
44-54: Hardenclient-goversion parsing to avoid false matches.Line 44 matches any
k8s.io/client-gooccurrence ingo.mod; areplaceentry can accidentally drive tag generation.Proposed adjustment
- VERSION_STRING=$(grep -E 'k8s.io/client-go' go.mod | grep -oE 'v0\.[0-9]+\.[0-9]+' | head -n 1) + VERSION_STRING=$( + awk ' + $1=="require" && $2=="k8s.io/client-go" {print $3; exit} + $1=="k8s.io/client-go" {print $2; exit} + ' go.mod | grep -oE '^v0\.[0-9]+\.[0-9]+$' || true + ) echo "Found client-go version string: $VERSION_STRING" - if [[ "$VERSION_STRING" =~ v0\.([0-9]+)\.([0-9]+) ]]; then + if [[ -n "$VERSION_STRING" && "$VERSION_STRING" =~ v0\.([0-9]+)\.([0-9]+) ]]; then🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@tools/auto-tag.sh` around lines 44 - 54, The current VERSION_STRING extraction can capture k8s.io/client-go from replace lines; update the assignment that sets VERSION_STRING so it only considers go.mod lines that are actual module requirements (not replace directives) — i.e., filter out lines starting with "replace" and only match lines where k8s.io/client-go appears as a required module or on its own module/require line, then extract the v0.x.y token as before; update the pipeline that produces VERSION_STRING (and keep using VERSION_STRING, MINOR, PATCH) so tag generation is driven by the first non-replace require match.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Nitpick comments:
In `@metis/Makefile`:
- Line 77: The Makefile target currently uses a broad cleanup command "rm -rf
*.tar" which can delete unrelated tar files; change it to remove only the
configured tarball variable by replacing that command with a deletion of
"$(OCI_TARBALL_PATH)" (use the OCI_TARBALL_PATH variable) so the cleanup is
limited to the intended artifact and avoids wiping other .tar files.
In `@tools/auto-tag.sh`:
- Around line 44-54: The current VERSION_STRING extraction can capture
k8s.io/client-go from replace lines; update the assignment that sets
VERSION_STRING so it only considers go.mod lines that are actual module
requirements (not replace directives) — i.e., filter out lines starting with
"replace" and only match lines where k8s.io/client-go appears as a required
module or on its own module/require line, then extract the v0.x.y token as
before; update the pipeline that produces VERSION_STRING (and keep using
VERSION_STRING, MINOR, PATCH) so tag generation is driven by the first
non-replace require match.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Repository: openshift/coderabbit/.coderabbit.yaml
Review profile: CHILL
Plan: Pro
Run ID: 4db79557-3c68-4112-8b5a-b551bad21d8b
⛔ Files ignored due to path filters (288)
go.workis excluded by!**/*.workmetis/go.sumis excluded by!**/*.sumvendor/github.com/Masterminds/semver/v3/.gitignoreis excluded by!**/vendor/**,!vendor/**vendor/github.com/Masterminds/semver/v3/.golangci.ymlis excluded by!**/vendor/**,!vendor/**vendor/github.com/Masterminds/semver/v3/CHANGELOG.mdis excluded by!**/vendor/**,!vendor/**vendor/github.com/Masterminds/semver/v3/LICENSE.txtis excluded by!**/vendor/**,!vendor/**vendor/github.com/Masterminds/semver/v3/Makefileis excluded by!**/vendor/**,!vendor/**vendor/github.com/Masterminds/semver/v3/README.mdis excluded by!**/vendor/**,!vendor/**vendor/github.com/Masterminds/semver/v3/SECURITY.mdis excluded by!**/vendor/**,!vendor/**vendor/github.com/Masterminds/semver/v3/collection.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/Masterminds/semver/v3/constraints.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/Masterminds/semver/v3/doc.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/Masterminds/semver/v3/version.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/distribution/reference/.gitattributesis excluded by!**/vendor/**,!vendor/**vendor/github.com/distribution/reference/.gitignoreis excluded by!**/vendor/**,!vendor/**vendor/github.com/distribution/reference/.golangci.ymlis excluded by!**/vendor/**,!vendor/**vendor/github.com/distribution/reference/CODE-OF-CONDUCT.mdis excluded by!**/vendor/**,!vendor/**vendor/github.com/distribution/reference/CONTRIBUTING.mdis excluded by!**/vendor/**,!vendor/**vendor/github.com/distribution/reference/GOVERNANCE.mdis excluded by!**/vendor/**,!vendor/**vendor/github.com/distribution/reference/LICENSEis excluded by!**/vendor/**,!vendor/**vendor/github.com/distribution/reference/MAINTAINERSis excluded by!**/vendor/**,!vendor/**vendor/github.com/distribution/reference/Makefileis excluded by!**/vendor/**,!vendor/**vendor/github.com/distribution/reference/README.mdis excluded by!**/vendor/**,!vendor/**vendor/github.com/distribution/reference/SECURITY.mdis excluded by!**/vendor/**,!vendor/**vendor/github.com/distribution/reference/distribution-logo.svgis excluded by!**/*.svg,!**/vendor/**,!vendor/**vendor/github.com/distribution/reference/helpers.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/distribution/reference/normalize.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/distribution/reference/reference.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/distribution/reference/regexp.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/distribution/reference/sort.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-task/slim-sprig/v3/.editorconfigis excluded by!**/vendor/**,!vendor/**vendor/github.com/go-task/slim-sprig/v3/.gitattributesis excluded by!**/vendor/**,!vendor/**vendor/github.com/go-task/slim-sprig/v3/.gitignoreis excluded by!**/vendor/**,!vendor/**vendor/github.com/go-task/slim-sprig/v3/CHANGELOG.mdis excluded by!**/vendor/**,!vendor/**vendor/github.com/go-task/slim-sprig/v3/LICENSE.txtis excluded by!**/vendor/**,!vendor/**vendor/github.com/go-task/slim-sprig/v3/README.mdis excluded by!**/vendor/**,!vendor/**vendor/github.com/go-task/slim-sprig/v3/Taskfile.ymlis excluded by!**/vendor/**,!vendor/**vendor/github.com/go-task/slim-sprig/v3/crypto.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-task/slim-sprig/v3/date.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-task/slim-sprig/v3/defaults.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-task/slim-sprig/v3/dict.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-task/slim-sprig/v3/doc.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-task/slim-sprig/v3/functions.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-task/slim-sprig/v3/list.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-task/slim-sprig/v3/network.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-task/slim-sprig/v3/numeric.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-task/slim-sprig/v3/reflect.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-task/slim-sprig/v3/regex.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-task/slim-sprig/v3/strings.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/go-task/slim-sprig/v3/url.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/google/pprof/AUTHORSis excluded by!**/vendor/**,!vendor/**vendor/github.com/google/pprof/CONTRIBUTORSis excluded by!**/vendor/**,!vendor/**vendor/github.com/google/pprof/LICENSEis excluded by!**/vendor/**,!vendor/**vendor/github.com/google/pprof/profile/encode.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/google/pprof/profile/filter.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/google/pprof/profile/index.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/google/pprof/profile/legacy_java_profile.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/google/pprof/profile/legacy_profile.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/google/pprof/profile/merge.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/google/pprof/profile/profile.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/google/pprof/profile/proto.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/google/pprof/profile/prune.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/gorilla/websocket/.gitignoreis excluded by!**/vendor/**,!vendor/**vendor/github.com/gorilla/websocket/AUTHORSis excluded by!**/vendor/**,!vendor/**vendor/github.com/gorilla/websocket/LICENSEis excluded by!**/vendor/**,!vendor/**vendor/github.com/gorilla/websocket/README.mdis excluded by!**/vendor/**,!vendor/**vendor/github.com/gorilla/websocket/client.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/gorilla/websocket/compression.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/gorilla/websocket/conn.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/gorilla/websocket/doc.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/gorilla/websocket/join.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/gorilla/websocket/json.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/gorilla/websocket/mask.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/gorilla/websocket/mask_safe.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/gorilla/websocket/prepared.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/gorilla/websocket/proxy.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/gorilla/websocket/server.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/gorilla/websocket/util.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/mattn/go-sqlite3/.codecov.ymlis excluded by!**/vendor/**,!vendor/**vendor/github.com/mattn/go-sqlite3/.gitignoreis excluded by!**/vendor/**,!vendor/**vendor/github.com/mattn/go-sqlite3/LICENSEis excluded by!**/vendor/**,!vendor/**vendor/github.com/mattn/go-sqlite3/README.mdis excluded by!**/vendor/**,!vendor/**vendor/github.com/mattn/go-sqlite3/backup.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/mattn/go-sqlite3/callback.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/mattn/go-sqlite3/convert.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/mattn/go-sqlite3/doc.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/mattn/go-sqlite3/error.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/mattn/go-sqlite3/sqlite3-binding.cis excluded by!**/vendor/**,!vendor/**vendor/github.com/mattn/go-sqlite3/sqlite3-binding.his excluded by!**/vendor/**,!vendor/**vendor/github.com/mattn/go-sqlite3/sqlite3.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/mattn/go-sqlite3/sqlite3_context.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/mattn/go-sqlite3/sqlite3_func_crypt.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/mattn/go-sqlite3/sqlite3_go18.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/mattn/go-sqlite3/sqlite3_libsqlite3.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/mattn/go-sqlite3/sqlite3_load_extension.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/mattn/go-sqlite3/sqlite3_load_extension_omit.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/mattn/go-sqlite3/sqlite3_opt_allow_uri_authority.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/mattn/go-sqlite3/sqlite3_opt_app_armor.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/mattn/go-sqlite3/sqlite3_opt_column_metadata.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/mattn/go-sqlite3/sqlite3_opt_foreign_keys.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/mattn/go-sqlite3/sqlite3_opt_fts5.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/mattn/go-sqlite3/sqlite3_opt_icu.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/mattn/go-sqlite3/sqlite3_opt_introspect.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/mattn/go-sqlite3/sqlite3_opt_math_functions.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/mattn/go-sqlite3/sqlite3_opt_os_trace.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/mattn/go-sqlite3/sqlite3_opt_percentile.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/mattn/go-sqlite3/sqlite3_opt_preupdate.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/mattn/go-sqlite3/sqlite3_opt_preupdate_hook.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/mattn/go-sqlite3/sqlite3_opt_preupdate_omit.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/mattn/go-sqlite3/sqlite3_opt_secure_delete.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/mattn/go-sqlite3/sqlite3_opt_secure_delete_fast.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/mattn/go-sqlite3/sqlite3_opt_serialize.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/mattn/go-sqlite3/sqlite3_opt_serialize_omit.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/mattn/go-sqlite3/sqlite3_opt_stat4.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/mattn/go-sqlite3/sqlite3_opt_unlock_notify.cis excluded by!**/vendor/**,!vendor/**vendor/github.com/mattn/go-sqlite3/sqlite3_opt_unlock_notify.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/mattn/go-sqlite3/sqlite3_opt_userauth.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/mattn/go-sqlite3/sqlite3_opt_userauth_omit.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/mattn/go-sqlite3/sqlite3_opt_vacuum_full.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/mattn/go-sqlite3/sqlite3_opt_vacuum_incr.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/mattn/go-sqlite3/sqlite3_opt_vtable.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/mattn/go-sqlite3/sqlite3_other.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/mattn/go-sqlite3/sqlite3_solaris.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/mattn/go-sqlite3/sqlite3_trace.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/mattn/go-sqlite3/sqlite3_type.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/mattn/go-sqlite3/sqlite3_usleep_windows.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/mattn/go-sqlite3/sqlite3_windows.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/mattn/go-sqlite3/sqlite3ext.his excluded by!**/vendor/**,!vendor/**vendor/github.com/mattn/go-sqlite3/static_mock.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/moby/spdystream/CONTRIBUTING.mdis excluded by!**/vendor/**,!vendor/**vendor/github.com/moby/spdystream/LICENSEis excluded by!**/vendor/**,!vendor/**vendor/github.com/moby/spdystream/MAINTAINERSis excluded by!**/vendor/**,!vendor/**vendor/github.com/moby/spdystream/NOTICEis excluded by!**/vendor/**,!vendor/**vendor/github.com/moby/spdystream/README.mdis excluded by!**/vendor/**,!vendor/**vendor/github.com/moby/spdystream/connection.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/moby/spdystream/handlers.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/moby/spdystream/priority.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/moby/spdystream/spdy/dictionary.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/moby/spdystream/spdy/read.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/moby/spdystream/spdy/types.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/moby/spdystream/spdy/write.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/moby/spdystream/stream.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/moby/spdystream/utils.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/mxk/go-flowrate/LICENSEis excluded by!**/vendor/**,!vendor/**vendor/github.com/mxk/go-flowrate/flowrate/flowrate.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/mxk/go-flowrate/flowrate/io.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/mxk/go-flowrate/flowrate/util.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/.gitignoreis excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/CHANGELOG.mdis excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/CONTRIBUTING.mdis excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/LICENSEis excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/Makefileis excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/README.mdis excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/RELEASING.mdis excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/config/deprecated.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/core_dsl.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/decorator_dsl.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/deprecated_dsl.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/formatter/colorable_others.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/formatter/colorable_windows.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/formatter/formatter.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/ginkgo/automaxprocs.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/ginkgo/automaxprocs/README.mdis excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/ginkgo/automaxprocs/automaxprocs.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/ginkgo/automaxprocs/cgroup.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/ginkgo/automaxprocs/cgroups.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/ginkgo/automaxprocs/cgroups2.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/ginkgo/automaxprocs/cpu_quota_linux.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/ginkgo/automaxprocs/cpu_quota_unsupported.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/ginkgo/automaxprocs/errors.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/ginkgo/automaxprocs/mountpoint.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/ginkgo/automaxprocs/runtime.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/ginkgo/automaxprocs/subsys.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/ginkgo/build/build_command.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/ginkgo/command/abort.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/ginkgo/command/command.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/ginkgo/command/program.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/ginkgo/generators/boostrap_templates.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/ginkgo/generators/bootstrap_command.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/ginkgo/generators/generate_command.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/ginkgo/generators/generate_templates.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/ginkgo/generators/generators_common.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/ginkgo/internal/compile.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/ginkgo/internal/gocovmerge.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/ginkgo/internal/profiles_and_reports.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/ginkgo/internal/run.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/ginkgo/internal/test_suite.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/ginkgo/internal/utils.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/ginkgo/internal/verify_version.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/ginkgo/labels/labels_command.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/ginkgo/main.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/ginkgo/outline/ginkgo.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/ginkgo/outline/import.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/ginkgo/outline/outline.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/ginkgo/outline/outline_command.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/ginkgo/run/run_command.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/ginkgo/unfocus/unfocus_command.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/ginkgo/watch/delta.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/ginkgo/watch/delta_tracker.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/ginkgo/watch/dependencies.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/ginkgo/watch/package_hash.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/ginkgo/watch/package_hashes.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/ginkgo/watch/suite.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/ginkgo/watch/watch_command.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/ginkgo_cli_dependencies.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/ginkgo_t_dsl.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/internal/around_node.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/internal/counter.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/internal/failer.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/internal/focus.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/internal/global/init.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/internal/group.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/internal/interrupt_handler/interrupt_handler.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/internal/interrupt_handler/sigquit_swallower_unix.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/internal/interrupt_handler/sigquit_swallower_windows.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/internal/node.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/internal/ordering.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/internal/output_interceptor.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/internal/output_interceptor_unix.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/internal/output_interceptor_wasm.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/internal/output_interceptor_win.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/internal/parallel_support/client_server.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/internal/parallel_support/http_client.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/internal/parallel_support/http_server.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/internal/parallel_support/rpc_client.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/internal/parallel_support/rpc_server.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/internal/parallel_support/server_handler.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/internal/progress_report.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/internal/progress_report_bsd.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/internal/progress_report_unix.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/internal/progress_report_wasm.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/internal/progress_report_win.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/internal/progress_reporter_manager.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/internal/report_entry.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/internal/reporters/gojson.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/internal/reporters/gojson_event_writer.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/internal/reporters/gojson_reporter.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/internal/spec.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/internal/spec_context.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/internal/suite.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/internal/testingtproxy/testing_t_proxy.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/internal/tree.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/internal/writer.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/reporters/default_reporter.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/reporters/deprecated_reporter.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/reporters/gojson_report.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/reporters/json_report.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/reporters/junit_report.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/reporters/reporter.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/reporters/teamcity_report.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/reporting_dsl.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/table_dsl.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/types/around_node.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/types/code_location.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/types/config.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/types/deprecated_types.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/types/deprecation_support.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/types/enum_support.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/types/errors.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/types/file_filter.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/types/flags.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/types/label_filter.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/types/report_entry.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/types/semver_filter.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/types/types.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/ginkgo/v2/types/version.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/onsi/gomega/gcustom/make_matcher.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/opencontainers/go-digest/.mailmapis excluded by!**/vendor/**,!vendor/**vendor/github.com/opencontainers/go-digest/.pullapprove.ymlis excluded by!**/vendor/**,!vendor/**vendor/github.com/opencontainers/go-digest/.travis.ymlis excluded by!**/vendor/**,!vendor/**vendor/github.com/opencontainers/go-digest/CONTRIBUTING.mdis excluded by!**/vendor/**,!vendor/**vendor/github.com/opencontainers/go-digest/LICENSEis excluded by!**/vendor/**,!vendor/**vendor/github.com/opencontainers/go-digest/LICENSE.docsis excluded by!**/vendor/**,!vendor/**vendor/github.com/opencontainers/go-digest/MAINTAINERSis excluded by!**/vendor/**,!vendor/**vendor/github.com/opencontainers/go-digest/README.mdis excluded by!**/vendor/**,!vendor/**vendor/github.com/opencontainers/go-digest/algorithm.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/opencontainers/go-digest/digest.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/opencontainers/go-digest/digester.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/opencontainers/go-digest/doc.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/opencontainers/go-digest/verifiers.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/robfig/cron/v3/.gitignoreis excluded by!**/vendor/**,!vendor/**vendor/github.com/robfig/cron/v3/.travis.ymlis excluded by!**/vendor/**,!vendor/**vendor/github.com/robfig/cron/v3/LICENSEis excluded by!**/vendor/**,!vendor/**vendor/github.com/robfig/cron/v3/README.mdis excluded by!**/vendor/**,!vendor/**vendor/github.com/robfig/cron/v3/chain.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/robfig/cron/v3/constantdelay.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/robfig/cron/v3/cron.gois excluded by!**/vendor/**,!vendor/**vendor/github.com/robfig/cron/v3/doc.gois excluded by!**/vendor/**,!vendor/**
📒 Files selected for processing (9)
.github/workflows/auto-tag.yml.github/workflows/check-version.ymlcmd/cloud-controller-manager/main.gometis/Makefilemetis/install-plugin.shtest/e2e/suite_test.gotools/auto-tag.shtools/check-kubernetes-version.shtools/update_vendor.sh
💤 Files with no reviewable changes (2)
- test/e2e/suite_test.go
- cmd/cloud-controller-manager/main.go
✅ Files skipped from review due to trivial changes (3)
- tools/update_vendor.sh
- .github/workflows/auto-tag.yml
- .github/workflows/check-version.yml
🚧 Files skipped from review as they are similar to previous changes (1)
- tools/check-kubernetes-version.sh
Sync go.work.sum in dependabot PRs
Because k8s deps are tightly coupled, they should ideally be updated together and isolated from other deps update. Also, clean up configs for obsolete directories.
klog v2 defaults -logtostderr to true, which silently ignores -stderrthreshold — all severities are unconditionally sent to stderr. Opt into the fixed behavior introduced in klog v2.140.0 by setting legacy_stderr_threshold_behavior=false so that -stderrthreshold is respected. The default is set to INFO (preserving current behavior); users can now override it on the command line. Ref: kubernetes/klog#212, kubernetes/klog#432 Signed-off-by: Pierluigi Lenoci <pierluigi.lenoci@gmail.com> Signed-off-by: Pierluigi Lenoci <pierluigilenoci@gmail.com>
9100b6a to
e459c69
Compare
This is to support tagging other components besides CCM.
* Override node lifecycle manager to filter nodes by cloud.google.com/gke-unmanaged-node=true label * Fix crash in node lifecycle controller by hardcoding client name * Refactor node filtering logic to ignore unmanaged nodes in Lifecycle and IPAM controllers - Centralized unmanaged node filtering logic into a shared utility in pkg/util/node/node.go. - Updated Node Lifecycle Controller to use the shared filtering utility. - Updated Node IPAM Controller (both Cloud and Range allocators) to ignore nodes with the cloud.google.com/gke-unmanaged-node: true label. - Updated related tests to reflect the changes. * InstanceExists * Fix CloudNodeController to ignore unmanaged nodes - Overrode the default CloudNodeController initializer in cmd/cloud-controller-manager/main.go. - Implemented startCloudNodeControllerWrapper in a new file cmd/cloud-controller-manager/nodecontroller.go. - The new initializer wraps the node informer with GCEFilteringNodeInformer to ensure the node controller filters out nodes with the cloud.google.com/gke-unmanaged-node: true label. * Fix ipam missing node * Remove filter in New func * update the code after rebase * update the log message * rename the label * fmt * add comments * Create dedicated error for not managed nodes * move the filtering informer to top level of ipam controller * update the unit test * unified the node controller and node lifecycle controller * fix a error in err handing * Remove filtering informer * Implement event stream filtering in GCEFilteringNodeInformer and clean up redundant checks in range_allocator * nit: rename some variables
e459c69 to
be715b4
Compare
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
This adds the .spec required for building auth-provider-gcp as an RPM To keep naming consistent across credential provider specs, we use the name gcr-credential-provider It also includes build-rpms.sh, used to build the RPM in CI.
This commit rewrites 49f5389. Work around GCP internal load balancer restrictions for multi-subnet clusters. GCP internal load balancers have specific restrictions that prevent straightforward load balancing across multiple subnets: 1. "Don't put a VM in more than one load-balanced instance group" 2. Instance groups can "only select VMs that are in the same zone, VPC network, and subnet" 3. "All VMs in an instance group must have their primary network interface in the same VPC network" 4. Internal LBs can load balance to VMs in same region but different subnets For clusters with nodes across multiple subnets, the previous implementation would fail to create internal load balancers. This change implements a two-pass approach: 1. Find existing external instance groups (matching externalInstanceGroupsPrefix) that contain ONLY cluster nodes and reuse them for the backend service 2. Create internal instance groups only for remaining nodes not covered by external groups This ensures compliance with GCP restrictions while enabling multi-subnet load balancing for Kubernetes clusters. References: - Internal LB docs: https://cloud.google.com/load-balancing/docs/internal - Backend service restrictions: https://cloud.google.com/load-balancing/docs/backend-service#restrictions_and_guidance - Instance group constraints: https://cloud.google.com/compute/docs/instance-groups/creating-groups-of-unmanaged-instances#addinstances 🤖 Commit message & comments Generated with [Claude Code](https://claude.ai/code)
…r image to be consistent with ART for 4.21 Reconciling with https://github.com/openshift/ocp-build-data/tree/3fdad9b43ac7aa4e2ed5db0c6f5266809a9ebbc0/images/ose-gcp-cloud-controller-manager.yml
cluster: Update the scripts to include the new variables providers/gce: Update the config to include the new `FirewallRulesManagement` string that can be set to Enabled or Disabled. This variable will allow users to skip the creation, deletion, and updates to firewall rules when set to Disabled. Users may not want or have the ability to add the permissions to perform these actions on their service account. When this is the case the firewall rules should be pre created and managed by someone with permissions to achieve the same goal. ** This is a cherry-pick from the upstream project
…r image to be consistent with ART for 4.22 Reconciling with https://github.com/openshift/ocp-build-data/tree/992b0dc3f0e12d86e7466dadf1eb51b2584a9a83/images/ose-gcp-cloud-controller-manager.yml
OSD has node names as FQDNs, unlike any other OCP install. This means our filtering logic for going []node -> compare against []string -> back to []node breaks, as we're comparing FQDN to canonical names. This adds logging to capture the decision process, and tests to try defend against potential regressions. At the next rebase this should be folded into the 'reuse instance groups' patch we carry. It resolves OCPBUGS-78471. This bug has only been observed on OSD.
… go.work Upstream now has go.work, so the downstream go.work reconstruction logic is no longer needed. Drop update-vendor.sh and verify-vendor.sh. The generic go-verify-deps CI step handles workspace vendoring via go work vendor.
be715b4 to
d24d895
Compare
|
@cloud-team-rebase-bot[bot]: The following tests failed, say
Full PR test history. Your PR dashboard. DetailsInstructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here. |
Summary by CodeRabbit
New Features
Chores
Documentation