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 many dependencies in go.mod; migrate tests to updated integration API (ClusterV3 → Cluster, NewClusterV3 → NewCluster, ClusterClient() → ClusterClient(t), GRPCURL() → GRPCURL); switch some etcd error imports to etcdserver/errors; rename several ETCD env keys; and change etcd startup flags in 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/etcdenvvar/..., test/...
Change test imports to .../framework/integration; replace ClusterV3Cluster; NewClusterV3(...)NewCluster(...); ClusterClient()ClusterClient(t)/ClusterClient(TB); replace GRPCURL() calls with GRPCURL field; update helper signatures and call sites.
Error import refactoring
pkg/etcdcli/etcdcli.go, pkg/operator/clustermembercontroller/clustermembercontroller.go
Replace usage of etcdserver.ErrLearnerNotReady with errors.ErrLearnerNotReady from go.etcd.io/etcd/server/v3/etcdserver/errors and update comparisons 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 maps, getters, docs, 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.
etcdctl → etcdutl in tests
test/e2e/etcdctl_test.go
Replace etcdctl snapshot status/restore commands with etcdutl snapshot status/restore and update expected command usages in the test.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

  • Files requiring extra attention:
    • All updated test call sites changing ClusterClient()ClusterClient(t) / TB and adjusted helper signatures.
    • Member GRPCURL field access vs prior method calls — ensure struct/API matches imports.
    • Env var key renames across code and tests to avoid stale references.
    • go.mod dependency bumps (etcd, gRPC, otel, jwt v5, genproto) for import and API compatibility.
    • YAML startup flag changes: confirm feature-gate usage and the removed --snapshot-count effect.

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.

📜 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 4417c51 and 261181b.

📒 Files selected for processing (1)
  • test/e2e/etcdctl_test.go (1 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
**

⚙️ CodeRabbit configuration file

-Focus on major issues impacting performance, readability, maintainability and security. Avoid nitpicks and avoid verbosity.

Files:

  • test/e2e/etcdctl_test.go
🔇 Additional comments (1)
test/e2e/etcdctl_test.go (1)

59-60: No action required — the code change is correct for etcd 3.6.5.

etcd v3.6.5 includes the etcdutl binary in official releases, so the migration from etcdctl to etcdutl for snapshot status and restore operations is valid. Since snapshot status and restore are offline operations (they don't require a running etcd server), using etcdutl is the correct approach for etcd 3.6.5. The binary will be available in any properly deployed etcd 3.6.5 environment.

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.

@dusk125 dusk125 changed the title WIP: CNTRLPLANE-1769: Update to v3.6.5 CNTRLPLANE-1769: Update to v3.6.5 Nov 11, 2025
@openshift-ci openshift-ci bot removed the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Nov 11, 2025
@dusk125
Copy link
Contributor Author

dusk125 commented Nov 11, 2025

/hold cancel
openshift/etcd#343 has merged

@openshift-ci openshift-ci bot removed the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Nov 11, 2025
@tjungblu
Copy link
Contributor

/retest-required

1 similar comment
@tjungblu
Copy link
Contributor

/retest-required

exec etcd \
--logger=zap \
--experimental-initial-corrupt-check=true \
--feature-gates=InitialCorruptCheck=true \
Copy link
Contributor

Choose a reason for hiding this comment

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

not sure whether you saw it on the install bundle, but it fails on the bootstrapping node:

flag provided but not defined: -feature-gates
Usage:

  etcd [flags]
    Start an etcd server.

  etcd --version
    Show the version of etcd.

  etcd -h | --help
    Show the help information about etcd.

  etcd --config-file
    Path to the server configuration file. Note that if a configuration file is provided, other command line flags and environment variables will be ignored.

  etcd gateway
    Run the stateless pass-through etcd TCP connection forwarding proxy.

  etcd grpc-proxy
    Run the stateless etcd v3 gRPC L7 reverse proxy.


Copy link
Contributor

Choose a reason for hiding this comment

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

ah, shoot. We need the 3.6 image in the nightly 🤦 sorry

Copy link
Contributor Author

Choose a reason for hiding this comment

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

ah, shoot. We need the 3.6 image in the nightly 🤦 sorry

Yeah... that's why I stopped retest-requiring :D

@dusk125
Copy link
Contributor Author

dusk125 commented Nov 13, 2025

/retest

@dusk125
Copy link
Contributor Author

dusk125 commented Nov 13, 2025

/test e2e-agnostic-ovn

@dusk125
Copy link
Contributor Author

dusk125 commented Nov 14, 2025

/retest-required

1 similar comment
@tjungblu
Copy link
Contributor

/retest-required

@dusk125
Copy link
Contributor Author

dusk125 commented Nov 14, 2025

/retest

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Nov 14, 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-vsphere-ovn-etcd-scaling 6c1b1a3 link false /test e2e-vsphere-ovn-etcd-scaling
ci/prow/e2e-azure-ovn-etcd-scaling 6c1b1a3 link false /test e2e-azure-ovn-etcd-scaling
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-aws-ovn-single-node 261181b link true /test e2e-aws-ovn-single-node

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

4 participants