From cde1d4e08818113e848afe5625b20244559f22cb Mon Sep 17 00:00:00 2001 From: d068777 Date: Wed, 29 Sep 2021 13:02:10 +0200 Subject: [PATCH 1/5] make max_call_size configurable --- physical/etcd/etcd3.go | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/physical/etcd/etcd3.go b/physical/etcd/etcd3.go index ab4acebaff94e..19a5a4774c716 100644 --- a/physical/etcd/etcd3.go +++ b/physical/etcd/etcd3.go @@ -119,6 +119,15 @@ func newEtcd3Backend(conf map[string]string, logger log.Logger) (physical.Backen cfg.MaxCallRecvMsgSize = int(val) } + if maxCall, ok := conf["max_call_size"]; ok { + // grpc converts this to uint32 internally, so parse as that to avoid passing invalid values + val, err := strconv.ParseUint(maxCall, 10, 32) + if err != nil { + return nil, fmt.Errorf("value of 'max_call_size' (%v) could not be understood: %w", maxCall, err) + } + cfg.MaxCallSendMsgSize = int(val) + } + etcd, err := clientv3.New(cfg) if err != nil { return nil, err From f9d13ef94e7939e9a11c6d6052e265d7e7ed1d1f Mon Sep 17 00:00:00 2001 From: d068777 Date: Wed, 29 Sep 2021 14:54:14 +0200 Subject: [PATCH 2/5] add changelog --- changelog/12666.txt | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 changelog/12666.txt diff --git a/changelog/12666.txt b/changelog/12666.txt new file mode 100644 index 0000000000000..d54421c5c5329 --- /dev/null +++ b/changelog/12666.txt @@ -0,0 +1,4 @@ + +```release-note:improvement +core: Make etcd parameter MaxCallSendMsgSize configurable +``` From edf99e0eab4e31c7b56e838898ba9519dfa1e8a7 Mon Sep 17 00:00:00 2001 From: d068777 Date: Tue, 5 Oct 2021 08:20:57 +0200 Subject: [PATCH 3/5] update etcd docs and fix changelog --- changelog/12666.txt | 2 +- website/content/docs/configuration/storage/etcd.mdx | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/changelog/12666.txt b/changelog/12666.txt index d54421c5c5329..a6e008773a363 100644 --- a/changelog/12666.txt +++ b/changelog/12666.txt @@ -1,4 +1,4 @@ ```release-note:improvement -core: Make etcd parameter MaxCallSendMsgSize configurable +storage/etcd: Make etcd parameter MaxCallSendMsgSize configurable ``` diff --git a/website/content/docs/configuration/storage/etcd.mdx b/website/content/docs/configuration/storage/etcd.mdx index 5134892f4df4a..2cc5b52375de9 100644 --- a/website/content/docs/configuration/storage/etcd.mdx +++ b/website/content/docs/configuration/storage/etcd.mdx @@ -84,6 +84,14 @@ storage "etcd" { - `lock_timeout` `(string: "15s")` – Specifies lock timeout for master Vault instance. Set bigger value if you don't need faster recovery. +- `max_receive_size` `(int32: math.MaxInt32)` – Specifies the client-side response receive limit. +Make sure that "MaxCallRecvMsgSize" >= server-side default send/recv limit. +("--max-request-bytes" flag to etcd or "embed.Config.MaxRequestBytes"). + +- `max_call_size` `(int32: 2 * 1024 * 1024)` – Specifies the client-side request send limit in bytes. +Make sure that "MaxCallSendMsgSize" < server-side default send/recv limit. +("--max-request-bytes" flag to etcd or "embed.Config.MaxRequestBytes"). + ## `etcd` Examples ### DNS Discovery of cluster members From 99edf637287347072d5ad0f3814a7537c4d2a33c Mon Sep 17 00:00:00 2001 From: Anton Carlos Straeter Date: Sat, 17 Sep 2022 08:43:44 +0200 Subject: [PATCH 4/5] rename to max_send_size --- physical/etcd/etcd3.go | 6 +++--- website/content/docs/configuration/storage/etcd.mdx | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/physical/etcd/etcd3.go b/physical/etcd/etcd3.go index 19a5a4774c716..5a2f4d76b9516 100644 --- a/physical/etcd/etcd3.go +++ b/physical/etcd/etcd3.go @@ -119,11 +119,11 @@ func newEtcd3Backend(conf map[string]string, logger log.Logger) (physical.Backen cfg.MaxCallRecvMsgSize = int(val) } - if maxCall, ok := conf["max_call_size"]; ok { + if maxSend, ok := conf["max_send_size"]; ok { // grpc converts this to uint32 internally, so parse as that to avoid passing invalid values - val, err := strconv.ParseUint(maxCall, 10, 32) + val, err := strconv.ParseUint(maxSend, 10, 32) if err != nil { - return nil, fmt.Errorf("value of 'max_call_size' (%v) could not be understood: %w", maxCall, err) + return nil, fmt.Errorf("value of 'max_send_size' (%v) could not be understood: %w", maxSend, err) } cfg.MaxCallSendMsgSize = int(val) } diff --git a/website/content/docs/configuration/storage/etcd.mdx b/website/content/docs/configuration/storage/etcd.mdx index 2cc5b52375de9..a74f4e497006d 100644 --- a/website/content/docs/configuration/storage/etcd.mdx +++ b/website/content/docs/configuration/storage/etcd.mdx @@ -84,11 +84,11 @@ storage "etcd" { - `lock_timeout` `(string: "15s")` – Specifies lock timeout for master Vault instance. Set bigger value if you don't need faster recovery. -- `max_receive_size` `(int32: math.MaxInt32)` – Specifies the client-side response receive limit. -Make sure that "MaxCallRecvMsgSize" >= server-side default send/recv limit. +- `max_receive_size` `(int)` – Specifies the client-side response receive limit. +Make sure that "max_receive_size" >= server-side default send/recv limit. ("--max-request-bytes" flag to etcd or "embed.Config.MaxRequestBytes"). -- `max_call_size` `(int32: 2 * 1024 * 1024)` – Specifies the client-side request send limit in bytes. +- `max_send_size` `(int)` – Specifies the client-side request send limit in bytes. Make sure that "MaxCallSendMsgSize" < server-side default send/recv limit. ("--max-request-bytes" flag to etcd or "embed.Config.MaxRequestBytes"). From 4f25e735e2d81643556911ceccc9cd57865f1ef7 Mon Sep 17 00:00:00 2001 From: Anton Carlos Straeter Date: Sat, 17 Sep 2022 08:49:21 +0200 Subject: [PATCH 5/5] docs variable fix --- website/content/docs/configuration/storage/etcd.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/content/docs/configuration/storage/etcd.mdx b/website/content/docs/configuration/storage/etcd.mdx index a74f4e497006d..9d3387f77c67e 100644 --- a/website/content/docs/configuration/storage/etcd.mdx +++ b/website/content/docs/configuration/storage/etcd.mdx @@ -89,7 +89,7 @@ Make sure that "max_receive_size" >= server-side default send/recv limit. ("--max-request-bytes" flag to etcd or "embed.Config.MaxRequestBytes"). - `max_send_size` `(int)` – Specifies the client-side request send limit in bytes. -Make sure that "MaxCallSendMsgSize" < server-side default send/recv limit. +Make sure that "max_send_size" < server-side default send/recv limit. ("--max-request-bytes" flag to etcd or "embed.Config.MaxRequestBytes"). ## `etcd` Examples