diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS new file mode 100644 index 000000000..880330e1f --- /dev/null +++ b/.github/CODEOWNERS @@ -0,0 +1,10 @@ +# Documentation and examples for what this does: +# +# https://docs.github.com/en/github/creating-cloning-and-archiving-repositories/about-code-owners + +# This file is a list of rules, with the last rule being most specific +# All of the people (and only those people) from the matching rule will be notified + +# Default rule: anything that doesn't match a more specific rule goes here + +* @dapr/approvers-docs @dapr/maintainers-docs diff --git a/daprdocs/content/en/developing-applications/building-blocks/bindings/howto-bindings.md b/daprdocs/content/en/developing-applications/building-blocks/bindings/howto-bindings.md index bcb383872..1cf0d6e88 100644 --- a/daprdocs/content/en/developing-applications/building-blocks/bindings/howto-bindings.md +++ b/daprdocs/content/en/developing-applications/building-blocks/bindings/howto-bindings.md @@ -80,7 +80,7 @@ All that's left now is to invoke the output bindings endpoint on a running Dapr You can do so using HTTP: ```bash -curl -X POST -H http://localhost:3500/v1.0/bindings/myevent -d '{ "data": { "message": "Hi!" }, "operation": "create" }' +curl -X POST -H 'Content-Type: application/json' http://localhost:3500/v1.0/bindings/myevent -d '{ "data": { "message": "Hi!" }, "operation": "create" }' ``` As seen above, you invoked the `/binding` endpoint with the name of the binding to invoke, in our case its `myevent`. diff --git a/daprdocs/content/en/developing-applications/building-blocks/pubsub/howto-publish-subscribe.md b/daprdocs/content/en/developing-applications/building-blocks/pubsub/howto-publish-subscribe.md index 96d81bc5f..9a4fa5d1a 100644 --- a/daprdocs/content/en/developing-applications/building-blocks/pubsub/howto-publish-subscribe.md +++ b/daprdocs/content/en/developing-applications/building-blocks/pubsub/howto-publish-subscribe.md @@ -480,7 +480,7 @@ dapr --app-id app2 run -- php app2.php Dapr automatically takes the data sent on the publish request and wraps it in a CloudEvent 1.0 envelope. If you want to use your own custom CloudEvent, make sure to specify the content type as `application/cloudevents+json`. -See info about content types [here](#Content-Types). +Read about content types [here](#content-types), and about the [Cloud Events message format]({{< ref "pubsub-overview.md#cloud-events-message-format" >}}). ## Next steps diff --git a/daprdocs/content/en/getting-started/install-dapr-selfhost.md b/daprdocs/content/en/getting-started/install-dapr-selfhost.md index deafe843c..5a5983c92 100644 --- a/daprdocs/content/en/getting-started/install-dapr-selfhost.md +++ b/daprdocs/content/en/getting-started/install-dapr-selfhost.md @@ -53,7 +53,7 @@ dapr --version Output should look like this: ``` CLI version: 1.1.0 -Runtime version: 1.1.1 +Runtime version: 1.1.2 ``` ### Step 4: Verify containers are running @@ -96,7 +96,7 @@ bin components config.yaml {{% /codetab %}} {{% codetab %}} -Open `%USERPROFILE%\.dapr\` in file explorer: +Using Command Prompt (not PowerShell), open `%USERPROFILE%\.dapr\` in file explorer: ```powershell explorer "%USERPROFILE%\.dapr\" diff --git a/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-deploy.md b/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-deploy.md index c9ab45a4d..903686169 100644 --- a/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-deploy.md +++ b/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-deploy.md @@ -122,7 +122,7 @@ The latest Dapr helm chart no longer supports Helm v2. Please migrate from Helm ```bash helm upgrade --install dapr dapr/dapr \ - --version=1.1.1 \ + --version=1.1.2 \ --namespace dapr-system \ --create-namespace \ --wait @@ -132,7 +132,7 @@ The latest Dapr helm chart no longer supports Helm v2. Please migrate from Helm ```bash helm upgrade --install dapr dapr/dapr \ - --version=1.1.1 \ + --version=1.1.2 \ --namespace dapr-system \ --create-namespace \ --set global.ha.enabled=true \ diff --git a/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-production.md b/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-production.md index 4d3f1643f..717cc2141 100644 --- a/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-production.md +++ b/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-production.md @@ -59,7 +59,9 @@ The CPU and memory limits above account for the fact that Dapr is intended to a ## Highly-available mode -When deploying Dapr in a production-ready configuration, it's recommended to deploy with a highly available configuration of the control plane, which creates 3 replicas of each control plane pod in the dapr-system namespace. +When deploying Dapr in a production-ready configuration, it's recommended to deploy with a highly available (HA) configuration of the control plane, which creates 3 replicas of each control plane pod in the dapr-system namespace. This configuration allows for the Dapr control plane to survive node failures and other outages. + +HA mode can be enabled with both the [Dapr CLI]({{< ref "kubernetes-deploy.md#install-in-highly-available-mode" >}} and with [Helm charts]({{< ref "kubernetes-deploy.md#add-and-install-dapr-helm-chart" >}}). ## Deploying Dapr with Helm diff --git a/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-upgrade.md b/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-upgrade.md index af60f9bdc..9006bd9e3 100644 --- a/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-upgrade.md +++ b/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-upgrade.md @@ -11,17 +11,27 @@ description: "Follow these steps to upgrade Dapr on Kubernetes and ensure a smoo - [Dapr CLI]({{< ref install-dapr-cli.md >}}) - [Helm 3](https://github.com/helm/helm/releases) (if using Helm) -## Upgrade existing cluster to 1.1.1 +## Upgrade existing cluster to 1.1.2 There are two ways to upgrade the Dapr control plane on a Kubernetes cluster using either the Dapr CLI or Helm. ### Dapr CLI -The example below shows how to upgrade to version 1.1.1: +The example below shows how to upgrade to version 1.1.2: ```bash - dapr upgrade -k --runtime-version=1.1.1 + dapr upgrade -k --runtime-version=1.1.2 ``` +{{% alert title="Note" color="warning" %}} +If you are using Dapr CLI v1.1.0 there is a known issue where mTLS will be enabled by default, even on clusters where it is disabled. If your cluster has mTLS disabled, and you would like it to stay disabled, add `--set global.mtls.enabled=false` to your upgrade command: + +```bash +dapr upgrade -k --runtime-version 1.1.1 --set global.mtls.enabled=false +``` + +You can track the issue here: [#664](https://github.com/dapr/cli/issues/664). +{{% /alert %}} + You can provide all the available Helm chart configurations using the Dapr CLI. See [here](https://github.com/dapr/cli#supplying-helm-values) for more info. @@ -43,7 +53,7 @@ To resolve this issue please run the follow command to upgrade the CustomResourc kubectl replace -f https://raw.githubusercontent.com/dapr/dapr/5a15b3e0f093d2d0938b12f144c7047474a290fe/charts/dapr/crds/configuration.yaml ``` -Then proceed with the `dapr upgrade --runtime-version 1.1.1 -k` command as above. +Then proceed with the `dapr upgrade --runtime-version 1.1.2 -k` command as above. ### Helm diff --git a/daprdocs/content/en/operations/hosting/self-hosted/self-hosted-upgrade.md b/daprdocs/content/en/operations/hosting/self-hosted/self-hosted-upgrade.md index f7fd22ffc..1faf33c89 100644 --- a/daprdocs/content/en/operations/hosting/self-hosted/self-hosted-upgrade.md +++ b/daprdocs/content/en/operations/hosting/self-hosted/self-hosted-upgrade.md @@ -25,11 +25,11 @@ description: "Follow these steps to upgrade Dapr in self-hosted mode and ensure dapr init ``` -1. Ensure you are using the latest version of Dapr (v1.1.1) with: +1. Ensure you are using the latest version of Dapr (v1.1.2) with: ```bash $ dapr --version CLI version: 1.1.0 - Runtime version: 1.1.1 + Runtime version: 1.1.2 ``` diff --git a/daprdocs/content/en/operations/support/support-release-policy.md b/daprdocs/content/en/operations/support/support-release-policy.md index 30c76d10e..385f949fd 100644 --- a/daprdocs/content/en/operations/support/support-release-policy.md +++ b/daprdocs/content/en/operations/support/support-release-policy.md @@ -35,6 +35,7 @@ The table below shows the versions of Dapr releases that have been tested togeth | Mar 4th 2021 | 1.0.1
| 1.0.1 | Java 1.0.2
Go 1.0.0
PHP 1.0.0
Python 1.0.0
.NET 1.0.0 | 0.6.0 | Supported | | Apr 1st 2021 | 1.1.0
| 1.1.0 | Java 1.0.2
Go 1.1.0
PHP 1.0.0
Python 1.1.0
.NET 1.1.0 | 0.6.0 | Supported | | Apr 6th 2021 | 1.1.1
| 1.1.0 | Java 1.0.2
Go 1.1.0
PHP 1.0.0
Python 1.1.0
.NET 1.1.0 | 0.6.0 | Supported (current) | +| Apr 16th 2021 | 1.1.2
| 1.1.0 | Java 1.0.2
Go 1.1.0
PHP 1.0.0
Python 1.1.0
.NET 1.1.0 | 0.6.0 | Supported (current) | ## Upgrade paths After the 1.0 release of the runtime there may be situations where it is necessary to explicitly upgrade through an additional release to reach the desired target. For example an upgrade from v1.0 to v1.2 may need go pass through v1.1 @@ -46,10 +47,10 @@ General guidance on upgrading can be found for [self hosted mode]({{dapr.io/enabled: "true" - dapr.io/app-id: "nodeapp" - dapr.io/app-port: "3000" + dapr.io/enabled: "true" + dapr.io/app-id: "nodeapp" + dapr.io/app-port: "3000" spec: containers: - name: node @@ -162,9 +169,9 @@ In Kubernetes, make sure the `dapr.io/app-port` annotation is specified: ```yaml annotations: - dapr.io/enabled: "true" - dapr.io/app-id: "nodeapp" - dapr.io/app-port: "3000" + dapr.io/enabled: "true" + dapr.io/app-id: "nodeapp" + dapr.io/app-port: "3000" ``` If using Dapr Standalone and the Dapr CLI, make sure you pass the `--app-port` flag to the `dapr run` command. diff --git a/daprdocs/content/en/reference/cli/dapr-upgrade.md b/daprdocs/content/en/reference/cli/dapr-upgrade.md index 9ce2ace14..f53f2dcc7 100644 --- a/daprdocs/content/en/reference/cli/dapr-upgrade.md +++ b/daprdocs/content/en/reference/cli/dapr-upgrade.md @@ -36,12 +36,12 @@ dapr upgrade -k ### Upgrade specified version of Dapr runtime in Kubernetes ```bash -dapr upgrade -k --runtime-version 1.1.1 +dapr upgrade -k --runtime-version 1.1.2 ``` ### Upgrade specified version of Dapr runtime in Kubernetes with value set ```bash -dapr upgrade -k --runtime-version 1.1.1 --set global.logAsJson=true +dapr upgrade -k --runtime-version 1.1.2 --set global.logAsJson=true ``` # Related links diff --git a/daprdocs/content/en/reference/components-reference/supported-bindings/blobstorage.md b/daprdocs/content/en/reference/components-reference/supported-bindings/blobstorage.md index 6eb4529bc..b48a0747b 100644 --- a/daprdocs/content/en/reference/components-reference/supported-bindings/blobstorage.md +++ b/daprdocs/content/en/reference/components-reference/supported-bindings/blobstorage.md @@ -54,6 +54,7 @@ This component supports **output binding** with the following operations: - `create` : [Create blob](#create-blob) - `get` : [Get blob](#get-blob) +- `delete` : [Delete blob](#delete-blob) ### Create blob @@ -201,6 +202,82 @@ To perform a get blob operation, invoke the Azure Blob Storage binding with a `P The response body contains the value stored in the blob object. +### Delete blob + +To perform a delete blob operation, invoke the Azure Blob Storage binding with a `POST` method and the following JSON body: + +```json +{ + "operation": "delete", + "metadata": { + "blobName": "myblob" + } +} +``` + +#### Examples + +##### Delete blob + +{{< tabs Windows Linux >}} + + {{% codetab %}} + ```bash + curl -d '{ \"operation\": \"delete\", \"metadata\": { \"blobName\": \"myblob\" }}' http://localhost:/v1.0/bindings/ + ``` + {{% /codetab %}} + + {{% codetab %}} + ```bash + curl -d '{ "operation": "delete", "metadata": { "blobName": "myblob" }}' \ + http://localhost:/v1.0/bindings/ + ``` + {{% /codetab %}} + +{{< /tabs >}} + +##### Delete blob snapshots only + +{{< tabs Windows Linux >}} + + {{% codetab %}} + ```bash + curl -d '{ \"operation\": \"delete\", \"metadata\": { \"blobName\": \"myblob\", \"DeleteSnapshotOptions\": \"only\" }}' http://localhost:/v1.0/bindings/ + ``` + {{% /codetab %}} + + {{% codetab %}} + ```bash + curl -d '{ "operation": "delete", "metadata": { "blobName": "myblob", "DeleteSnapshotOptions": "only" }}' \ + http://localhost:/v1.0/bindings/ + ``` + {{% /codetab %}} + +{{< /tabs >}} + +##### Delete blob including snapshots + +{{< tabs Windows Linux >}} + + {{% codetab %}} + ```bash + curl -d '{ \"operation\": \"delete\", \"metadata\": { \"blobName\": \"myblob\", \"DeleteSnapshotOptions\": \"include\" }}' http://localhost:/v1.0/bindings/ + ``` + {{% /codetab %}} + + {{% codetab %}} + ```bash + curl -d '{ "operation": "delete", "metadata": { "blobName": "myblob", "DeleteSnapshotOptions": "include" }}' \ + http://localhost:/v1.0/bindings/ + ``` + {{% /codetab %}} + +{{< /tabs >}} + +#### Response + +An HTTP 204 (No Content) and empty body will be retuned if successful. + ## Metadata information By default the Azure Blob Storage output binding auto generates a UUID as the blob filename and is not assigned any system or custom metadata to it. It is configurable in the metadata property of the message (all optional). diff --git a/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-apache-kafka.md b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-apache-kafka.md index 32381b2f6..b687a7abf 100644 --- a/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-apache-kafka.md +++ b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-apache-kafka.md @@ -77,7 +77,7 @@ To run without Docker, see the getting started guide [here](https://kafka.apache {{% /codetab %}} {{% codetab %}} -To run Kafka on Kubernetes, you can use the [Helm Chart](https://github.com/helm/charts/tree/master/incubator/kafka#installing-the-chart). +To run Kafka on Kubernetes, you can use any Kafka operator, such as [Strimzi](https://strimzi.io/docs/operators/latest/quickstart.html#ref-install-prerequisites-str). {{% /codetab %}} {{< /tabs >}} diff --git a/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-azure-servicebus.md b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-azure-servicebus.md index 584151831..a22f2818f 100644 --- a/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-azure-servicebus.md +++ b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-azure-servicebus.md @@ -8,7 +8,7 @@ aliases: --- ## Component format -To setup Azure Event Hubs pubsub create a component of type `pubsub.azure.servicebus`. See [this guide]({{< ref "howto-publish-subscribe.md#step-1-setup-the-pubsub-component" >}}) on how to create and apply a pubsub configuration. +To setup Azure Service Bus pubsub create a component of type `pubsub.azure.servicebus`. See [this guide]({{< ref "howto-publish-subscribe.md#step-1-setup-the-pubsub-component" >}}) on how to create and apply a pubsub configuration. ```yaml apiVersion: dapr.io/v1alpha1 @@ -50,6 +50,10 @@ spec: value: 30 - name: connectionRecoveryInSec # Optional value: 2 + - name: publishMaxRetries # Optional + value: 5 + - name: publishInitialRetryInternalInMs # Optional + value: 500 ``` > __NOTE:__ The above settings are shared across all topics that use this component. @@ -62,7 +66,7 @@ The above example uses secrets as plain strings. It is recommended to use a secr | Field | Required | Details | Example | |--------------------|:--------:|---------|---------| -| connectionString | Y | Connection-string for the Event Hubs | "`Endpoint=sb://{ServiceBusNamespace}.servicebus.windows.net/;SharedAccessKeyName={PolicyName};SharedAccessKey={Key};EntityPath={ServiceBus}`" +| connectionString | Y | Connection-string for the Service Bus | "`Endpoint=sb://{ServiceBusNamespace}.servicebus.windows.net/;SharedAccessKeyName={PolicyName};SharedAccessKey={Key};EntityPath={ServiceBus}`" | timeoutInSec | N | Timeout for sending messages and management operations. Default: `60` |`30` | handlerTimeoutInSec| N | Timeout for invoking app handler. # Optional. Default: `60` | `30` | disableEntityManagement | N | When set to true, topics and subscriptions do not get created automatically. Default: `"false"` | `"true"`, `"false"` @@ -77,6 +81,8 @@ The above example uses secrets as plain strings. It is recommended to use a secr | autoDeleteOnIdleInSec | N |Time in seconds to wait before auto deleting messages. | `10` | maxReconnectionAttempts | N |Defines the maximum number of reconnect attempts. Default: `30` | `30` | connectionRecoveryInSec | N |Time in seconds to wait between connection recovery attempts. Defaults: `2` | `2` +| publishMaxRetries | N | The max number of retries for when Azure Service Bus responds with "too busy" in order to throttle messages. Defaults: `5` | `5` +| publishInitialRetryInternalInMs | N | Time in milliseconds for the initial exponential backoff when Azure Service Bus throttle messages. Defaults: `500` | `500` ## Create an Azure Service Bus diff --git a/translations/docs-zh b/translations/docs-zh index 036fc63bf..e86abb5f4 160000 --- a/translations/docs-zh +++ b/translations/docs-zh @@ -1 +1 @@ -Subproject commit 036fc63bf0a919843827e263ec287d55e3188b7b +Subproject commit e86abb5f4cecb77fb9e08ca9dd02832e312b04a8