mirror of
https://github.com/opentofu/opentofu.git
synced 2025-01-15 19:22:46 -06:00
e680211bc0
The Consul KV store limits the size of the values in the KV store to 524288 bytes. Once the state reaches this limit Consul will refuse to save it. It is currently possible to try to bypass this limitation by enable Gzip but the issue will manifest itself later. This is particularly inconvenient as it is possible for the state to reach this limit without changing the Terraform configuration as datasources or computed attributes can suddenly return more data than they used to. Several users already had issues with this. To fix the problem once and for all we now split the payload in chunks of 524288 bytes when they are to large and store them separatly in the KV store. A small JSON payload that references all the chunks so we can retrieve them later and concatenate them to reconstruct the payload. While this has the caveat of requiring multiple calls to Consul that cannot be done as a single transaction as those have the same size limit, we use unique paths for the chunks and CAS when setting the last payload so possible issues during calls to Put() should not result in unreadable states. Closes https://github.com/hashicorp/terraform/issues/19182 |
||
---|---|---|
.. | ||
atlas | ||
init | ||
local | ||
remote | ||
remote-state | ||
backend.go | ||
cli.go | ||
nil_test.go | ||
nil.go | ||
operation_type.go | ||
operationtype_string.go | ||
testing.go | ||
unparsed_value_test.go | ||
unparsed_value.go |