Skip to content

Conversation

@chengfang
Copy link
Collaborator

@chengfang chengfang commented Nov 12, 2025

Summary by CodeRabbit

  • Chores
    • Upgraded Go toolchain to 1.25.0 and modernized many core dependencies (Kubernetes APIs to v0.34.0, Prometheus, OpenTelemetry, gRPC gateway, Azure SDKs, JWT, YAML, and others).
    • Updated build environment to use Go 1.25 and bumped controller tooling versions.
    • Adjusted CRD annotations to reflect updated tooling.
    • Updated backend gRPC client initialization path.

✏️ Tip: You can customize this high-level summary in your review settings.

@coderabbitai
Copy link

coderabbitai bot commented Nov 12, 2025

Walkthrough

Replaces a gRPC client creation call in cmd/ask_pass.go and modernizes build toolchain and dependencies (Go 1.25, Kubernetes v0.34.0 surface, Prometheus, OpenTelemetry, gRPC-gateway, Azure SDKs, etc.), plus updates to Dockerfile, Makefile, and CRD annotations.

Changes

Cohort / File(s) Summary
gRPC client creation
cmd/ask_pass.go
Replaces grpc_util.BlockingDial with grpc_util.BlockingNewClient in NewAskPassCommand; remaining logic unchanged.
Go toolchain & dependencies
go.mod, registry-scanner/go.mod
Bumps Go toolchain to 1.25.0 and upgrades many module requirements and replacements (Kubernetes APIs to v0.34.0, argo-cd, Prometheus, OpenTelemetry, grpc-gateway, Azure SDKs, casbin, etc.); no exported API signature changes.
Build environment image
Dockerfile
Updates builder base image from golang:1.24 to golang:1.25.
Build tooling & CRD annotations
Makefile, config/crd/bases/argocd-image-updater.argoproj.io_imageupdaters.yaml, config/install.yaml
Bumps CONTROLLER_TOOLS_VERSION from v0.16.1 to v0.19.0 in Makefile; updates controller-gen.kubebuilder.io/version annotation from v0.16.1 to v0.19.0 in CRD and install manifest.

Pre-merge checks

❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% 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
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the main change: bumping argo-cd dependency from v3.1.9 to v3.2.1, which aligns with the primary dependency upgrade shown in go.mod. The title is concise, specific, and follows conventional commit format.

📜 Recent review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 1084f1c and be03456.

⛔ Files ignored due to path filters (2)
  • go.sum is excluded by !**/*.sum
  • registry-scanner/go.sum is excluded by !**/*.sum
📒 Files selected for processing (7)
  • Dockerfile (1 hunks)
  • Makefile (1 hunks)
  • cmd/ask_pass.go (1 hunks)
  • config/crd/bases/argocd-image-updater.argoproj.io_imageupdaters.yaml (1 hunks)
  • config/install.yaml (1 hunks)
  • go.mod (11 hunks)
  • registry-scanner/go.mod (5 hunks)
✅ Files skipped from review due to trivial changes (2)
  • config/crd/bases/argocd-image-updater.argoproj.io_imageupdaters.yaml
  • config/install.yaml
🚧 Files skipped from review as they are similar to previous changes (1)
  • cmd/ask_pass.go
🧰 Additional context used
🧠 Learnings (1)
📚 Learning: 2025-11-30T17:35:33.906Z
Learnt from: dkarpele
Repo: argoproj-labs/argocd-image-updater PR: 1377
File: docs/install/installation.md:14-20
Timestamp: 2025-11-30T17:35:33.906Z
Learning: In argocd-image-updater v1.x+, the Kustomize base is located at `/config/default` in the repository, not `/manifests/base` (which was the legacy location in v0.x versions). The correct remote base URL is `https://github.com/argoproj-labs/argocd-image-updater/config/default`.

Applied to files:

  • go.mod
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: Analyze (go)
🔇 Additional comments (7)
Dockerfile (1)

2-2: Go toolchain version bump is consistent with module updates.

The Go builder image is updated from 1.24 to 1.25 to align with the go.mod toolchain requirement. Confirm Go 1.25 is available and stable in your CI/build environment.

Makefile (1)

221-221: Verify controller-tools v0.19.0 compatibility with CRD generation.

The controller-tools version is bumped from v0.16.1 to v0.19.0 (3 minor versions). This is a significant jump that may affect CRD generation and validation. Confirm:

  • CRD generation (make manifests) produces valid YAML.
  • Generated CRDs are compatible with Kubernetes v0.34.0.
  • No breaking changes in controller-tools v0.17, v0.18, or v0.19 affect your CRD structure.
