Merge https://github.com/kubernetes/cloud-provider-gcp:master (d72bf49) into main#104
Merge https://github.com/kubernetes/cloud-provider-gcp:master (d72bf49) into main#104cloud-team-rebase-bot[bot] wants to merge 90 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.
… to v1.34.0 (kubernetes#1156) This commit upgrades the GoogleCloudPlatform/k8s-cloud-provider dependency to version v1.34.0 across all go.mod files, and updates the vendor directory. In v1.34.0, k8s-cloud-provider's cloud.Option changed from a custom value-backed type to a closure (func). As a result, comparing option functions using reflect.DeepEqual inside GetHook no longer functions correctly. We fix this by directly checking the projectFromNodeProviderID field on the gce fake cloud instance. Fixes: 1155
3f199f8 to
e073d3e
Compare
…ubernetes#1132) * ipam/store: enforce strict UTC timestamps for SQLite release cooldowns Fixes a critical timezone desync bug in the Metis IPAM database store where the IP release cooldown period was bypassed on hosts running in timezones behind UTC (e.g., PDT/EST). - Appends `_loc=UTC` to the SQLite database connection DSN string. - Converts local `time.Time` objects to UTC explicitly in the Go layer before serializing them to the database. - Adds a robust timezone unit test in `store_test.go` that programmatically sets the runtime environment timezone to `America/Los_Angeles` to reproduce and safeguard against future regression. * Metis Store: Update cooldown duration to 1 second in timezone robustness test * metis/pkg/store: fix gofmt formatting in store_test.go * fix(metis/store): resolve flaky timezone robustness IP cooldown test using SQLite julianday * metis/store: use Unix epoch milliseconds for all database timestamps Migrate all date/time database columns (release_at, created_at, updated_at, allocated_at) from TIMESTAMP to INTEGER storing Unix epoch milliseconds. This completely eliminates: - Any timezone alignment issues (SQLite defaults vs. Go locations). - String formatting differences between Go and SQLite native timestamps. - Flakiness in millisecond-level time comparisons in CNI unit tests. SQLite default constraints and triggers are updated to compute epoch milliseconds natively using CAST(unixepoch('subsec') * 1000 AS INTEGER). The CNI allocator passes time.Now().UTC().UnixMilli() as query parameters, enabling fast, standard integer comparison queries in the database. * add unsaved files
Signed-off-by: LogicalShark <maralder@google.com>
…bernetes#1166) This commit skips two test cases that are failing after migrating from kubetest2-gce to kops in periodic E2E tests. The skip patterns are defined in a shared `common.sh` script under `dev/ci/periodics` to avoid duplication across the various periodic scripts, and the Makefile is left unmodified. The two skipped test cases are: - [sig-network] Networking Granular Checks: Services should function for service endpoints using hostNetwork - [sig-node] RuntimeClass should run a Pod requesting a RuntimeClass with scheduling without taints Fix: 1165
…tes#1136) This change adds a sanitization step to the GIT_VERSION variable definition in the root Makefile and metis/Makefile. By stripping characters that are not alphanumeric, dots, or hyphens, we prevent arbitrary shell command execution if the repository contains a malicious git tag.
This pushes the checkMixedProtocol call after the logic that checks if the service should be provisioned by ccm's service controller. This prevents adding warning message and condition to load balancer services that are managed by other controllers, including ingress-gce which supports mixed protocol services.
* fix: pin to cloud-controller-manager tag * support updating the image * update to current version * Update manifest.yaml * Update dependabot.yml
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 # Conflicts: # cluster/gce/gci/configure-helper.sh # cluster/gce/util.sh
…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.
e073d3e to
c433f72
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 |
|
@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