fix: enable compression and bump gRPC max msg size

Fixes #7482

Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
This commit is contained in:
Andrey Smirnov 2023-07-19 20:37:37 +04:00
parent 2f2eca8617
commit 6b39c6a4d3
No known key found for this signature in database
GPG Key ID: 7B26396447AB6DFD
4 changed files with 22 additions and 5 deletions

View File

@ -179,7 +179,9 @@ func apidMain() error {
proxy.TransparentHandler(
router.Director,
proxy.WithStreamedDetector(router.StreamedDetector),
)),
),
),
grpc.MaxRecvMsgSize(constants.GRPCMaxMessageSize),
),
factory.WithUnaryInterceptor(injector.UnaryInterceptor()),
factory.WithStreamInterceptor(injector.StreamInterceptor()),
@ -201,7 +203,9 @@ func apidMain() error {
proxy.TransparentHandler(
router.Director,
proxy.WithStreamedDetector(router.StreamedDetector),
)),
),
),
grpc.MaxRecvMsgSize(constants.GRPCMaxMessageSize),
),
factory.WithUnaryInterceptor(injector.UnaryInterceptor()),
factory.WithStreamInterceptor(injector.StreamInterceptor()),

View File

@ -13,6 +13,8 @@ import (
"path/filepath"
"time"
"google.golang.org/grpc"
v1alpha1server "github.com/siderolabs/talos/internal/app/machined/internal/server/v1alpha1"
"github.com/siderolabs/talos/internal/app/machined/pkg/runtime"
"github.com/siderolabs/talos/internal/app/machined/pkg/system"
@ -128,6 +130,10 @@ func (s *machinedService) Main(ctx context.Context, r runtime.Runtime, logWriter
},
factory.WithLog("machined ", logWriter),
factory.ServerOptions(
grpc.MaxRecvMsgSize(constants.GRPCMaxMessageSize),
),
factory.WithUnaryInterceptor(injector.UnaryInterceptor()),
factory.WithStreamInterceptor(injector.StreamInterceptor()), //nolint:contextcheck

View File

@ -17,6 +17,7 @@ import (
"github.com/siderolabs/gen/slices"
"google.golang.org/grpc"
"google.golang.org/grpc/credentials"
"google.golang.org/grpc/encoding/gzip"
clientconfig "github.com/siderolabs/talos/pkg/machinery/client/config"
"github.com/siderolabs/talos/pkg/machinery/client/resolver"
@ -38,10 +39,13 @@ func (c *Client) getConn(ctx context.Context, opts ...grpc.DialOption) (*grpcCon
constants.ApidPort),
)
dialOpts := []grpc.DialOption(nil)
dialOpts := []grpc.DialOption{
grpc.WithDefaultCallOptions( // enable compression by default
grpc.UseCompressor(gzip.Name),
grpc.MaxCallRecvMsgSize(constants.GRPCMaxMessageSize),
),
}
dialOpts = append(dialOpts, c.options.grpcDialOptions...)
dialOpts = append(dialOpts, opts...)
if c.options.unixSocketPath != "" {

View File

@ -881,6 +881,9 @@ const (
// MaintenanceServiceCommonName is the CN of the maintenance service server certificate.
MaintenanceServiceCommonName = "maintenance-service.talos.dev"
// GRPCMaxMessageSize is the maximum message size for Talos API.
GRPCMaxMessageSize = 32 * 1024 * 1024
)
// See https://linux.die.net/man/3/klogctl