Skip to content

Provide injection mechanism to set custom received message size for gRPC clients in a poollet - #1443

Open
balpert89 wants to merge 1 commit into
ironcore-dev:mainfrom
opensovereigncloud:osc/enh/grpc-client-receive-message-size
Open

Provide injection mechanism to set custom received message size for gRPC clients in a poollet#1443
balpert89 wants to merge 1 commit into
ironcore-dev:mainfrom
opensovereigncloud:osc/enh/grpc-client-receive-message-size

Conversation

@balpert89

@balpert89 balpert89 commented Feb 2, 2026

Copy link
Copy Markdown
Contributor

Proposed Changes

  • introduces a flag for poollet to provide custom received message size for gRPC clients

Fixes #1442

Summary by CodeRabbit

  • New Features
    • Added --grpc-max-received-msg-size command-line flag to configure maximum message size handling, with a default value of 12 MB. This allows users to adjust message size limits based on their specific requirements.

@balpert89
balpert89 requested a review from a team February 2, 2026 10:33
@github-actions github-actions Bot added size/S enhancement New feature or request labels Feb 2, 2026
@coderabbitai

coderabbitai Bot commented Feb 2, 2026

Copy link
Copy Markdown

Walkthrough

The changes introduce a configurable gRPC max receive message size for the volume poollet. A new constant defines a 12 MB default value, a command-line flag allows users to override it, and the remote volume runtime is updated to accept and apply this size parameter during gRPC client initialization.

Changes

Cohort / File(s) Summary
gRPC Configuration Constant
poollet/common/utils/runtime.go
Defines a new exported constant DefaultGrpcMaxRecvMsgSize set to 12 MB (1024 \* 1024 \* 12).
Remote Runtime Initialization
iri/remote/volume/runtime.go
Updates NewRemoteRuntime function signature to accept a size parameter and applies it to gRPC client configuration via grpc.WithDefaultCallOptions(grpc.MaxCallRecvMsgSize(size)).
Application Configuration
poollet/volumepoollet/cmd/volumepoollet/app/app.go
Adds GrpcMaxReceivedMessageSize field to Options struct and introduces a --grpc-max-received-msg-size command-line flag wired to this field with a default value from the constants package. Updates remote runtime instantiation to pass the configured size.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

🚥 Pre-merge checks | ✅ 4 | ❌ 1
❌ 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%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately and specifically describes the primary change: adding an injection mechanism to configure gRPC client received message size in poollets.
Description check ✅ Passed The description provides the key proposed change and references the linked issue, though it is brief and lacks additional detail about the implementation approach.
Linked Issues check ✅ Passed The code changes fully address issue #1442 by introducing a configurable gRPC max receive message size flag, allowing poollets to handle larger list responses that previously exceeded the default 4MB limit.
Out of Scope Changes check ✅ Passed All changes are directly scoped to implementing the gRPC message size configuration mechanism; no unrelated modifications detected.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

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.

@balpert89 balpert89 changed the title provide injection mechanism to set custom received message size Provide injection mechanism to set custom received message size for gRPC clients in a poollet Feb 2, 2026
@opensovereigncloud-user
opensovereigncloud-user force-pushed the osc/enh/grpc-client-receive-message-size branch from f4dd3c9 to bb222e3 Compare February 2, 2026 10:35
@balpert89

Copy link
Copy Markdown
Contributor Author

I have set the PR to draft for now as this is only to start a discussion for how to provide a means to set a custom message size. Missing pieces:

  • machinepoollet
  • bucketpoollet
  • irictl-*

@balpert89 balpert89 self-assigned this Feb 2, 2026
@hardikdr hardikdr added the area/iaas Issues related to IronCore IaaS development. label Feb 3, 2026
@hardikdr hardikdr added this to Roadmap Feb 3, 2026
@lukasfrank

lukasfrank commented Feb 25, 2026

Copy link
Copy Markdown
Member

Thanks for the PR, it definitely gives us more flexibility. However, I would be in favor of seeing this only as a hot fix and think about a proper fix. For sure we can always push the limit but it might introduce other issues. I haven't looked into the problem into detail but we might want to use gRPC streaming or pagination.

edit: ah I just have seen that you already mentioned the same here #1442 (comment) 👍

@friegger friegger added this to IaaS Jun 22, 2026
@github-project-automation github-project-automation Bot moved this to Backlog in IaaS Jun 22, 2026
@friegger friegger removed this from Roadmap Jul 2, 2026
@friegger friegger removed this from IaaS Jul 2, 2026
@hardikdr hardikdr added this to Roadmap Aug 22, 2026
@github-actions

Copy link
Copy Markdown

This PR is stale because it has been open 45 days with no activity. Remove stale label or comment or this will be closed in 10 days.

@github-actions github-actions Bot added the stale label Aug 28, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/iaas Issues related to IronCore IaaS development. do-not-merge enhancement New feature or request size/S stale

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

Poollet: gRPC client discards list operations when exhausting message body receive size

5 participants