Skip to content

Commit 321dcb8

Browse files
authored
Merge branch 'v1.14' into endgame_1.14
2 parents bf79c1e + b7792cc commit 321dcb8

File tree

17 files changed

+90
-58
lines changed

17 files changed

+90
-58
lines changed

README.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Dapr documentation
22

3-
[![GitHub License](https://img.shields.io/github/license/dapr/docs?style=flat&label=License&logo=github)](https://github.com/dapr/docs/blob/v1.13/LICENSE) [![GitHub issue custom search in repo](https://img.shields.io/github/issues-search/dapr/docs?query=type%3Aissue%20is%3Aopen%20label%3A%22good%20first%20issue%22&label=Good%20first%20issues&style=flat&logo=github)](https://github.com/dapr/docs/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22) [![Discord](https://img.shields.io/discord/778680217417809931?label=Discord&style=flat&logo=discord)](http://bit.ly/dapr-discord) [![YouTube Channel Views](https://img.shields.io/youtube/channel/views/UCtpSQ9BLB_3EXdWAUQYwnRA?style=flat&label=YouTube%20views&logo=youtube)](https://youtube.com/@daprdev) [![X (formerly Twitter) Follow](https://img.shields.io/twitter/follow/daprdev?logo=x&style=flat)](https://twitter.com/daprdev)
3+
[![GitHub License](https://img.shields.io/github/license/dapr/docs?style=flat&label=License&logo=github)](https://github.com/dapr/docs/blob/v1.13/LICENSE) [![GitHub issue custom search in repo](https://img.shields.io/github/issues-search/dapr/docs?query=type%3Aissue%20is%3Aopen%20label%3A%22good%20first%20issue%22&label=Good%20first%20issues&style=flat&logo=github)](https://github.com/dapr/docs/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22) [![Discord](https://img.shields.io/discord/778680217417809931?label=Discord&style=flat&logo=discord)](https://bit.ly/dapr-discord) [![YouTube Channel Views](https://img.shields.io/youtube/channel/views/UCtpSQ9BLB_3EXdWAUQYwnRA?style=flat&label=YouTube%20views&logo=youtube)](https://youtube.com/@daprdev) [![X (formerly Twitter) Follow](https://img.shields.io/twitter/follow/daprdev?logo=x&style=flat)](https://twitter.com/daprdev)
44

55
If you are looking to explore the Dapr documentation, please go to the documentation website:
66

@@ -23,7 +23,7 @@ For more information visit the [Dapr branch structure](https://docs.dapr.io/cont
2323

2424
## Contribution guidelines
2525

26-
Before making your first contribution, make sure to review the [contributing section](http://docs.dapr.io/contributing/) in the docs.
26+
Before making your first contribution, make sure to review the [contributing section](https://docs.dapr.io/contributing/) in the docs.
2727

2828
## Overview
2929

daprdocs/content/en/developing-applications/building-blocks/jobs/jobs-overview.md

-5
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,6 @@ Jobs in Dapr consist of:
1616

1717
[See example scenarios.]({{< ref "#scenarios" >}})
1818

19-
{{% alert title="Warning" color="warning" %}}
20-
By default, job data is not resilient to [Scheduler]({{< ref scheduler.md >}}) service restarts.
21-
A persistent volume must be provided to Scheduler to ensure job data is not lost in either [Kubernetes]({{< ref kubernetes-persisting-scheduler.md >}}) or [Self-hosted]({{< ref self-hosted-persisting-scheduler.md >}}) mode.
22-
{{% /alert %}}
23-
2419
<img src="/images/scheduler/scheduler-architecture.png" alt="Diagram showing the Scheduler control plane service and the jobs API">
2520

2621
## How it works

daprdocs/content/en/developing-applications/building-blocks/service-invocation/howto-invoke-discover-services.md

+2-4
Original file line numberDiff line numberDiff line change
@@ -242,12 +242,10 @@ namespace EventService
242242
var orderId = random.Next(1,1000);
243243

244244
//Using Dapr SDK to invoke a method
245-
var order = new Order("1");
246-
var orderJson = JsonSerializer.Serialize<Order>(order);
247-
var content = new StringContent(orderJson, Encoding.UTF8, "application/json");
245+
var order = new Order(orderId.ToString());
248246

249247
var httpClient = DaprClient.CreateInvokeHttpClient();
250-
var response = await httpClient.PostAsJsonAsync("http://order-processor/orders", content);
248+
var response = await httpClient.PostAsJsonAsync("http://order-processor/orders", order);
251249
var result = await response.Content.ReadAsStringAsync();
252250

253251
Console.WriteLine("Order requested: " + orderId);

daprdocs/content/en/operations/configuration/api-allowlist.md

+2-1
Original file line numberDiff line numberDiff line change
@@ -114,11 +114,12 @@ The `name` field takes the name of the Dapr API you would like to enable.
114114

115115
See this list of values corresponding to the different Dapr APIs:
116116

117-
| API group | HTTP API | [gRPC API](https://github.com/dapr/dapr/blob/master/pkg/grpc/endpoints.go) |
117+
| API group | HTTP API | [gRPC API](https://github.com/dapr/dapr/tree/master/pkg/api/grpc) |
118118
| ----- | ----- | ----- |
119119
| [Service Invocation]({{< ref service_invocation_api.md >}}) | `invoke` (`v1.0`) | `invoke` (`v1`) |
120120
| [State]({{< ref state_api.md>}})| `state` (`v1.0` and `v1.0-alpha1`) | `state` (`v1` and `v1alpha1`) |
121121
| [Pub/Sub]({{< ref pubsub.md >}}) | `publish` (`v1.0` and `v1.0-alpha1`) | `publish` (`v1` and `v1alpha1`) |
122+
| Subscribe | n/a | `subscribe` (`v1alpha1`) |
122123
| [(Output) Bindings]({{< ref bindings_api.md >}}) | `bindings` (`v1.0`) |`bindings` (`v1`) |
123124
| [Secrets]({{< ref secrets_api.md >}})| `secrets` (`v1.0`) | `secrets` (`v1`) |
124125
| [Actors]({{< ref actors_api.md >}}) | `actors` (`v1.0`) |`actors` (`v1`) |

daprdocs/content/en/operations/hosting/kubernetes/kubernetes-persisting-scheduler.md

+43-6
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,15 @@ weight: 50000
66
description: "Configure Scheduler to persist its database to make it resilient to restarts"
77
---
88

9-
The [Scheduler]({{< ref scheduler.md >}}) service is responsible for writing jobs to its embedded database and scheduling them for execution.
10-
By default, the Scheduler service database writes this data to an in-memory ephemeral tempfs volume, meaning that **this data is not persisted across restarts**. Job data will be lost during these events.
9+
The [Scheduler]({{< ref scheduler.md >}}) service is responsible for writing jobs to its embedded Etcd database and scheduling them for execution.
10+
By default, the Scheduler service database writes this data to a Persistent Volume Claim of 1Gb of size using the cluster's default [storage class](https://kubernetes.io/docs/concepts/storage/storage-classes/). This means that there is no additional parameter required to run the scheduler service reliably on most Kubernetes deployments, although you will need additional configuration in some deployments or for a production environment.
1111

12-
To make the Scheduler data resilient to restarts, a persistent volume must be mounted to the Scheduler `StatefulSet`.
13-
This persistent volume is backed by a real disk that is provided by the hosted Cloud Provider or Kubernetes infrastructure platform.
14-
Disk size is determined by how many jobs are expected to be persisted at once; however, 64Gb should be more than sufficient for most use cases.
12+
## Production Setup
13+
14+
In case your Kubernetes deployment does not have a default storage class or you are configuring a production cluster, defining a storage class is required.
15+
16+
A persistent volume is backed by a real disk that is provided by the hosted Cloud Provider or Kubernetes infrastructure platform.
17+
Disk size is determined by how many jobs are expected to be persisted at once; however, 64Gb should be more than sufficient for most production scenarios.
1518
Some Kubernetes providers recommend using a [CSI driver](https://kubernetes.io/docs/concepts/storage/volumes/#csi) to provision the underlying disks.
1619
Below are a list of useful links to the relevant documentation for creating a persistent disk for the major cloud providers:
1720
- [Google Cloud Persistent Disk](https://cloud.google.com/compute/docs/disks)
@@ -23,7 +26,7 @@ Below are a list of useful links to the relevant documentation for creating a pe
2326
- [Alibaba Cloud Disk Storage](https://www.alibabacloud.com/help/ack/ack-managed-and-ack-dedicated/user-guide/create-a-pvc)
2427

2528

26-
Once the persistent volume class is available, you can install Dapr using the following command, with Scheduler configured to use the persistent volume class (replace `my-storage-class` with the name of the storage class):
29+
Once the storage class is available, you can install Dapr using the following command, with Scheduler configured to use the storage class (replace `my-storage-class` with the name of the storage class):
2730

2831
{{% alert title="Note" color="primary" %}}
2932
If Dapr is already installed, the control plane needs to be completely [uninstalled]({{< ref dapr-uninstall.md >}}) in order for the Scheduler `StatefulSet` to be recreated with the new persistent volume.
@@ -53,3 +56,37 @@ helm upgrade --install dapr dapr/dapr \
5356

5457
{{% /codetab %}}
5558
{{< /tabs >}}
59+
60+
## Ephemeral Storage
61+
62+
Scheduler can be optionally made to use Ephemeral storage, which is in-memory storage which is **not** resilient to restarts, i.e. all Job data will be lost after a Scheduler restart.
63+
This is useful for deployments where storage is not available or required, or for testing purposes.
64+
65+
{{% alert title="Note" color="primary" %}}
66+
If Dapr is already installed, the control plane needs to be completely [uninstalled]({{< ref dapr-uninstall.md >}}) in order for the Scheduler `StatefulSet` to be recreated without the persistent volume.
67+
{{% /alert %}}
68+
69+
{{< tabs "Dapr CLI" "Helm" >}}
70+
<!-- Dapr CLI -->
71+
{{% codetab %}}
72+
73+
```bash
74+
dapr init -k --set dapr_scheduler.cluster.inMemoryStorage=true
75+
```
76+
77+
{{% /codetab %}}
78+
79+
<!-- Helm -->
80+
{{% codetab %}}
81+
82+
```bash
83+
helm upgrade --install dapr dapr/dapr \
84+
--version={{% dapr-latest-version short="true" %}} \
85+
--namespace dapr-system \
86+
--create-namespace \
87+
--set dapr_scheduler.cluster.inMemoryStorage=true \
88+
--wait
89+
```
90+
91+
{{% /codetab %}}
92+
{{< /tabs >}}

daprdocs/content/en/reference/api/jobs_api.md

-5
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,6 @@ weight: 1300
1010
The jobs API is currently in alpha.
1111
{{% /alert %}}
1212

13-
{{% alert title="Warning" color="warning" %}}
14-
By default, job data is not resilient to [Scheduler]({{< ref scheduler.md >}}) service restarts.
15-
A persistent volume must be provided to Scheduler to ensure job data is not lost in either [Kubernetes]({{< ref kubernetes-persisting-scheduler.md >}}) or [Self-Hosted]({{< ref self-hosted-persisting-scheduler.md >}}) mode.
16-
{{% /alert %}}
17-
1813
With the jobs API, you can schedule jobs and tasks in the future.
1914

2015
> The HTTP APIs are intended for development and testing only. For production scenarios, the use of the SDKs is strongly

daprdocs/content/en/reference/components-reference/supported-bindings/redis.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ The above example uses secrets as plain strings. It is recommended to use a secr
3939
| Field | Required | Binding support | Details | Example |
4040
|--------------------|:--------:|------------|-----|---------|
4141
| `redisHost` | Y | Output | The Redis host address | `"localhost:6379"` |
42-
| `redisPassword` | Y | Output | The Redis password | `"password"` |
42+
| `redisPassword` | N | Output | The Redis password | `"password"` |
4343
| `redisUsername` | N | Output | Username for Redis host. Defaults to empty. Make sure your redis server version is 6 or above, and have created acl rule correctly. | `"username"` |
4444
| `useEntraID` | N | Output | Implements EntraID support for Azure Cache for Redis. Before enabling this: <ul><li>The `redisHost` name must be specified in the form of `"server:port"`</li><li>TLS must be enabled</li></ul> Learn more about this setting under [Create a Redis instance > Azure Cache for Redis]({{< ref "#create-a-redis-instance" >}}) | `"true"`, `"false"` |
4545
| `enableTLS` | N | Output | If the Redis instance supports TLS with public certificates it can be configured to enable or disable TLS. Defaults to `"false"` | `"true"`, `"false"` |

daprdocs/content/en/reference/components-reference/supported-bindings/servicebusqueues.md

+4-2
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ The above example uses secrets as plain strings. It is recommended to use a secr
7373
| `namespaceName`| N | Input/Output | Parameter to set the address of the Service Bus namespace, as a fully-qualified domain name. Required if using Microsoft Entra ID authentication. | `"namespace.servicebus.windows.net"` |
7474
| `disableEntityManagement` | N | Input/Output | When set to true, queues and subscriptions do not get created automatically. Default: `"false"` | `"true"`, `"false"`
7575
| `lockDurationInSec` | N | Input/Output | Defines the length in seconds that a message will be locked for before expiring. Used during subscription creation only. Default set by server. | `"30"`
76-
| `autoDeleteOnIdleInSec` | N | Input/Output | Time in seconds to wait before auto deleting idle subscriptions. Used during subscription creation only. Default: `"0"` (disabled) | `"3600"`
76+
| `autoDeleteOnIdleInSec` | N | Input/Output | Time in seconds to wait before auto deleting idle subscriptions. Used during subscription creation only. Must be 300s or greater. Default: `"0"` (disabled) | `"3600"`
7777
| `defaultMessageTimeToLiveInSec` | N | Input/Output | Default message time to live, in seconds. Used during subscription creation only. | `"10"`
7878
| `maxDeliveryCount` | N | Input/Output | Defines the number of attempts the server will make to deliver a message. Used during subscription creation only. Default set by server. | `"10"`
7979
| `minConnectionRecoveryInSec` | N | Input/Output | Minimum interval (in seconds) to wait before attempting to reconnect to Azure Service Bus in case of a connection failure. Default: `"2"` | `"5"`
@@ -164,7 +164,9 @@ In addition to the [settable metadata listed above](#sending-a-message-with-meta
164164
- `metadata.EnqueuedTimeUtc`
165165
- `metadata.SequenceNumber`
166166

167-
To find out more details on the purpose of any of these metadata properties, please refer to [the official Azure Service Bus documentation](https://docs.microsoft.com/rest/api/servicebus/message-headers-and-properties#message-headers).
167+
To find out more details on the purpose of any of these metadata properties refer to [the official Azure Service Bus documentation](https://docs.microsoft.com/rest/api/servicebus/message-headers-and-properties#message-headers).
168+
169+
In addition, all entries of `ApplicationProperties` from the original Azure Service Bus message are appended as `metadata.<application property's name>`.
168170

169171
{{% alert title="Note" color="primary" %}}
170172
All times are populated by the server and are not adjusted for clock skews.

0 commit comments

Comments
 (0)