registry-scanner/go.mod (1)

3-3: Kubernetes API versions are consistently updated to v0.34.0.

The registry-scanner module is updated to Go 1.25.0 and Kubernetes v0.34.0, aligning with the main module. All replace directives correctly point to v0.34.0 and indirect dependencies are properly resolved.

Verify that the Kubernetes v0.34.0 surface is compatible with your gRPC and serialization dependencies. Run go mod tidy && go mod verify to ensure no version conflicts exist in the full dependency tree.

Also applies to: 18-20, 79-81

go.mod (4)

153-161: Verify OpenTelemetry v1.38.0 compatibility.

OpenTelemetry components are updated to v1.38.0 (otel, exporters/otlp, proto). Confirm:

  • OpenTelemetry v1.38.0 is compatible with your instrumentation and exporter configuration.
  • No breaking changes in the otel API/SDK between prior versions and v1.38.0.
  • All metrics, tracing, and instrumentation paths are tested post-upgrade.

30-32: Kubernetes v0.34.0 API surface updates are broadly applied with consistent replace directives.

The Kubernetes API surface is updated to v0.34.0 across all modules (k8s.io/api, k8s.io/apimachinery, k8s.io/client-go, and 30+ additional modules). Replace directives (lines 205–235) are comprehensive and consistent.

Verify:

  • CRD generation and apiserver compatibility with Kubernetes v0.34.0.
  • No deprecated APIs in your custom resources or controllers are affected.
  • Integration tests pass with the new API surface.

Also applies to: 205-235


3-3: Go toolchain requirement aligns across modules.

Go is updated to 1.25.0 across go.mod and registry-scanner/go.mod, aligning with Dockerfile changes. Confirm Go 1.25 is stable and available in your CI environment.


7-8: Critical: Argo CD v3.2.1 introduces gRPC API changes—verify the missing cmd/ask_pass.go.

Argo CD is bumped from v3.1.9 to v3.2.1 (minor version bump). The summary indicates a gRPC client creation API change (BlockingDial → BlockingNewClient). However, cmd/ask_pass.go is not provided for review and Codecov reports 0% patch coverage on this file with 1 missing line.

This is a blocker: the code change must be reviewed before merging. Additionally, the PR is marked "hold" due to CI errors ("invalid array length -delta * delta"). Clarify:

Please provide cmd/ask_pass.go for review and document all breaking changes introduced by the argo-cd v3.2.1 upgrade. Clarify CI error status and whether the PR is truly ready for review.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

@chengfang chengfang marked this pull request as draft November 12, 2025 16:04
@codecov-commenter
Copy link

codecov-commenter commented Nov 12, 2025

Codecov Report

❌ Patch coverage is 0% with 1 line in your changes missing coverage. Please review.
✅ Project coverage is 70.80%. Comparing base (ebc4fdc) to head (be03456).

Files with missing lines Patch % Lines
cmd/ask_pass.go 0.00% 1 Missing ⚠️
Additional details and impacted files
@@           Coverage Diff           @@
##           master    #1337   +/-   ##
=======================================
  Coverage   70.80%   70.80%           
=======================================
  Files          49       49           
  Lines        4528     4528           
=======================================
  Hits         3206     3206           
  Misses       1125     1125           
  Partials      197      197           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@chengfang
Copy link
Collaborator Author

chengfang commented Nov 13, 2025

Mark it as hold for now.

The errors in ci: "invalid array length -delta * delta" may be fixed once #1317 is merged. Will revisit this PR later.

Update 2025-12-01: the fix to the above error is to upgrade controller-gen from 0.16.1 to 0.19. 0.16.1 is not compatible with go 1.15.

@chengfang chengfang changed the title chore(deps): bump argo-cd from v3.1.9 to v3.2.0 chore(deps): bump argo-cd from v3.1.9 to v3.2.1 Dec 2, 2025
…bility

Upgrades controller-tools from v0.16.1 to v0.19.0 to fix CI build failures
with Go 1.25. The older version depended on golang.org/x/tools v0.24.0 which
is incompatible with Go 1.25 and caused compilation errors:
  invalid array length -delta * delta (constant -256 of type int64)

The new version uses golang.org/x/tools v0.36.0 which is fully compatible
with Go 1.25.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
Signed-off-by: Cheng Fang <[email protected]>
@chengfang chengfang marked this pull request as ready for review December 2, 2025 05:39
@chengfang chengfang removed the hold label Dec 2, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants