From 14b4712806eacf779323fb09c68c74c2b1f9839d Mon Sep 17 00:00:00 2001 From: joshvanl Date: Tue, 27 Jun 2023 11:48:25 +0100 Subject: [PATCH] Adds ETCD v2 Signed-off-by: joshvanl --- daprdocs/content/en/reference/api/actors_api.md | 2 +- .../supported-state-stores/setup-etcd.md | 14 +++++++++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/daprdocs/content/en/reference/api/actors_api.md b/daprdocs/content/en/reference/api/actors_api.md index 5e4bbd579..e2c9920a1 100644 --- a/daprdocs/content/en/reference/api/actors_api.md +++ b/daprdocs/content/en/reference/api/actors_api.md @@ -77,7 +77,7 @@ Persists the change to the state for an actor as a multi-item transaction. #### TTL -With the [`ActorStateTTL` feature enabled]]({{< ref +With the [`ActorStateTTL` feature enabled]({{< ref "support-preview-features.md" >}}), actor clients can set the `ttlInSeconds` field in the transaction metadata to have the state expire after that many seconds. If the `ttlInSeconds` field is not set, the state will not expire. diff --git a/daprdocs/content/en/reference/components-reference/supported-state-stores/setup-etcd.md b/daprdocs/content/en/reference/components-reference/supported-state-stores/setup-etcd.md index 35834d1c4..25def6170 100644 --- a/daprdocs/content/en/reference/components-reference/supported-state-stores/setup-etcd.md +++ b/daprdocs/content/en/reference/components-reference/supported-state-stores/setup-etcd.md @@ -18,7 +18,9 @@ metadata: name: spec: type: state.etcd - version: v1 + # Supports v1 and v2. Users should always use v2 by default. There is no + # migration path from v1 to v2, see `versioning` below. + version: v2 metadata: - name: endpoints value: # Required. Example: 192.168.0.1:2379,192.168.0.2:2379,192.168.0.3:2379 @@ -38,6 +40,16 @@ spec: The above example uses secrets as plain strings. It is recommended to use a secret store for the secrets as described [here]({{< ref component-secrets.md >}}). {{% /alert %}} + +### Versioning + +Dapr has 2 versions of the Etcd state store component: `v1` and `v2`. + +`v1` and `v2` have the same metadata fields, however `v1` will cause data inconsistencies in apps when using [Actor TTLs]({{< ref "actors_api.md#ttl" >}}) from Dapr `v1.12`. +Users should always use `v2` over `v1` as `v1` is deprecated. +`v1` and `v2` are incompatible and there is no data migration path for `v1` to `v2` on an existing active Etcd cluster and `keyPrefixPath`. +If you are using `v1`, you should continue to use `v1` until you create a new Etcd cluster or use a different `keyPrefixPath`, then use `v2`. + ## Spec metadata fields | Field | Required | Details | Example |