From a5c7186739c4772e7385d979c668a82b4ef7d23c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jes=C3=BAs=20Fern=C3=A1ndez?= <7312236+fernandezcuesta@users.noreply.github.com> Date: Mon, 21 Sep 2026 23:40:06 +0200 Subject: [PATCH 1/2] fix: expose max-send-message-size MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Jesús Fernández <7312236+fernandezcuesta@users.noreply.github.com> --- crossplane/function/cli.py | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/crossplane/function/cli.py b/crossplane/function/cli.py index ee22bdf..0b06f8c 100644 --- a/crossplane/function/cli.py +++ b/crossplane/function/cli.py @@ -56,12 +56,20 @@ def cli(cache_size, **kwargs): def standard_options(func: F) -> F: """Apply the standard Composition Function CLI options to a Click command.""" + @click.option( + "--max-send-message-size", + type=int, + default=None, + envvar="MAX_SEND_MESSAGE_SIZE", + help="Maximum size of sent gRPC messages in MB. Defaults to --max-grpc-message-size.", + ) @click.option( "--max-recv-message-size", + "--max-grpc-message-size", type=int, default=DEFAULT_MAX_RECV_MESSAGE_SIZE, show_default=True, - envvar="MAX_RECV_MESSAGE_SIZE", + envvar=["MAX_RECV_MESSAGE_SIZE", "MAX_GRPC_MESSAGE_SIZE"], help="Maximum size of received gRPC messages in MB.", ) @click.option( @@ -107,15 +115,18 @@ def run( # noqa: PLR0913 tls_certs_dir: str | None, insecure: bool, max_recv_message_size: int, + max_send_message_size: int | None, ) -> None: """Start a composition function gRPC server with standard options.""" level = logging.Level.DEBUG if debug else logging.Level.INFO logging.configure(level=level) - size_bytes = max_recv_message_size * 1024 * 1024 + if max_send_message_size is None: + max_send_message_size = max_recv_message_size + options = [ - ("grpc.max_receive_message_length", size_bytes), - ("grpc.max_send_message_length", size_bytes), + ("grpc.max_receive_message_length", max_recv_message_size * 1024 * 1024), + ("grpc.max_send_message_length", max_send_message_size * 1024 * 1024), ] runtime.serve( From 9a0c9a6dd7cb1071635b297979f87c65dae7b266 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jes=C3=BAs=20Fern=C3=A1ndez?= <7312236+fernandezcuesta@users.noreply.github.com> Date: Tue, 22 Sep 2026 00:09:51 +0200 Subject: [PATCH 2/2] fix: lint MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Jesús Fernández <7312236+fernandezcuesta@users.noreply.github.com> --- crossplane/function/cli.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/crossplane/function/cli.py b/crossplane/function/cli.py index 0b06f8c..e18967c 100644 --- a/crossplane/function/cli.py +++ b/crossplane/function/cli.py @@ -61,7 +61,8 @@ def standard_options(func: F) -> F: type=int, default=None, envvar="MAX_SEND_MESSAGE_SIZE", - help="Maximum size of sent gRPC messages in MB. Defaults to --max-grpc-message-size.", + help="Maximum size of sent gRPC messages in MB. " + "Defaults to --max-recv-message-size.", ) @click.option( "--max-recv-message-size",