Skip to content

Conversation

@dusk125
Copy link
Contributor

@dusk125 dusk125 commented Oct 30, 2025

Brings the CEO in line with the update to etcd v3.6.5

Depends on openshift/etcd#343

@openshift-ci-robot openshift-ci-robot added the jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. label Oct 30, 2025
@openshift-ci-robot
Copy link

openshift-ci-robot commented Oct 30, 2025

@dusk125: This pull request references CNTRLPLANE-1769 which is a valid jira issue.

Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the story to target the "4.21.0" version, but no target version was set.

In response to this:

Brings the CEO in line with the update to etcd v3.6.5

Depends on openshift/etcd#343

Instructions 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 openshift-eng/jira-lifecycle-plugin repository.

@openshift-ci openshift-ci bot added the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Oct 30, 2025
@coderabbitai
Copy link

coderabbitai bot commented Oct 30, 2025

Walkthrough

Update dependency versions in go.mod; migrate tests to the new integration API (ClusterV3Cluster, NewClusterV3NewCluster, ClusterClient()ClusterClient(t), GRPCURL()GRPCURL); switch etcd learner error comparisons to etcdserver/errors; rename several ETCD env keys; and change etcd startup flags in YAML templates.

Changes

Cohort / File(s) Summary
Dependency modernization
go.mod
Bumps many dependencies: spf13/cobra/pflag, etcd modules to v3.6.5-era, google.golang.org/grpc, grpc-gateway/v2 and middleware, OpenTelemetry (otel and exporters), golang-jwt/jwt v5, genproto updates, raft/v3, clockwork, and various indirect tooling/proto packages.
Test framework migration (integration API)
pkg/cmd/monitor/monitor_test.go, pkg/cmd/rev/rev_test.go, pkg/etcdcli/etcdcli_pool_test.go, pkg/operator/defragcontroller/defragcontroller_test.go, pkg/cmd/rev/rev_test.go, ...
Swap test import to go.etcd.io/etcd/tests/v3/framework/integration; change ClusterV3Cluster; NewClusterV3(...)NewCluster(...); ClusterClient()ClusterClient(t) (pass testing.T/TB); GRPCURL() method calls → GRPCURL field access; update helper signatures and call sites.
Error import refactoring
pkg/etcdcli/etcdcli.go, pkg/operator/clustermembercontroller/clustermembercontroller.go
Replace etcdserver.ErrLearnerNotReady usage with errors.ErrLearnerNotReady from go.etcd.io/etcd/server/v3/etcdserver/errors and update comparisons/handling accordingly.
Environment variable renames
pkg/etcdenvvar/etcd_env.go, pkg/cmd/render/env.go, pkg/cmd/render/env_test.go, pkg/etcdenvvar/envvarcontroller_test.go
Rename ETCD env keys from experimental to stable: ETCD_EXPERIMENTAL_MAX_LEARNERSETCD_MAX_LEARNERS; ETCD_EXPERIMENTAL_WATCH_PROGRESS_NOTIFY_INTERVALETCD_WATCH_PROGRESS_NOTIFY_INTERVAL; ETCD_EXPERIMENTAL_WARNING_APPLY_DURATIONETCD_WARNING_APPLY_DURATION; update FixedEtcdEnvVars, getters, and tests.
Template / startup flag updates
bindata/bootkube/bootstrap-manifests/etcd-member-pod.yaml, bindata/etcd/pod.gotpl.yaml
Replace --experimental-initial-corrupt-check=true with --feature-gates=InitialCorruptCheck=true; remove --snapshot-count=10000 in one template; adjust etcd container args accordingly.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

  • Files needing extra attention:
    • All updated test call sites passing testing.T/testing.TB to ClusterClient(t) and adjusted helper signatures.
    • Member GRPCURL field access vs prior method — verify struct API and compilation.
    • Env var key renames across code and tests to ensure no stale references.
    • go.mod dependency bumps (etcd, gRPC, otel, jwt v5, genproto) for import compatibility.
    • YAML startup flag change: verify feature-gate semantics and removed --snapshot-count impact.

Pre-merge checks and finishing touches

❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 12.90% which is insufficient. The required threshold is 80.00%. You can run @coderabbitai generate docstrings to improve docstring coverage.
✅ Passed checks (2 passed)
Check name Status Explanation
Title Check ✅ Passed The pull request title "WIP: CNTRLPLANE-1769: Update to v3.6.5" directly corresponds to the main changes in the changeset. The raw summary shows that the primary updates across all modified files are related to upgrading etcd dependencies to v3.6.5 and v3.6-related ecosystem changes (grpc, opentelemetry, jwt libraries), along with corresponding test and configuration updates. The title clearly and specifically identifies this upgrade as the central purpose of the PR, making it fully related to the changeset despite the "WIP:" prefix indicating ongoing work.
Description Check ✅ Passed The pull request description states "Brings the CEO in line with the update to etcd v3.6.5" and notes a dependency on another PR, which is directly related to the changeset. The description clearly communicates that the Cluster Etcd Operator is being updated to align with etcd v3.6.5, which matches the extensive dependency updates, test refactoring, and configuration changes shown across all modified files. While brief, the description is specific enough to convey the intent and is not vague or generic.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

Cache: Disabled due to data retention organization setting

Knowledge base: Disabled due to Reviews -> Disable Knowledge Base setting

📥 Commits

Reviewing files that changed from the base of the PR and between 6c1b1a3 and 4417c51.

