Adds ETCD v2

Signed-off-by: joshvanl <me@joshvanl.dev>
This commit is contained in:
joshvanl 2023-06-27 11:48:25 +01:00
parent 942d9cc8f9
commit 14b4712806
2 changed files with 14 additions and 2 deletions

View File

@ -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.

View File

@ -18,7 +18,9 @@ metadata:
name: <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: <CONNECTION STRING> # 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 |