⛔ Files ignored due to path filters (287)
  • go.sum is excluded by !**/*.sum
  • vendor/github.com/VividCortex/ewma/.gitignore is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/VividCortex/ewma/.whitesource is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/VividCortex/ewma/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/VividCortex/ewma/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/VividCortex/ewma/codecov.yml is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/VividCortex/ewma/ewma.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/bgentry/speakeasy/.gitignore is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/bgentry/speakeasy/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/bgentry/speakeasy/LICENSE_WINDOWS is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/bgentry/speakeasy/Readme.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/bgentry/speakeasy/speakeasy.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/bgentry/speakeasy/speakeasy_unix.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/bgentry/speakeasy/speakeasy_windows.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cheggaaa/pb/v3/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cheggaaa/pb/v3/element.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cheggaaa/pb/v3/io.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cheggaaa/pb/v3/pb.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cheggaaa/pb/v3/pool.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cheggaaa/pb/v3/pool_win.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cheggaaa/pb/v3/pool_x.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cheggaaa/pb/v3/preset.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cheggaaa/pb/v3/speed.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cheggaaa/pb/v3/template.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cheggaaa/pb/v3/termutil/term.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cheggaaa/pb/v3/termutil/term_aix.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cheggaaa/pb/v3/termutil/term_appengine.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cheggaaa/pb/v3/termutil/term_bsd.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cheggaaa/pb/v3/termutil/term_linux.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cheggaaa/pb/v3/termutil/term_nix.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cheggaaa/pb/v3/termutil/term_plan9.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cheggaaa/pb/v3/termutil/term_solaris.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cheggaaa/pb/v3/termutil/term_win.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cheggaaa/pb/v3/termutil/term_x.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cheggaaa/pb/v3/util.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/fatih/color/LICENSE.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/fatih/color/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/fatih/color/color.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/fatih/color/color_windows.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/fatih/color/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v4/MIGRATION_GUIDE.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v4/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v4/claims.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v4/errors.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v4/map_claims.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v4/parser.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v4/parser_option.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v4/token.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v5/.gitignore is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v5/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v5/MIGRATION_GUIDE.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v5/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v5/SECURITY.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v5/VERSION_HISTORY.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v5/claims.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v5/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v5/ecdsa.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v5/ecdsa_utils.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v5/ed25519.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v5/ed25519_utils.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v5/errors.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v5/errors_go1_20.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v5/errors_go_other.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v5/hmac.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v5/map_claims.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v5/none.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v5/parser.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v5/parser_option.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v5/registered_claims.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v5/rsa.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v5/rsa_pss.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v5/rsa_utils.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v5/signing_method.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v5/staticcheck.conf is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v5/token.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v5/token_option.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v5/types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v5/validator.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang/protobuf/descriptor/descriptor.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang/protobuf/jsonpb/decode.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang/protobuf/jsonpb/encode.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang/protobuf/jsonpb/json.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang/protobuf/protoc-gen-go/descriptor/descriptor.pb.go is excluded by !**/*.pb.go, !vendor/**, !**/vendor/**
  • vendor/github.com/golang/protobuf/ptypes/any/any.pb.go is excluded by !**/*.pb.go, !vendor/**, !**/vendor/**
  • vendor/github.com/golang/protobuf/ptypes/duration/duration.pb.go is excluded by !**/*.pb.go, !vendor/**, !**/vendor/**
  • vendor/github.com/golang/protobuf/ptypes/timestamp/timestamp.pb.go is excluded by !**/*.pb.go, !vendor/**, !**/vendor/**
  • vendor/github.com/golang/protobuf/ptypes/wrappers/wrappers.pb.go is excluded by !**/*.pb.go, !vendor/**, !**/vendor/**
  • vendor/github.com/google/go-cmp/cmp/cmpopts/equate.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/go-cmp/cmp/cmpopts/ignore.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/go-cmp/cmp/cmpopts/sort.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/go-cmp/cmp/cmpopts/struct_filter.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/go-cmp/cmp/cmpopts/xform.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/.gitignore is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/.travis.yml is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/CHANGELOG.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/CONTRIBUTING.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/chain.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/makefile is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus/client_metrics.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus/client_options.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus/constants.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus/options.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus/reporter.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus/server_metrics.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus/server_options.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/slack.png is excluded by !**/*.png, !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/v2/COPYRIGHT is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/v2/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/v2/interceptors/callmeta.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/v2/interceptors/client.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/v2/interceptors/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/v2/interceptors/reporter.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/v2/interceptors/server.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/wrappers.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/LICENSE.txt is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/internal/BUILD.bazel is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/internal/errors.pb.go is excluded by !**/*.pb.go, !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/internal/errors.proto is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/runtime/BUILD.bazel is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/runtime/context.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/runtime/convert.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/runtime/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/runtime/errors.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/runtime/fieldmask.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/runtime/handler.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/runtime/marshal_httpbodyproto.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/runtime/marshal_json.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/runtime/marshal_jsonpb.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/runtime/marshal_proto.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/runtime/marshaler.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/runtime/marshaler_registry.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/runtime/mux.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/runtime/pattern.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/runtime/proto2_convert.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/runtime/proto_errors.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/runtime/query.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/utilities/BUILD.bazel is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/utilities/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/utilities/pattern.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/utilities/readerfactory.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/utilities/trie.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2/options/BUILD.bazel is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2/options/annotations.pb.go is excluded by !**/*.pb.go, !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2/options/annotations.proto is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2/options/annotations_protoopaque.pb.go is excluded by !**/*.pb.go, !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2/options/buf.gen.yaml is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2/options/openapiv2.pb.go is excluded by !**/*.pb.go, !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2/options/openapiv2.proto is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2/options/openapiv2_protoopaque.pb.go is excluded by !**/*.pb.go, !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/v2/runtime/errors.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/v2/runtime/handler.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/v2/runtime/mux.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/v2/runtime/query.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/jonboulle/clockwork/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/jonboulle/clockwork/SECURITY.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/jonboulle/clockwork/clockwork.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/jonboulle/clockwork/context.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/jonboulle/clockwork/ticker.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/jonboulle/clockwork/timer.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mattn/go-colorable/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mattn/go-colorable/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mattn/go-colorable/colorable_others.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mattn/go-colorable/colorable_windows.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mattn/go-colorable/go.test.sh is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mattn/go-colorable/noncolorable.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mattn/go-isatty/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mattn/go-isatty/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mattn/go-isatty/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mattn/go-isatty/go.test.sh is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mattn/go-isatty/isatty_bsd.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mattn/go-isatty/isatty_others.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mattn/go-isatty/isatty_plan9.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mattn/go-isatty/isatty_solaris.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mattn/go-isatty/isatty_tcgets.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mattn/go-isatty/isatty_windows.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mattn/go-runewidth/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mattn/go-runewidth/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mattn/go-runewidth/runewidth.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mattn/go-runewidth/runewidth_appengine.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mattn/go-runewidth/runewidth_js.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mattn/go-runewidth/runewidth_posix.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mattn/go-runewidth/runewidth_table.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mattn/go-runewidth/runewidth_windows.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/olekukonko/tablewriter/.gitignore is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/olekukonko/tablewriter/.travis.yml is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/olekukonko/tablewriter/LICENSE.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/olekukonko/tablewriter/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/olekukonko/tablewriter/csv.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/olekukonko/tablewriter/table.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/olekukonko/tablewriter/table_with_color.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/olekukonko/tablewriter/util.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/olekukonko/tablewriter/wrap.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/rivo/uniseg/LICENSE.txt is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/rivo/uniseg/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/rivo/uniseg/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/rivo/uniseg/eastasianwidth.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/rivo/uniseg/emojipresentation.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/rivo/uniseg/gen_breaktest.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/rivo/uniseg/gen_properties.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/rivo/uniseg/grapheme.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/rivo/uniseg/graphemeproperties.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/rivo/uniseg/graphemerules.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/rivo/uniseg/line.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/rivo/uniseg/lineproperties.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/rivo/uniseg/linerules.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/rivo/uniseg/properties.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/rivo/uniseg/sentence.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/rivo/uniseg/sentenceproperties.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/rivo/uniseg/sentencerules.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/rivo/uniseg/step.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/rivo/uniseg/width.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/rivo/uniseg/word.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/rivo/uniseg/wordproperties.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/rivo/uniseg/wordrules.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/spf13/cobra/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/spf13/cobra/active_help.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/spf13/cobra/bash_completionsV2.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/spf13/cobra/cobra.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/spf13/cobra/command.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/spf13/cobra/completions.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/spf13/cobra/powershell_completions.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/spf13/pflag/.editorconfig is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/spf13/pflag/.golangci.yaml is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/spf13/pflag/flag.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/spf13/pflag/ip.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/spf13/pflag/ipnet_slice.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/spf13/pflag/string_array.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/.gitignore is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/.go-version is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/Makefile is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/OWNERS is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/bolt_386.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/bolt_aix.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/bolt_amd64.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/bolt_android.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/bolt_arm.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/bolt_arm64.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/bolt_loong64.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/bolt_mips64x.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/bolt_mipsx.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/bolt_ppc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/bolt_ppc64.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/bolt_ppc64le.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/bolt_riscv64.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/bolt_s390x.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/bolt_solaris.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/bolt_unix.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/bolt_windows.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/boltsync_unix.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/bucket.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/cursor.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/db.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/errors.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/errors/errors.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/freelist.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/freelist_hmap.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/internal/common/bolt_386.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/internal/common/bolt_amd64.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/internal/common/bolt_arm.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/internal/common/bolt_arm64.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/internal/common/bolt_loong64.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/internal/common/bolt_mips64x.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/internal/common/bolt_mipsx.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/internal/common/bolt_ppc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/internal/common/bolt_ppc64.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/internal/common/bolt_ppc64le.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/internal/common/bolt_riscv64.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/internal/common/bolt_s390x.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/internal/common/bucket.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/internal/common/inode.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/internal/common/meta.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/internal/common/page.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/internal/common/types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/internal/common/unsafe.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/internal/common/utils.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/internal/common/verify.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/internal/freelist/array.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/internal/freelist/freelist.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/internal/freelist/hashmap.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/internal/freelist/shared.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/logger.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/mlock_unix.go is excluded by !vendor/**, !**/vendor/**
📒 Files selected for processing (13)
  • bindata/bootkube/bootstrap-manifests/etcd-member-pod.yaml (1 hunks)
  • bindata/etcd/pod.gotpl.yaml (1 hunks)
  • go.mod (5 hunks)
  • pkg/cmd/monitor/monitor_test.go (4 hunks)
  • pkg/cmd/render/env.go (1 hunks)
  • pkg/cmd/render/env_test.go (1 hunks)
  • pkg/cmd/rev/rev_test.go (5 hunks)
  • pkg/etcdcli/etcdcli.go (2 hunks)
  • pkg/etcdcli/etcdcli_pool_test.go (20 hunks)
  • pkg/etcdenvvar/envvarcontroller_test.go (1 hunks)
  • pkg/etcdenvvar/etcd_env.go (3 hunks)
  • pkg/operator/clustermembercontroller/clustermembercontroller.go (2 hunks)
  • pkg/operator/defragcontroller/defragcontroller_test.go (5 hunks)
🚧 Files skipped from review as they are similar to previous changes (6)
  • pkg/operator/clustermembercontroller/clustermembercontroller.go
  • pkg/etcdcli/etcdcli.go
  • bindata/etcd/pod.gotpl.yaml
  • bindata/bootkube/bootstrap-manifests/etcd-member-pod.yaml
  • pkg/etcdenvvar/envvarcontroller_test.go
  • pkg/etcdenvvar/etcd_env.go
🔇 Additional comments (20)
pkg/operator/defragcontroller/defragcontroller_test.go (3)

25-25: LGTM: Import path correctly updated.

The import path migration to go.etcd.io/etcd/tests/v3/framework/integration is correct and aligns with the etcd v3.6.5 integration testing API updates.


172-172: LGTM: NewCluster API migration correctly applied.

The migration from integration.NewClusterV3 to integration.NewCluster is correctly applied in both test functions, maintaining consistent usage patterns with the cluster configuration and subsequent operations.

Also applies to: 326-326


183-183: LGTM: GRPCURL field access correctly updated.

The change from member.GRPCURL() method call to member.GRPCURL field access is correct and consistent with the new integration API where GRPCURL is exposed as a field.

Also applies to: 337-337

go.mod (3)

28-32: Etcd stack consistently upgraded to v3.6.5.

All primary etcd modules (api, client/pkg, client, server, tests) are aligned at v3.6.5, matching the PR objective.


35-35: gRPC ecosystem updates are consistent.

gRPC upgraded to v1.71.1 with corresponding updates to middleware/providers/prometheus (v1.0.1), middleware/v2 (v2.1.0), and grpc-gateway/v2 (v2.26.3). These are appropriately versioned for the gRPC upgrade.

Also applies to: 86-88


52-107: Indirect dependencies appropriately updated for etcd v3.6.5 and gRPC v1.71.1.

The addition of new indirect dependencies (progress bar libs, color utilities, jwt, mattn packages) and updates to OpenTelemetry (v1.34.0 stack), genproto googleapis, and clockwork (v0.5.0) are consistent transitive effects of upgrading etcd and gRPC. No suspicious or unused dependencies are evident.

Also applies to: 120-129, 140-141

pkg/cmd/rev/rev_test.go (3)

14-14: LGTM! Import path correctly updated.

The import path has been properly updated to the new framework/integration package location for etcd v3.6.5.


19-19: LGTM! ClusterClient calls correctly updated.

All ClusterClient calls have been properly updated to pass the testing.T parameter, which is required by the new etcd v3.6.5 API.

Also applies to: 41-41, 74-74


122-152: LGTM! Test cluster setup correctly migrated.

The setupTestCluster function has been properly updated:

  • Return type changed from *integration.ClusterV3 to *integration.Cluster
  • Constructor changed from NewClusterV3 to NewCluster
  • Client pool factory closures updated to call ClusterClient(t)

All changes are consistent with the etcd v3.6.5 API migration.

pkg/etcdcli/etcdcli_pool_test.go (5)

12-12: LGTM! Import path correctly updated.

The import path has been properly updated to the new framework/integration package location for etcd v3.6.5.


33-33: LGTM! Test cluster initialization correctly updated.

All test functions have been consistently updated to use integration.NewCluster instead of integration.NewClusterV3, which is the correct constructor for etcd v3.6.5.

Also applies to: 49-49, 66-66, 90-90, 114-114, 139-139, 173-173, 214-214, 257-257, 279-279, 306-306, 334-334, 363-363, 376-376, 391-391


36-36: LGTM! Test helper calls correctly updated.

All newTestPool calls have been consistently updated to pass the testing.T parameter as the first argument, aligning with the updated function signature.

Also applies to: 52-52, 69-69, 93-93, 117-117, 142-142, 176-176, 217-217, 260-260, 282-282, 309-309, 337-337, 366-366, 379-379, 394-394


405-405: LGTM! GRPCURL field access correctly updated.

The code has been properly updated to access GRPCURL as a field instead of calling it as a method, which is the correct pattern for etcd v3.6.5.


424-474: LGTM! Test helper function correctly migrated.

The newTestPool helper function has been properly updated:

  • Function signature now accepts testing.TB parameter
  • GRPCURL accessed as a field (line 442)
  • ClusterClient(t) correctly called with testing context (line 455)

All changes are consistent with the etcd v3.6.5 API migration.

pkg/cmd/monitor/monitor_test.go (4)

16-16: LGTM! Import path correctly updated.

The import path has been properly updated to the new framework/integration package location for etcd v3.6.5.


34-34: LGTM! Test data structure correctly updated.

The testServer field type has been properly updated from *integration.ClusterV3 to *integration.Cluster, aligning with the etcd v3.6.5 API.


83-92: LGTM! Test server creation correctly migrated.

The createAndStartEtcdTestServer function has been properly updated:

  • Return type changed to *integration.Cluster
  • Constructor changed to NewCluster
  • GRPCURL accessed as a field in the targets string formation

All changes are consistent with the etcd v3.6.5 API migration.


220-220: LGTM! Helper function signatures correctly updated.

The pauseEtcdPeers and stopEtcdPeers functions have been properly updated to accept *integration.Cluster instead of *integration.ClusterV3, maintaining consistency with the API migration.

Also applies to: 228-228

pkg/cmd/render/env.go (1)

123-123: LGTM! Flag stabilization implemented correctly.

The ETCD_MAX_LEARNERS key properly replaces the experimental variant, aligning with the etcd v3.6.5 update that stabilized this feature.

pkg/cmd/render/env_test.go (1)

97-97: Migration from experimental to stable flag verified and complete.

The verification confirms:

  • The old ETCD_EXPERIMENTAL_MAX_LEARNERS key has been completely removed from the codebase
  • Test expectations at lines 97 and 105 correctly reference the new ETCD_MAX_LEARNERS key
  • No remaining references to the deprecated experimental key exist

The test updates properly reflect the etcd v3.6.5 stabilization of the max learners flag.

Warning

There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure.

🔧 golangci-lint (2.5.0)

Error: can't load config: unsupported version of the configuration: "" See https://golangci-lint.run/docs/product/migration-guide for migration instructions
The command is terminated due to an error: can't load config: unsupported version of the configuration: "" See https://golangci-lint.run/docs/product/migration-guide for migration instructions


Comment @coderabbitai help to get the list of available commands and usage tips.

@dusk125
Copy link
Contributor Author

dusk125 commented Oct 30, 2025

/hold for openshift/etcd#343

@openshift-ci openshift-ci bot added the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Oct 30, 2025
@openshift-ci openshift-ci bot requested review from hasbro17 and tjungblu October 30, 2025 13:39
@openshift-ci openshift-ci bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Oct 30, 2025
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

Cache: Disabled due to data retention organization setting

Knowledge base: Disabled due to Reviews -> Disable Knowledge Base setting

📥 Commits

Reviewing files that changed from the base of the PR and between 18a8bcc and 7d73c3f.

⛔ Files ignored due to path filters (293)
  • go.sum is excluded by !**/*.sum
  • vendor/github.com/VividCortex/ewma/.gitignore is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/VividCortex/ewma/.whitesource is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/VividCortex/ewma/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/VividCortex/ewma/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/VividCortex/ewma/codecov.yml is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/VividCortex/ewma/ewma.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/bgentry/speakeasy/.gitignore is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/bgentry/speakeasy/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/bgentry/speakeasy/LICENSE_WINDOWS is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/bgentry/speakeasy/Readme.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/bgentry/speakeasy/speakeasy.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/bgentry/speakeasy/speakeasy_unix.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/bgentry/speakeasy/speakeasy_windows.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cheggaaa/pb/v3/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cheggaaa/pb/v3/element.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cheggaaa/pb/v3/io.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cheggaaa/pb/v3/pb.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cheggaaa/pb/v3/pool.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cheggaaa/pb/v3/pool_win.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cheggaaa/pb/v3/pool_x.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cheggaaa/pb/v3/preset.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cheggaaa/pb/v3/speed.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cheggaaa/pb/v3/template.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cheggaaa/pb/v3/termutil/term.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cheggaaa/pb/v3/termutil/term_aix.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cheggaaa/pb/v3/termutil/term_appengine.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cheggaaa/pb/v3/termutil/term_bsd.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cheggaaa/pb/v3/termutil/term_linux.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cheggaaa/pb/v3/termutil/term_nix.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cheggaaa/pb/v3/termutil/term_plan9.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cheggaaa/pb/v3/termutil/term_solaris.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cheggaaa/pb/v3/termutil/term_win.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cheggaaa/pb/v3/termutil/term_x.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cheggaaa/pb/v3/util.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/fatih/color/LICENSE.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/fatih/color/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/fatih/color/color.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/fatih/color/color_windows.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/fatih/color/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v4/MIGRATION_GUIDE.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v4/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v4/claims.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v4/errors.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v4/map_claims.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v4/parser.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v4/parser_option.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v4/token.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v5/.gitignore is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v5/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v5/MIGRATION_GUIDE.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v5/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v5/SECURITY.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v5/VERSION_HISTORY.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v5/claims.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v5/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v5/ecdsa.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v5/ecdsa_utils.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v5/ed25519.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v5/ed25519_utils.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v5/errors.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v5/errors_go1_20.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v5/errors_go_other.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v5/hmac.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v5/map_claims.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v5/none.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v5/parser.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v5/parser_option.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v5/registered_claims.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v5/rsa.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v5/rsa_pss.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v5/rsa_utils.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v5/signing_method.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v5/staticcheck.conf is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v5/token.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v5/token_option.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v5/types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v5/validator.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang/protobuf/descriptor/descriptor.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang/protobuf/jsonpb/decode.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang/protobuf/jsonpb/encode.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang/protobuf/jsonpb/json.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang/protobuf/protoc-gen-go/descriptor/descriptor.pb.go is excluded by !**/*.pb.go, !vendor/**, !**/vendor/**
  • vendor/github.com/golang/protobuf/ptypes/any/any.pb.go is excluded by !**/*.pb.go, !vendor/**, !**/vendor/**
  • vendor/github.com/golang/protobuf/ptypes/duration/duration.pb.go is excluded by !**/*.pb.go, !vendor/**, !**/vendor/**
  • vendor/github.com/golang/protobuf/ptypes/timestamp/timestamp.pb.go is excluded by !**/*.pb.go, !vendor/**, !**/vendor/**
  • vendor/github.com/golang/protobuf/ptypes/wrappers/wrappers.pb.go is excluded by !**/*.pb.go, !vendor/**, !**/vendor/**
  • vendor/github.com/google/go-cmp/cmp/cmpopts/equate.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/go-cmp/cmp/cmpopts/ignore.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/go-cmp/cmp/cmpopts/sort.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/go-cmp/cmp/cmpopts/struct_filter.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/go-cmp/cmp/cmpopts/xform.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/.gitignore is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/.travis.yml is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/CHANGELOG.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/CONTRIBUTING.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/chain.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/makefile is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus/client_metrics.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus/client_options.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus/constants.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus/options.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus/reporter.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus/server_metrics.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus/server_options.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/slack.png is excluded by !**/*.png, !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/v2/COPYRIGHT is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/v2/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/v2/interceptors/callmeta.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/v2/interceptors/client.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/v2/interceptors/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/v2/interceptors/reporter.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/v2/interceptors/server.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/wrappers.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/LICENSE.txt is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/internal/BUILD.bazel is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/internal/errors.pb.go is excluded by !**/*.pb.go, !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/internal/errors.proto is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/runtime/BUILD.bazel is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/runtime/context.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/runtime/convert.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/runtime/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/runtime/errors.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/runtime/fieldmask.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/runtime/handler.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/runtime/marshal_httpbodyproto.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/runtime/marshal_json.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/runtime/marshal_jsonpb.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/runtime/marshal_proto.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/runtime/marshaler.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/runtime/marshaler_registry.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/runtime/mux.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/runtime/pattern.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/runtime/proto2_convert.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/runtime/proto_errors.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/runtime/query.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/utilities/BUILD.bazel is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/utilities/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/utilities/pattern.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/utilities/readerfactory.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/utilities/trie.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2/options/BUILD.bazel is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2/options/annotations.pb.go is excluded by !**/*.pb.go, !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2/options/annotations.proto is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2/options/annotations_protoopaque.pb.go is excluded by !**/*.pb.go, !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2/options/buf.gen.yaml is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2/options/openapiv2.pb.go is excluded by !**/*.pb.go, !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2/options/openapiv2.proto is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2/options/openapiv2_protoopaque.pb.go is excluded by !**/*.pb.go, !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/v2/runtime/errors.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/v2/runtime/handler.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/v2/runtime/mux.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/v2/runtime/query.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/jonboulle/clockwork/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/jonboulle/clockwork/SECURITY.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/jonboulle/clockwork/clockwork.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/jonboulle/clockwork/context.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/jonboulle/clockwork/ticker.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/jonboulle/clockwork/timer.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mattn/go-colorable/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mattn/go-colorable/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mattn/go-colorable/colorable_others.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mattn/go-colorable/colorable_windows.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mattn/go-colorable/go.test.sh is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mattn/go-colorable/noncolorable.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mattn/go-isatty/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mattn/go-isatty/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mattn/go-isatty/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mattn/go-isatty/go.test.sh is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mattn/go-isatty/isatty_bsd.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mattn/go-isatty/isatty_others.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mattn/go-isatty/isatty_plan9.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mattn/go-isatty/isatty_solaris.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mattn/go-isatty/isatty_tcgets.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mattn/go-isatty/isatty_windows.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mattn/go-runewidth/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mattn/go-runewidth/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mattn/go-runewidth/runewidth.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mattn/go-runewidth/runewidth_appengine.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mattn/go-runewidth/runewidth_js.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mattn/go-runewidth/runewidth_posix.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mattn/go-runewidth/runewidth_table.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mattn/go-runewidth/runewidth_windows.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/olekukonko/tablewriter/.gitignore is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/olekukonko/tablewriter/.travis.yml is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/olekukonko/tablewriter/LICENSE.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/olekukonko/tablewriter/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/olekukonko/tablewriter/csv.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/olekukonko/tablewriter/table.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/olekukonko/tablewriter/table_with_color.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/olekukonko/tablewriter/util.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/olekukonko/tablewriter/wrap.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/rivo/uniseg/LICENSE.txt is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/rivo/uniseg/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/rivo/uniseg/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/rivo/uniseg/eastasianwidth.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/rivo/uniseg/emojipresentation.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/rivo/uniseg/gen_breaktest.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/rivo/uniseg/gen_properties.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/rivo/uniseg/grapheme.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/rivo/uniseg/graphemeproperties.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/rivo/uniseg/graphemerules.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/rivo/uniseg/line.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/rivo/uniseg/lineproperties.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/rivo/uniseg/linerules.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/rivo/uniseg/properties.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/rivo/uniseg/sentence.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/rivo/uniseg/sentenceproperties.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/rivo/uniseg/sentencerules.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/rivo/uniseg/step.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/rivo/uniseg/width.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/rivo/uniseg/word.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/rivo/uniseg/wordproperties.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/rivo/uniseg/wordrules.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/spf13/cobra/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/spf13/cobra/active_help.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/spf13/cobra/bash_completionsV2.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/spf13/cobra/cobra.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/spf13/cobra/command.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/spf13/cobra/completions.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/spf13/cobra/powershell_completions.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/spf13/pflag/.editorconfig is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/spf13/pflag/.golangci.yaml is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/spf13/pflag/flag.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/spf13/pflag/ip.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/spf13/pflag/ipnet_slice.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/spf13/pflag/string_array.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/.gitignore is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/.go-version is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/Makefile is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/OWNERS is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/bolt_386.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/bolt_aix.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/bolt_amd64.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/bolt_android.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/bolt_arm.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/bolt_arm64.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/bolt_loong64.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/bolt_mips64x.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/bolt_mipsx.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/bolt_ppc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/bolt_ppc64.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/bolt_ppc64le.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/bolt_riscv64.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/bolt_s390x.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/bolt_solaris.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/bolt_unix.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/bolt_windows.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/boltsync_unix.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/bucket.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/cursor.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/db.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/errors.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/errors/errors.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/freelist.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/freelist_hmap.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/internal/common/bolt_386.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/internal/common/bolt_amd64.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/internal/common/bolt_arm.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/internal/common/bolt_arm64.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/internal/common/bolt_loong64.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/internal/common/bolt_mips64x.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/internal/common/bolt_mipsx.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/internal/common/bolt_ppc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/internal/common/bolt_ppc64.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/internal/common/bolt_ppc64le.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/internal/common/bolt_riscv64.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/internal/common/bolt_s390x.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/internal/common/bucket.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/internal/common/inode.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/internal/common/meta.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/internal/common/page.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/internal/common/types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/internal/common/unsafe.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/internal/common/utils.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/internal/common/verify.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/internal/freelist/array.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/internal/freelist/freelist.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/internal/freelist/hashmap.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/internal/freelist/shared.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/logger.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/mlock_unix.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/node.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/page.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/tx.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/tx_check.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/etcd/api/v3/authpb/auth.pb.go is excluded by !**/*.pb.go, !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/etcd/api/v3/authpb/auth.proto is excluded by !vendor/**, !**/vendor/**
📒 Files selected for processing (7)
  • go.mod (5 hunks)
  • pkg/cmd/monitor/monitor_test.go (4 hunks)
  • pkg/cmd/rev/rev_test.go (5 hunks)
  • pkg/etcdcli/etcdcli.go (2 hunks)
  • pkg/etcdcli/etcdcli_pool_test.go (20 hunks)
  • pkg/operator/clustermembercontroller/clustermembercontroller.go (2 hunks)
  • pkg/operator/defragcontroller/defragcontroller_test.go (5 hunks)
🔇 Additional comments (19)
pkg/etcdcli/etcdcli.go (2)

23-23: LGTM: Error import updated to new package structure.

The import path change from etcdserver to etcdserver/errors aligns with etcd v3.6.5's refactored error handling structure.


205-205: LGTM: Error comparison updated consistently.

The error reference is correctly updated to errors.ErrLearnerNotReady to match the new import. The string comparison approach remains appropriate given the error type constraints mentioned in the code comments.

pkg/operator/clustermembercontroller/clustermembercontroller.go (1)

12-12: LGTM: Error handling updated consistently with etcd v3.6.5.

The import path and error reference changes match the refactoring in pkg/etcdcli/etcdcli.go, maintaining consistency across the codebase.

Also applies to: 291-291

pkg/operator/defragcontroller/defragcontroller_test.go (2)

25-25: LGTM: Test framework import updated.

The import path change to framework/integration reflects the reorganized test utilities in etcd v3.6.5.


172-172: LGTM: Test cluster construction and API updated.

The migration from NewClusterV3 to NewCluster and the change from member.GRPCURL() method call to member.GRPCURL field access align with the new test framework API in etcd v3.6.5. These changes are applied consistently throughout both test functions.

Also applies to: 183-183

pkg/cmd/monitor/monitor_test.go (3)

16-16: LGTM: Test framework types updated.

The import and type changes from ClusterV3 to Cluster are consistent with the etcd v3.6.5 test framework migration.

Also applies to: 34-34


83-87: LGTM: Test cluster setup migrated to new API.

The function signature and implementation correctly adopt the new test framework:

  • Returns *integration.Cluster instead of *integration.ClusterV3
  • Uses NewCluster constructor
  • Accesses GRPCURL as a field

220-220: LGTM: Helper function signatures updated consistently.

Both pauseEtcdPeers and stopEtcdPeers correctly accept *integration.Cluster instead of *integration.ClusterV3.

Also applies to: 228-228

pkg/etcdcli/etcdcli_pool_test.go (3)

12-12: LGTM: Test framework import updated.

Import path updated to framework/integration as part of the etcd v3.6.5 migration.


33-33: LGTM: All test cluster constructions updated consistently.

All 15 test cluster instantiations have been migrated from NewClusterV3 to NewCluster, maintaining consistency across the entire test suite.

Also applies to: 49-49, 66-66, 90-90, 114-114, 139-139, 173-173, 214-214, 257-257, 279-279, 306-306, 334-334, 363-363, 376-376, 391-391


424-456: LGTM: Test helper function updated to new API.

The newTestPool function correctly adopts the new test framework requirements:

  • Accepts testing.TB parameter (Line 424)
  • Uses GRPCURL field access instead of method call (Lines 442)
  • Passes t to ClusterClient(t) (Line 455)

These changes align with etcd v3.6.5's requirement for test context in cluster client operations.

pkg/cmd/rev/rev_test.go (3)

14-14: LGTM: Test framework import updated.

Import path migrated to framework/integration for etcd v3.6.5 compatibility.


19-19: LGTM: ClusterClient calls updated with test context.

All three test functions correctly pass the t parameter to ClusterClient(t), matching the new API requirement in etcd v3.6.5.

Also applies to: 41-41, 74-74


122-152: LGTM: Test setup function fully migrated to new framework.

The setupTestCluster function comprehensively adopts the new test framework:

  • Returns *integration.Cluster (Line 122)
  • Uses NewCluster constructor (Line 124)
  • Passes t to ClusterClient(t) in both the newFunc (Line 137) and endpointsFunc (Line 140) closures
go.mod (5)

35-35: I'll search for information about gRPC v1.71.1's stability and any compatibility concerns with etcd.

Let me search for more specific information about gRPC v1.71 in the context of Go-based etcd clients and operators.

No actionable concerns identified with gRPC v1.71.1 stability or compatibility.

gRPC v1.71.0 is a stable release containing refinements, improvements, and bug fixes, and v1.71.1 is a standard maintenance patch. etcd v3.6.0 upgraded grpc-gateway from v1 to v2, but no specific gRPC version constraints are documented for the etcd v3.6.x series. etcd v3 uses gRPC for remote procedure calls, and the Go etcd client library supports the modern gRPC ecosystem without explicit version restrictions. No known compatibility issues exist between gRPC v1.71.1 and etcd v3.6.5 for Go-based operators.


121-121: OpenTelemetry v1.34.0 is stable and compatible with this project.

OpenTelemetry Go v1.34.0 was released January 17, 2025, and includes fixes for the Logs API and exporter Type names. The minimum Go version requirement is 1.22, which is satisfied by this project's Go 1.24.0 target. No widely reported security vulnerabilities are tied to v1.34.0. The updates to otel/sdk, otel/trace, otel/metric, and related exporters (lines 123–128) are stable and production-ready.


3-5: Go 1.24.0 support is properly configured and verified.

The codebase and all transitive dependencies explicitly require Go 1.24.0 (confirmed in vendor/modules.txt). The toolchain is pinned to go1.24.4, which includes the security fix from 1.24.3. The codebase uses none of the breaking APIs from Go 1.24.x (no cgo receiver aliasing, os.Root usage, or problematic generics). The build infrastructure (OpenShift CI with build-machinery-go) properly handles Go version validation. No compatibility issues detected.


86-88: No compatibility issues found — versions are verified as compatible.

The indirect dependencies for grpc-middleware and grpc-gateway have been verified:

  • gRPC-gateway v2.26.3 works with grpc-go v1.71.1
  • etcd v3.6.5 uses google.golang.org/grpc v1.71.1
  • grpc-middleware v1 and v2 can coexist in the same Go build because they use different module paths (/v2 suffix)

Additionally, no direct imports of v2 packages were found in source code—the v2 dependencies appear only as transitive/indirect dependencies in vendor, meaning no API-level breaking changes are in play. The dependency update is safe.


28-32: Etcd v3.6.5 upgrade is compatible—no code changes required.

Etcd v3.6.5's breaking changes (on-disk schema incompatibility, peer/client endpoint separation, v2 store removal) do not impact the cluster-etcd-operator code. The operator already properly separates peer URLs from client URLs in member management, does not use the deprecated v2 store, and Go 1.24.0 exceeds the minimum Go 1.19+ requirement. No breaking API changes to etcd's client library affect the operator's current usage patterns.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

♻️ Duplicate comments (1)
go.mod (1)

119-119: Duplicate: Update go.etcd.io/raft/v3 to v3.6.5.

The raft module version (v3.6.0) does not match other etcd modules (v3.6.5), creating a compatibility issue. This was already flagged in a previous review.

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

Cache: Disabled due to data retention organization setting

Knowledge base: Disabled due to Reviews -> Disable Knowledge Base setting

📥 Commits

Reviewing files that changed from the base of the PR and between 7d73c3f and 4fe2e07.

⛔ Files ignored due to path filters (287)
  • go.sum is excluded by !**/*.sum
  • vendor/github.com/VividCortex/ewma/.gitignore is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/VividCortex/ewma/.whitesource is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/VividCortex/ewma/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/VividCortex/ewma/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/VividCortex/ewma/codecov.yml is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/VividCortex/ewma/ewma.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/bgentry/speakeasy/.gitignore is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/bgentry/speakeasy/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/bgentry/speakeasy/LICENSE_WINDOWS is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/bgentry/speakeasy/Readme.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/bgentry/speakeasy/speakeasy.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/bgentry/speakeasy/speakeasy_unix.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/bgentry/speakeasy/speakeasy_windows.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cheggaaa/pb/v3/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cheggaaa/pb/v3/element.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cheggaaa/pb/v3/io.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cheggaaa/pb/v3/pb.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cheggaaa/pb/v3/pool.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cheggaaa/pb/v3/pool_win.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cheggaaa/pb/v3/pool_x.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cheggaaa/pb/v3/preset.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cheggaaa/pb/v3/speed.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cheggaaa/pb/v3/template.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cheggaaa/pb/v3/termutil/term.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cheggaaa/pb/v3/termutil/term_aix.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cheggaaa/pb/v3/termutil/term_appengine.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cheggaaa/pb/v3/termutil/term_bsd.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cheggaaa/pb/v3/termutil/term_linux.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cheggaaa/pb/v3/termutil/term_nix.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cheggaaa/pb/v3/termutil/term_plan9.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cheggaaa/pb/v3/termutil/term_solaris.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cheggaaa/pb/v3/termutil/term_win.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cheggaaa/pb/v3/termutil/term_x.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/cheggaaa/pb/v3/util.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/fatih/color/LICENSE.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/fatih/color/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/fatih/color/color.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/fatih/color/color_windows.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/fatih/color/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v4/MIGRATION_GUIDE.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v4/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v4/claims.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v4/errors.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v4/map_claims.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v4/parser.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v4/parser_option.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v4/token.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v5/.gitignore is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v5/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v5/MIGRATION_GUIDE.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v5/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v5/SECURITY.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v5/VERSION_HISTORY.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v5/claims.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v5/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v5/ecdsa.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v5/ecdsa_utils.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v5/ed25519.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v5/ed25519_utils.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v5/errors.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v5/errors_go1_20.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v5/errors_go_other.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v5/hmac.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v5/map_claims.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v5/none.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v5/parser.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v5/parser_option.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v5/registered_claims.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v5/rsa.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v5/rsa_pss.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v5/rsa_utils.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v5/signing_method.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v5/staticcheck.conf is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v5/token.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v5/token_option.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v5/types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang-jwt/jwt/v5/validator.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang/protobuf/descriptor/descriptor.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang/protobuf/jsonpb/decode.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang/protobuf/jsonpb/encode.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang/protobuf/jsonpb/json.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/golang/protobuf/protoc-gen-go/descriptor/descriptor.pb.go is excluded by !**/*.pb.go, !vendor/**, !**/vendor/**
  • vendor/github.com/golang/protobuf/ptypes/any/any.pb.go is excluded by !**/*.pb.go, !vendor/**, !**/vendor/**
  • vendor/github.com/golang/protobuf/ptypes/duration/duration.pb.go is excluded by !**/*.pb.go, !vendor/**, !**/vendor/**
  • vendor/github.com/golang/protobuf/ptypes/timestamp/timestamp.pb.go is excluded by !**/*.pb.go, !vendor/**, !**/vendor/**
  • vendor/github.com/golang/protobuf/ptypes/wrappers/wrappers.pb.go is excluded by !**/*.pb.go, !vendor/**, !**/vendor/**
  • vendor/github.com/google/go-cmp/cmp/cmpopts/equate.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/go-cmp/cmp/cmpopts/ignore.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/go-cmp/cmp/cmpopts/sort.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/go-cmp/cmp/cmpopts/struct_filter.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/go-cmp/cmp/cmpopts/xform.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/.gitignore is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/.travis.yml is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/CHANGELOG.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/CONTRIBUTING.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/chain.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/makefile is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus/client_metrics.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus/client_options.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus/constants.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus/options.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus/reporter.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus/server_metrics.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus/server_options.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/slack.png is excluded by !**/*.png, !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/v2/COPYRIGHT is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/v2/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/v2/interceptors/callmeta.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/v2/interceptors/client.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/v2/interceptors/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/v2/interceptors/reporter.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/v2/interceptors/server.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/wrappers.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/LICENSE.txt is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/internal/BUILD.bazel is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/internal/errors.pb.go is excluded by !**/*.pb.go, !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/internal/errors.proto is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/runtime/BUILD.bazel is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/runtime/context.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/runtime/convert.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/runtime/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/runtime/errors.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/runtime/fieldmask.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/runtime/handler.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/runtime/marshal_httpbodyproto.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/runtime/marshal_json.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/runtime/marshal_jsonpb.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/runtime/marshal_proto.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/runtime/marshaler.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/runtime/marshaler_registry.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/runtime/mux.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/runtime/pattern.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/runtime/proto2_convert.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/runtime/proto_errors.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/runtime/query.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/utilities/BUILD.bazel is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/utilities/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/utilities/pattern.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/utilities/readerfactory.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/utilities/trie.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2/options/BUILD.bazel is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2/options/annotations.pb.go is excluded by !**/*.pb.go, !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2/options/annotations.proto is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2/options/annotations_protoopaque.pb.go is excluded by !**/*.pb.go, !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2/options/buf.gen.yaml is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2/options/openapiv2.pb.go is excluded by !**/*.pb.go, !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2/options/openapiv2.proto is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2/options/openapiv2_protoopaque.pb.go is excluded by !**/*.pb.go, !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/v2/runtime/errors.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/v2/runtime/handler.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/v2/runtime/mux.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/grpc-ecosystem/grpc-gateway/v2/runtime/query.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/jonboulle/clockwork/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/jonboulle/clockwork/SECURITY.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/jonboulle/clockwork/clockwork.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/jonboulle/clockwork/context.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/jonboulle/clockwork/ticker.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/jonboulle/clockwork/timer.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mattn/go-colorable/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mattn/go-colorable/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mattn/go-colorable/colorable_others.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mattn/go-colorable/colorable_windows.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mattn/go-colorable/go.test.sh is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mattn/go-colorable/noncolorable.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mattn/go-isatty/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mattn/go-isatty/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mattn/go-isatty/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mattn/go-isatty/go.test.sh is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mattn/go-isatty/isatty_bsd.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mattn/go-isatty/isatty_others.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mattn/go-isatty/isatty_plan9.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mattn/go-isatty/isatty_solaris.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mattn/go-isatty/isatty_tcgets.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mattn/go-isatty/isatty_windows.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mattn/go-runewidth/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mattn/go-runewidth/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mattn/go-runewidth/runewidth.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mattn/go-runewidth/runewidth_appengine.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mattn/go-runewidth/runewidth_js.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mattn/go-runewidth/runewidth_posix.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mattn/go-runewidth/runewidth_table.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/mattn/go-runewidth/runewidth_windows.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/olekukonko/tablewriter/.gitignore is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/olekukonko/tablewriter/.travis.yml is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/olekukonko/tablewriter/LICENSE.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/olekukonko/tablewriter/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/olekukonko/tablewriter/csv.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/olekukonko/tablewriter/table.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/olekukonko/tablewriter/table_with_color.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/olekukonko/tablewriter/util.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/olekukonko/tablewriter/wrap.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/rivo/uniseg/LICENSE.txt is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/rivo/uniseg/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/rivo/uniseg/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/rivo/uniseg/eastasianwidth.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/rivo/uniseg/emojipresentation.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/rivo/uniseg/gen_breaktest.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/rivo/uniseg/gen_properties.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/rivo/uniseg/grapheme.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/rivo/uniseg/graphemeproperties.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/rivo/uniseg/graphemerules.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/rivo/uniseg/line.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/rivo/uniseg/lineproperties.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/rivo/uniseg/linerules.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/rivo/uniseg/properties.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/rivo/uniseg/sentence.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/rivo/uniseg/sentenceproperties.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/rivo/uniseg/sentencerules.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/rivo/uniseg/step.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/rivo/uniseg/width.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/rivo/uniseg/word.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/rivo/uniseg/wordproperties.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/rivo/uniseg/wordrules.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/spf13/cobra/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/spf13/cobra/active_help.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/spf13/cobra/bash_completionsV2.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/spf13/cobra/cobra.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/spf13/cobra/command.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/spf13/cobra/completions.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/spf13/cobra/powershell_completions.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/spf13/pflag/.editorconfig is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/spf13/pflag/.golangci.yaml is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/spf13/pflag/flag.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/spf13/pflag/ip.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/spf13/pflag/ipnet_slice.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/spf13/pflag/string_array.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/.gitignore is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/.go-version is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/Makefile is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/OWNERS is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/bolt_386.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/bolt_aix.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/bolt_amd64.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/bolt_android.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/bolt_arm.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/bolt_arm64.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/bolt_loong64.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/bolt_mips64x.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/bolt_mipsx.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/bolt_ppc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/bolt_ppc64.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/bolt_ppc64le.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/bolt_riscv64.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/bolt_s390x.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/bolt_solaris.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/bolt_unix.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/bolt_windows.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/boltsync_unix.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/bucket.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/cursor.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/db.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/errors.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/errors/errors.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/freelist.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/freelist_hmap.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/internal/common/bolt_386.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/internal/common/bolt_amd64.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/internal/common/bolt_arm.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/internal/common/bolt_arm64.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/internal/common/bolt_loong64.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/internal/common/bolt_mips64x.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/internal/common/bolt_mipsx.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/internal/common/bolt_ppc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/internal/common/bolt_ppc64.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/internal/common/bolt_ppc64le.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/internal/common/bolt_riscv64.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/internal/common/bolt_s390x.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/internal/common/bucket.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/internal/common/inode.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/internal/common/meta.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/internal/common/page.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/internal/common/types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/internal/common/unsafe.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/internal/common/utils.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/internal/common/verify.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/internal/freelist/array.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/internal/freelist/freelist.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/internal/freelist/hashmap.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/internal/freelist/shared.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/logger.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.etcd.io/bbolt/mlock_unix.go is excluded by !vendor/**, !**/vendor/**
📒 Files selected for processing (13)
  • bindata/bootkube/bootstrap-manifests/etcd-member-pod.yaml (1 hunks)
  • bindata/etcd/pod.gotpl.yaml (1 hunks)
  • go.mod (5 hunks)
  • pkg/cmd/monitor/monitor_test.go (4 hunks)
  • pkg/cmd/render/env.go (1 hunks)
  • pkg/cmd/render/env_test.go (1 hunks)
  • pkg/cmd/rev/rev_test.go (5 hunks)
  • pkg/etcdcli/etcdcli.go (2 hunks)
  • pkg/etcdcli/etcdcli_pool_test.go (20 hunks)
  • pkg/etcdenvvar/envvarcontroller_test.go (1 hunks)
  • pkg/etcdenvvar/etcd_env.go (3 hunks)
  • pkg/operator/clustermembercontroller/clustermembercontroller.go (2 hunks)
  • pkg/operator/defragcontroller/defragcontroller_test.go (5 hunks)
🚧 Files skipped from review as they are similar to previous changes (2)
  • pkg/operator/clustermembercontroller/clustermembercontroller.go
  • pkg/operator/defragcontroller/defragcontroller_test.go
🔇 Additional comments (19)
pkg/cmd/render/env.go (1)

113-124: LGTM! Environment variable key updated to stable name.

The rename from ETCD_EXPERIMENTAL_MAX_LEARNERS to ETCD_MAX_LEARNERS aligns with etcd v3.6.5's promotion of this feature from experimental to stable.

pkg/cmd/render/env_test.go (2)

94-100: LGTM! Test expectations correctly updated.

The test now expects the stable ETCD_MAX_LEARNERS key instead of the experimental variant.


102-108: LGTM! Test expectations correctly updated.

Consistent with the other test case update.

pkg/etcdcli/etcdcli.go (2)

23-23: LGTM! Import updated for etcd v3.6.5.

The error constants have been reorganized in etcd v3.6.5, moving from etcdserver to the dedicated errors package.


193-218: LGTM! Error reference updated consistently.

The ErrLearnerNotReady reference now uses the new import path. The error handling logic remains unchanged.

bindata/bootkube/bootstrap-manifests/etcd-member-pod.yaml (1)

49-64: LGTM! Consistent flag update for bootstrap manifest.

The feature gate migration matches the change in bindata/etcd/pod.gotpl.yaml. The same verification about --snapshot-count removal applies here as well (see comment on pod.gotpl.yaml).

pkg/etcdenvvar/etcd_env.go (3)

47-54: LGTM! Fixed environment variables updated to stable keys.

The experimental prefixes have been removed from ETCD_WATCH_PROGRESS_NOTIFY_INTERVAL and ETCD_WARNING_APPLY_DURATION, aligning with etcd v3.6.5's stable API. Values are correctly preserved.


86-97: LGTM! Documentation updated consistently.

The comment now correctly references ETCD_MAX_LEARNERS instead of the experimental variant.


358-383: LGTM! Dynamic environment variable key updated.

The getMaxLearners function now returns ETCD_MAX_LEARNERS instead of the experimental variant, consistent with other changes in this file.

pkg/cmd/rev/rev_test.go (5)

14-14: LGTM! Test framework import updated for etcd v3.6.5.

The import path reflects the reorganized test framework structure in etcd v3.6.5.


17-36: LGTM! Test updated for new API.

The ClusterClient(t) calls correctly pass the testing parameter, matching the updated etcd test framework signature.


39-70: LGTM! Consistent API updates.

All ClusterClient(t) calls updated consistently throughout the test.


72-104: LGTM! Consistent API updates.

All ClusterClient(t) calls updated consistently throughout the test.


122-153: LGTM! Test cluster setup migrated to new framework API.

The changes correctly reflect the etcd v3.6.5 test framework updates:

  • NewClusterV3NewCluster
  • *integration.ClusterV3*integration.Cluster
  • ClusterClient()ClusterClient(t)

All call sites in the client pool setup are updated consistently.

bindata/etcd/pod.gotpl.yaml (1)

189-207: ---

The removal of --snapshot-count=10000 is intentional and safe.

In etcd v3.6.5, the default snapshot-count is 10000, which matches the previously explicit value. Omitting the flag will use the same behavior, so no functional change results from this removal.

pkg/etcdcli/etcdcli_pool_test.go (2)

12-12: LGTM: Test framework import updated.

The import path has been correctly updated to use the new etcd v3.6.5 test framework.


33-455: LGTM: Consistent migration to new Cluster API.

The migration from ClusterV3 to Cluster is applied consistently across all 15 test functions:

  • integration.NewCluster replaces NewClusterV3 uniformly
  • GRPCURL is consistently accessed as a field (not a method)
  • ClusterClient(t) correctly passes the testing.TB parameter
  • The newTestPool helper function signature properly updated to accept *integration.Cluster

The changes align with the etcd v3.6.5 test framework updates.

pkg/cmd/monitor/monitor_test.go (2)

16-16: LGTM: Test framework import updated.

The import path has been correctly updated to use the new etcd v3.6.5 test framework.


34-228: LGTM: Consistent migration to new Cluster API.

The migration from ClusterV3 to Cluster is complete and consistent:

  • Field type at line 34 updated to *integration.Cluster
  • createAndStartEtcdTestServer return type updated (line 83)
  • integration.NewCluster replaces NewClusterV3 (line 86)
  • GRPCURL consistently accessed as a field (line 87)
  • Helper functions pauseEtcdPeers and stopEtcdPeers signatures updated (lines 220, 228)

The changes align with the etcd v3.6.5 test framework updates and match the migration pattern in other test files.

@dusk125 dusk125 force-pushed the etcd-v3.6.5 branch 2 times, most recently from 282741e to ca7b84f Compare October 30, 2025 15:14
@openshift-ci
Copy link
Contributor

openshift-ci bot commented Oct 30, 2025

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: dusk125

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

The pull request process is described here

Needs approval from an approver in each of these files:

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

@dusk125
Copy link
Contributor Author

dusk125 commented Oct 30, 2025

/payload

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Oct 30, 2025

@dusk125: it appears that you have attempted to use some version of the payload command, but your comment was incorrectly formatted and cannot be acted upon. See the docs for usage info.

@dusk125
Copy link
Contributor Author

dusk125 commented Oct 30, 2025

/testwith ci/prow/e2e-aws-ovn-serial openshift/etcd#343

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Oct 30, 2025

@dusk125, testwith: Error processing request. ERROR:

could not determine job runs: requested job is invalid. needs to be formatted like: <org>/<repo>/<branch>/<variant?>/<job>. instead it was: ci/prow/e2e-aws-ovn-serial

@dusk125
Copy link
Contributor Author

dusk125 commented Oct 30, 2025

/payload-with-prs

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Oct 30, 2025

@dusk125: it appears that you have attempted to use some version of the payload command, but your comment was incorrectly formatted and cannot be acted upon. See the docs for usage info.

@dusk125
Copy link
Contributor Author

dusk125 commented Oct 30, 2025

/payload-with-prs 4.21 nightly informing openshift/etcd#343

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Oct 30, 2025

@dusk125: trigger 68 job(s) of type informing for the nightly release of OCP 4.21

  • periodic-ci-openshift-release-master-nightly-4.21-e2e-agent-compact-fips
  • periodic-ci-openshift-release-master-nightly-4.21-e2e-agent-ha-dualstack-conformance
  • periodic-ci-openshift-release-master-nightly-4.21-e2e-agent-single-node-ipv6-conformance
  • periodic-ci-openshift-hypershift-release-4.21-periodics-e2e-azure-aks-ovn-conformance
  • periodic-ci-openshift-release-master-nightly-4.21-console-aws
  • periodic-ci-openshift-cluster-control-plane-machine-set-operator-release-4.21-periodics-e2e-aws
  • periodic-ci-openshift-release-master-nightly-4.21-e2e-aws-csi
  • periodic-ci-openshift-release-master-ci-4.21-e2e-aws-ovn
  • periodic-ci-openshift-release-master-nightly-4.21-e2e-aws-ovn-cgroupsv2
  • periodic-ci-openshift-release-master-nightly-4.21-e2e-aws-ovn-fips
  • periodic-ci-openshift-release-master-nightly-4.21-e2e-aws-ovn-single-node
  • periodic-ci-openshift-release-master-nightly-4.21-e2e-aws-ovn-single-node-csi
  • periodic-ci-openshift-release-master-nightly-4.21-e2e-aws-ovn-single-node-serial
  • periodic-ci-openshift-release-master-nightly-4.21-e2e-aws-ovn-single-node-techpreview
  • periodic-ci-openshift-release-master-nightly-4.21-e2e-aws-ovn-single-node-techpreview-serial
  • periodic-ci-openshift-release-master-nightly-4.21-upgrade-from-stable-4.20-e2e-aws-upgrade-ovn-single-node
  • periodic-ci-openshift-release-master-ci-4.21-e2e-aws-ovn-upgrade-out-of-change
  • periodic-ci-openshift-release-master-nightly-4.21-e2e-aws-ovn-upi
  • periodic-ci-openshift-cluster-control-plane-machine-set-operator-release-4.21-periodics-e2e-azure
  • periodic-ci-openshift-release-master-nightly-4.21-e2e-azure-csi
  • periodic-ci-openshift-release-master-ci-4.21-e2e-azure-ovn
  • periodic-ci-openshift-release-master-ci-4.21-e2e-azure-ovn-serial
  • periodic-ci-openshift-release-master-ci-4.21-e2e-azure-ovn-techpreview
  • periodic-ci-openshift-release-master-ci-4.21-e2e-azure-ovn-techpreview-serial
  • periodic-ci-openshift-release-master-ci-4.21-e2e-azure-ovn-upgrade-out-of-change
  • periodic-ci-openshift-release-master-cnv-nightly-4.21-deploy-azure-kubevirt-ovn
  • periodic-ci-openshift-cluster-control-plane-machine-set-operator-release-4.21-periodics-e2e-gcp
  • periodic-ci-openshift-release-master-ci-4.21-e2e-gcp-ovn
  • periodic-ci-openshift-release-master-nightly-4.21-e2e-gcp-ovn-csi
  • periodic-ci-openshift-release-master-nightly-4.21-e2e-gcp-ovn-rt
  • periodic-ci-openshift-release-master-nightly-4.21-e2e-gcp-ovn-serial
  • periodic-ci-openshift-release-master-ci-4.21-e2e-gcp-ovn-techpreview
  • periodic-ci-openshift-release-master-ci-4.21-e2e-gcp-ovn-techpreview-serial
  • periodic-ci-openshift-release-master-ci-4.21-upgrade-from-stable-4.20-e2e-gcp-ovn-upgrade
  • periodic-ci-openshift-release-master-ci-4.21-e2e-gcp-ovn-upgrade
  • periodic-ci-openshift-hypershift-release-4.21-periodics-e2e-azure-kubevirt-ovn
  • periodic-ci-openshift-release-master-nightly-4.21-e2e-metal-ipi-ovn-dualstack
  • periodic-ci-openshift-release-master-nightly-4.21-e2e-metal-ipi-ovn-dualstack-techpreview
  • periodic-ci-openshift-release-master-nightly-4.21-e2e-metal-ipi-ovn-ipv6-techpreview
  • periodic-ci-openshift-release-master-nightly-4.21-e2e-metal-ipi-ovn-serial-ipv4
  • periodic-ci-openshift-release-master-nightly-4.21-e2e-metal-ipi-ovn-serial-virtualmedia-1of2
  • periodic-ci-openshift-release-master-nightly-4.21-e2e-metal-ipi-ovn-serial-virtualmedia-2of2
  • periodic-ci-openshift-release-master-nightly-4.21-e2e-metal-ipi-ovn-techpreview
  • periodic-ci-openshift-release-master-nightly-4.21-e2e-metal-ipi-ovn-upgrade
  • periodic-ci-openshift-release-master-nightly-4.21-upgrade-from-stable-4.20-e2e-metal-ipi-ovn-upgrade
  • periodic-ci-openshift-release-master-nightly-4.21-e2e-metal-ipi-serial-ovn-ipv6
  • periodic-ci-openshift-release-master-nightly-4.21-e2e-metal-ipi-serial-ovn-dualstack
  • periodic-ci-openshift-release-master-nightly-4.21-e2e-metal-ipi-upgrade-ovn-ipv6
  • periodic-ci-openshift-release-master-nightly-4.21-upgrade-from-stable-4.20-e2e-metal-ipi-upgrade-ovn-ipv6
  • periodic-ci-openshift-release-master-nightly-4.21-metal-ovn-single-node-recert-cluster-rename
  • periodic-ci-openshift-osde2e-main-nightly-4.21-osd-aws
  • periodic-ci-openshift-release-master-nightly-4.21-e2e-osd-ccs-gcp
  • periodic-ci-openshift-osde2e-main-nightly-4.21-osd-gcp
  • periodic-ci-openshift-release-master-nightly-4.21-e2e-aws-ovn-proxy
  • periodic-ci-openshift-release-master-nightly-4.21-e2e-metal-ovn-single-node-live-iso
  • periodic-ci-openshift-eng-ocp-qe-perfscale-ci-main-aws-4.21-nightly-x86-payload-control-plane-6nodes
  • periodic-ci-openshift-release-master-nightly-4.21-e2e-telco5g
  • periodic-ci-openshift-release-master-ci-4.21-upgrade-from-stable-4.20-e2e-aws-ovn-upgrade
  • periodic-ci-openshift-release-master-nightly-4.21-e2e-vsphere-ovn
  • periodic-ci-openshift-release-master-nightly-4.21-e2e-vsphere-ovn-csi
  • periodic-ci-openshift-release-master-nightly-4.21-e2e-vsphere-ovn-serial
  • periodic-ci-openshift-release-master-nightly-4.21-e2e-vsphere-ovn-techpreview
  • periodic-ci-openshift-release-master-nightly-4.21-e2e-vsphere-ovn-techpreview-serial
  • periodic-ci-openshift-release-master-ci-4.21-e2e-vsphere-ovn-upgrade
  • periodic-ci-openshift-release-master-ci-4.21-upgrade-from-stable-4.20-e2e-vsphere-ovn-upgrade
  • periodic-ci-openshift-release-master-nightly-4.21-e2e-vsphere-ovn-upi
  • periodic-ci-openshift-release-master-nightly-4.21-e2e-vsphere-ovn-upi-serial
  • periodic-ci-openshift-release-master-nightly-4.21-e2e-vsphere-static-ovn

See details on https://pr-payload-tests.ci.openshift.org/runs/ci/22a253d0-b5bf-11f0-8f19-6a0e774a99e5-0

@hasbro17
Copy link
Contributor

/test ?

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Oct 31, 2025

@hasbro17: The following commands are available to trigger required jobs:

/test e2e-agnostic-ovn
/test e2e-agnostic-ovn-upgrade
/test e2e-aws-ovn-serial-1of2
/test e2e-aws-ovn-serial-2of2
/test e2e-aws-ovn-single-node
/test e2e-metal-ipi-ovn-ipv6
/test e2e-operator
/test images
/test okd-scos-images
/test unit
/test verify
/test verify-deps

The following commands are available to trigger optional jobs:

/test configmap-scale
/test e2e-aws
/test e2e-aws-cpms
/test e2e-aws-disruptive
/test e2e-aws-disruptive-ovn
/test e2e-aws-etcd-certrotation
/test e2e-aws-etcd-recovery
/test e2e-aws-ovn-etcd-scaling
/test e2e-azure
/test e2e-azure-ovn-etcd-scaling
/test e2e-gcp
/test e2e-gcp-disruptive
/test e2e-gcp-disruptive-ovn
/test e2e-gcp-ovn-etcd-scaling
/test e2e-metal-assisted
/test e2e-metal-ovn-ha-cert-rotation-shutdown
/test e2e-metal-ovn-sno-cert-rotation-shutdown
/test e2e-metal-ovn-two-node-fencing
/test e2e-metal-single-node-live-iso
/test e2e-operator-fips
/test e2e-vsphere-ovn-etcd-scaling
/test okd-scos-e2e-aws-ovn

Use /test all to run the following jobs that were automatically triggered:

pull-ci-openshift-cluster-etcd-operator-main-configmap-scale
pull-ci-openshift-cluster-etcd-operator-main-e2e-agnostic-ovn
pull-ci-openshift-cluster-etcd-operator-main-e2e-agnostic-ovn-upgrade
pull-ci-openshift-cluster-etcd-operator-main-e2e-aws-ovn-serial-1of2
pull-ci-openshift-cluster-etcd-operator-main-e2e-aws-ovn-serial-2of2
pull-ci-openshift-cluster-etcd-operator-main-e2e-aws-ovn-single-node
pull-ci-openshift-cluster-etcd-operator-main-e2e-metal-ipi-ovn-ipv6
pull-ci-openshift-cluster-etcd-operator-main-e2e-operator
pull-ci-openshift-cluster-etcd-operator-main-images
pull-ci-openshift-cluster-etcd-operator-main-okd-scos-e2e-aws-ovn
pull-ci-openshift-cluster-etcd-operator-main-okd-scos-images
pull-ci-openshift-cluster-etcd-operator-main-unit
pull-ci-openshift-cluster-etcd-operator-main-verify
pull-ci-openshift-cluster-etcd-operator-main-verify-deps

In response to this:

/test ?

Instructions 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.

@hasbro17
Copy link
Contributor

/test e2e-aws-ovn-etcd-scaling
/test e2e-azure-ovn-etcd-scaling
/test e2e-gcp-ovn-etcd-scaling
/test e2e-vsphere-ovn-etcd-scaling

Sanity checking the scaling jobs to double check the behavior of the updated max learner flag.
The jobs themselves may fail due to other invariants but we should confirm the actual scaling test.

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Oct 31, 2025

@dusk125: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name Commit Details Required Rerun command
ci/prow/e2e-aws-ovn-serial-2of2 4417c51 link true /test e2e-aws-ovn-serial-2of2
ci/prow/e2e-aws-ovn-single-node 4417c51 link true /test e2e-aws-ovn-single-node
ci/prow/e2e-vsphere-ovn-etcd-scaling 6c1b1a3 link false /test e2e-vsphere-ovn-etcd-scaling
ci/prow/e2e-metal-ipi-ovn-ipv6 4417c51 link true /test e2e-metal-ipi-ovn-ipv6
ci/prow/e2e-agnostic-ovn 4417c51 link true /test e2e-agnostic-ovn
ci/prow/okd-scos-e2e-aws-ovn 4417c51 link false /test okd-scos-e2e-aws-ovn
ci/prow/e2e-aws-ovn-serial-1of2 4417c51 link true /test e2e-aws-ovn-serial-1of2
ci/prow/e2e-agnostic-ovn-upgrade 4417c51 link true /test e2e-agnostic-ovn-upgrade
ci/prow/e2e-azure-ovn-etcd-scaling 6c1b1a3 link false /test e2e-azure-ovn-etcd-scaling
ci/prow/configmap-scale 4417c51 link false /test configmap-scale
ci/prow/e2e-gcp-ovn-etcd-scaling 6c1b1a3 link false /test e2e-gcp-ovn-etcd-scaling
ci/prow/e2e-aws-ovn-etcd-scaling 6c1b1a3 link false /test e2e-aws-ovn-etcd-scaling
ci/prow/e2e-operator 4417c51 link true /test e2e-operator

Full PR test history. Your PR dashboard.

Instructions 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.

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

Labels

approved Indicates a PR has been approved by an approver from all required OWNERS files. do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. jira/valid-reference Indicates that this PR references a valid Jira ticket of any type.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants