From 032aa71645c7ac49dfbd8590507d94c72dee78c1 Mon Sep 17 00:00:00 2001 From: tuapuikia Date: Fri, 12 Mar 2021 15:40:36 +0800 Subject: [PATCH 01/82] Update setup-dynamodb.md Update the Dynamodb states name to reflect the change in https://github.com/dapr/dapr/blob/master/cmd/daprd/main.go#L210 --- .../setup-state-store/supported-state-stores/setup-dynamodb.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-dynamodb.md b/daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-dynamodb.md index 77761e65f..9cadf1546 100644 --- a/daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-dynamodb.md +++ b/daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-dynamodb.md @@ -16,7 +16,7 @@ metadata: name: namespace: spec: - type: state.dynamodb + type: state.aws.dynamodb version: v1 metadata: - name: table From fdad3a1e0b412d592cf3695618d19e461b07ef40 Mon Sep 17 00:00:00 2001 From: Newbe36524 Date: Tue, 16 Mar 2021 10:02:45 +0800 Subject: [PATCH 02/82] Update middleware-uppercase.md (#1309) --- .../middleware/supported-middleware/middleware-uppercase.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/daprdocs/content/en/developing-applications/middleware/supported-middleware/middleware-uppercase.md b/daprdocs/content/en/developing-applications/middleware/supported-middleware/middleware-uppercase.md index b139af90a..b0fac0eaf 100644 --- a/daprdocs/content/en/developing-applications/middleware/supported-middleware/middleware-uppercase.md +++ b/daprdocs/content/en/developing-applications/middleware/supported-middleware/middleware-uppercase.md @@ -10,7 +10,7 @@ The uppercase [HTTP middleware]({{< ref middleware-concept.md >}}) converts the ## Component format -In the following definition, the maximum requests per second are set to 10: +In the following definition, it make content of request body into uppercase: ```yaml apiVersion: dapr.io/v1alpha1 From f34787783388e06d467593e2801193f6337e0590 Mon Sep 17 00:00:00 2001 From: Aaron Crawfis Date: Tue, 16 Mar 2021 09:19:55 -0700 Subject: [PATCH 03/82] Update dotnet docs version --- sdkdocs/dotnet | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdkdocs/dotnet b/sdkdocs/dotnet index 5f5326b83..4baad5453 160000 --- a/sdkdocs/dotnet +++ b/sdkdocs/dotnet @@ -1 +1 @@ -Subproject commit 5f5326b83fa52fe1965f60f2161eb18b2940cc10 +Subproject commit 4baad5453f2de231ae7d50cb232060084e55caf7 From 6f36bb40e3dfdd24114c03c565d77f64de80d71e Mon Sep 17 00:00:00 2001 From: Phil Kedy Date: Tue, 16 Mar 2021 14:10:03 -0400 Subject: [PATCH 04/82] Adding details on backOffMaxRetries for MQTT and Hazelcast and redelivery settings to Redis --- .../setup-pubsub/supported-pubsub/setup-hazelcast.md | 1 + .../setup-pubsub/supported-pubsub/setup-mqtt.md | 1 + .../setup-pubsub/supported-pubsub/setup-redis-pubsub.md | 8 ++++++-- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/daprdocs/content/en/operations/components/setup-pubsub/supported-pubsub/setup-hazelcast.md b/daprdocs/content/en/operations/components/setup-pubsub/supported-pubsub/setup-hazelcast.md index 02c8a7fdb..093042659 100644 --- a/daprdocs/content/en/operations/components/setup-pubsub/supported-pubsub/setup-hazelcast.md +++ b/daprdocs/content/en/operations/components/setup-pubsub/supported-pubsub/setup-hazelcast.md @@ -31,6 +31,7 @@ The above example uses secrets as plain strings. It is recommended to use a secr | Field | Required | Details | Example | |--------------------|:--------:|---------|---------| | connectionString | Y | A comma delimited string of servers. Example: "hazelcast:3000,hazelcast2:3000" | `"hazelcast:3000,hazelcast2:3000"` +| backOffMaxRetries | N | The maximum number of retries to process the message before returning an error. Defaults to `"0"` which means the component will not retry processing the message. `"-1"` will retry indefinitely until the message is processed or the application is shutdown. And positive number is treated as the maximum retry count. The component will wait 5 seconds between retries. | `"3"` | ## Create a Hazelcast instance diff --git a/daprdocs/content/en/operations/components/setup-pubsub/supported-pubsub/setup-mqtt.md b/daprdocs/content/en/operations/components/setup-pubsub/supported-pubsub/setup-mqtt.md index 98376c11b..6d039d9ce 100644 --- a/daprdocs/content/en/operations/components/setup-pubsub/supported-pubsub/setup-mqtt.md +++ b/daprdocs/content/en/operations/components/setup-pubsub/supported-pubsub/setup-mqtt.md @@ -39,6 +39,7 @@ spec: | caCert | Required for using TLS | Certificate authority certificate. Can be `secretKeyRef` to use a secret reference | `0123456789-0123456789` | clientCert | Required for using TLS | Client certificate. Can be `secretKeyRef` to use a secret reference | `0123456789-0123456789` | clientKey | Required for using TLS | Client key. Can be `secretKeyRef` to use a secret reference | `012345` +| backOffMaxRetries | N | The maximum number of retries to process the message before returning an error. Defaults to `"0"` which means the component will not retry processing the message. `"-1"` will retry indefinitely until the message is processed or the application is shutdown. And positive number is treated as the maximum retry count. The component will wait 5 seconds between retries. | `"3"` ### Communication using TLS diff --git a/daprdocs/content/en/operations/components/setup-pubsub/supported-pubsub/setup-redis-pubsub.md b/daprdocs/content/en/operations/components/setup-pubsub/supported-pubsub/setup-redis-pubsub.md index 84f60dc0e..173952b2b 100644 --- a/daprdocs/content/en/operations/components/setup-pubsub/supported-pubsub/setup-redis-pubsub.md +++ b/daprdocs/content/en/operations/components/setup-pubsub/supported-pubsub/setup-redis-pubsub.md @@ -39,8 +39,12 @@ The above example uses secrets as plain strings. It is recommended to use a secr |--------------------|:--------:|---------|---------| | redisHost | Y | Connection-string for the redis host | `localhost:6379`, `redis-master.default.svc.cluster.local:6379` | redisPassword | Y | Password for Redis host. No Default. Can be `secretKeyRef` to use a secret reference | `""`, `"KeFg23!"` -| consumerID | N | The consumer group ID | `"myGroup"` -| enableTLS | N | If the Redis instance supports TLS with public certificates, can be configured to be enabled or disabled. Defaults to `"false"` | `"true"`, `"false"` +| consumerID | N | The consumer group ID | `"myGroup"` +| enableTLS | N | If the Redis instance supports TLS with public certificates, can be configured to be enabled or disabled. Defaults to `"false"` | `"true"`, `"false"` +| redeliverInterval | N | The interval between checking for pending messages to redelivery. Defaults to `"60s"`. `"0"` disables redelivery. | `"30s"` +| processingTimeout | N | The amount time a message must be pending before attempting to redeliver it. Defaults to `"15s"`. `"0"` disables redelivery. | `"30s"` +| queueDepth | N | The size of the message queue for processing. Defaults to `"100"`. | `"1000"` +| concurrency | N | The number of concurrent workers that are processing messages. Defaults to `"10"`. | `"15"` ## Create a Redis instance From a9808ae287e4c858c04be0237bae995915090773 Mon Sep 17 00:00:00 2001 From: Aaron Crawfis Date: Tue, 16 Mar 2021 18:50:42 -0700 Subject: [PATCH 05/82] Revert "MQTT & Hazelcast retries and Redis redelivery settings" --- .../setup-pubsub/supported-pubsub/setup-hazelcast.md | 1 - .../setup-pubsub/supported-pubsub/setup-mqtt.md | 1 - .../setup-pubsub/supported-pubsub/setup-redis-pubsub.md | 8 ++------ 3 files changed, 2 insertions(+), 8 deletions(-) diff --git a/daprdocs/content/en/operations/components/setup-pubsub/supported-pubsub/setup-hazelcast.md b/daprdocs/content/en/operations/components/setup-pubsub/supported-pubsub/setup-hazelcast.md index 093042659..02c8a7fdb 100644 --- a/daprdocs/content/en/operations/components/setup-pubsub/supported-pubsub/setup-hazelcast.md +++ b/daprdocs/content/en/operations/components/setup-pubsub/supported-pubsub/setup-hazelcast.md @@ -31,7 +31,6 @@ The above example uses secrets as plain strings. It is recommended to use a secr | Field | Required | Details | Example | |--------------------|:--------:|---------|---------| | connectionString | Y | A comma delimited string of servers. Example: "hazelcast:3000,hazelcast2:3000" | `"hazelcast:3000,hazelcast2:3000"` -| backOffMaxRetries | N | The maximum number of retries to process the message before returning an error. Defaults to `"0"` which means the component will not retry processing the message. `"-1"` will retry indefinitely until the message is processed or the application is shutdown. And positive number is treated as the maximum retry count. The component will wait 5 seconds between retries. | `"3"` | ## Create a Hazelcast instance diff --git a/daprdocs/content/en/operations/components/setup-pubsub/supported-pubsub/setup-mqtt.md b/daprdocs/content/en/operations/components/setup-pubsub/supported-pubsub/setup-mqtt.md index 6d039d9ce..98376c11b 100644 --- a/daprdocs/content/en/operations/components/setup-pubsub/supported-pubsub/setup-mqtt.md +++ b/daprdocs/content/en/operations/components/setup-pubsub/supported-pubsub/setup-mqtt.md @@ -39,7 +39,6 @@ spec: | caCert | Required for using TLS | Certificate authority certificate. Can be `secretKeyRef` to use a secret reference | `0123456789-0123456789` | clientCert | Required for using TLS | Client certificate. Can be `secretKeyRef` to use a secret reference | `0123456789-0123456789` | clientKey | Required for using TLS | Client key. Can be `secretKeyRef` to use a secret reference | `012345` -| backOffMaxRetries | N | The maximum number of retries to process the message before returning an error. Defaults to `"0"` which means the component will not retry processing the message. `"-1"` will retry indefinitely until the message is processed or the application is shutdown. And positive number is treated as the maximum retry count. The component will wait 5 seconds between retries. | `"3"` ### Communication using TLS diff --git a/daprdocs/content/en/operations/components/setup-pubsub/supported-pubsub/setup-redis-pubsub.md b/daprdocs/content/en/operations/components/setup-pubsub/supported-pubsub/setup-redis-pubsub.md index 173952b2b..84f60dc0e 100644 --- a/daprdocs/content/en/operations/components/setup-pubsub/supported-pubsub/setup-redis-pubsub.md +++ b/daprdocs/content/en/operations/components/setup-pubsub/supported-pubsub/setup-redis-pubsub.md @@ -39,12 +39,8 @@ The above example uses secrets as plain strings. It is recommended to use a secr |--------------------|:--------:|---------|---------| | redisHost | Y | Connection-string for the redis host | `localhost:6379`, `redis-master.default.svc.cluster.local:6379` | redisPassword | Y | Password for Redis host. No Default. Can be `secretKeyRef` to use a secret reference | `""`, `"KeFg23!"` -| consumerID | N | The consumer group ID | `"myGroup"` -| enableTLS | N | If the Redis instance supports TLS with public certificates, can be configured to be enabled or disabled. Defaults to `"false"` | `"true"`, `"false"` -| redeliverInterval | N | The interval between checking for pending messages to redelivery. Defaults to `"60s"`. `"0"` disables redelivery. | `"30s"` -| processingTimeout | N | The amount time a message must be pending before attempting to redeliver it. Defaults to `"15s"`. `"0"` disables redelivery. | `"30s"` -| queueDepth | N | The size of the message queue for processing. Defaults to `"100"`. | `"1000"` -| concurrency | N | The number of concurrent workers that are processing messages. Defaults to `"10"`. | `"15"` +| consumerID | N | The consumer group ID | `"myGroup"` +| enableTLS | N | If the Redis instance supports TLS with public certificates, can be configured to be enabled or disabled. Defaults to `"false"` | `"true"`, `"false"` ## Create a Redis instance From 760bb8adbe785cf1e9853d5df00b7720b3d579ee Mon Sep 17 00:00:00 2001 From: Aaron Crawfis Date: Tue, 16 Mar 2021 19:00:43 -0700 Subject: [PATCH 06/82] Update docs link --- .../en/operations/hosting/self-hosted/self-hosted-no-docker.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/daprdocs/content/en/operations/hosting/self-hosted/self-hosted-no-docker.md b/daprdocs/content/en/operations/hosting/self-hosted/self-hosted-no-docker.md index 355452b3a..cfc816865 100644 --- a/daprdocs/content/en/operations/hosting/self-hosted/self-hosted-no-docker.md +++ b/daprdocs/content/en/operations/hosting/self-hosted/self-hosted-no-docker.md @@ -51,7 +51,7 @@ INFO[0001] leader is established. instance=Nicoletaz-L10. ``` -From here on you can follow the sample example created for the [java-sdk](https://github.com/dapr/java-sdk/tree/master/examples/src/main/java/io/dapr/examples/actors), [python-sdk](https://github.com/dapr/python-sdk/tree/master/examples/demo_actor) or [dotnet-sdk]({{< ref "dotnet-actor-howto.md" >}}) for running an application with Actors enabled. +From here on you can follow the sample example created for the [java-sdk](https://github.com/dapr/java-sdk/tree/master/examples/src/main/java/io/dapr/examples/actors), [python-sdk](https://github.com/dapr/python-sdk/tree/master/examples/demo_actor) or [dotnet-sdk]({{< ref "dotnet-actors-howto.md" >}}) for running an application with Actors enabled. Update the state store configuration files to have the Redis host and password match the setup that you have. Additionally to enable it as a actor state store have the metadata piece added similar to the [sample Java Redis component](https://github.com/dapr/java-sdk/blob/master/examples/components/state/redis.yaml) definition. From 2f7ec519f7747a7633e4df2a943014263abd972c Mon Sep 17 00:00:00 2001 From: Aaron Crawfis Date: Thu, 18 Mar 2021 15:28:14 -0700 Subject: [PATCH 07/82] Add logos --- daprdocs/assets/icons/logo-black.svg | 15 +++++++++++++++ daprdocs/assets/icons/logo-blue.svg | 15 +++++++++++++++ 2 files changed, 30 insertions(+) create mode 100644 daprdocs/assets/icons/logo-black.svg create mode 100644 daprdocs/assets/icons/logo-blue.svg diff --git a/daprdocs/assets/icons/logo-black.svg b/daprdocs/assets/icons/logo-black.svg new file mode 100644 index 000000000..6816cf01b --- /dev/null +++ b/daprdocs/assets/icons/logo-black.svg @@ -0,0 +1,15 @@ + + + + dark on white + Created with Sketch. + + + + + + + + + + \ No newline at end of file diff --git a/daprdocs/assets/icons/logo-blue.svg b/daprdocs/assets/icons/logo-blue.svg new file mode 100644 index 000000000..f87fe64c3 --- /dev/null +++ b/daprdocs/assets/icons/logo-blue.svg @@ -0,0 +1,15 @@ + + + + logo large + Created with Sketch. + + + + + + + + + + \ No newline at end of file From 80912cabc4e19af89ddf038ad8ab3e1bdf310fc9 Mon Sep 17 00:00:00 2001 From: yellow chicks Date: Fri, 19 Mar 2021 13:54:01 -0500 Subject: [PATCH 08/82] Update setup-tracing.md (#1320) Co-authored-by: Mark Fussell --- .../content/en/operations/monitoring/tracing/setup-tracing.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/daprdocs/content/en/operations/monitoring/tracing/setup-tracing.md b/daprdocs/content/en/operations/monitoring/tracing/setup-tracing.md index 6d481dc19..85db1cd4a 100644 --- a/daprdocs/content/en/operations/monitoring/tracing/setup-tracing.md +++ b/daprdocs/content/en/operations/monitoring/tracing/setup-tracing.md @@ -16,7 +16,7 @@ the cloud or on-premises. The `tracing` section under the `Configuration` spec contains the following properties: ```yml -tracing: +spec: tracing: samplingRate: "1" zipkin: From 16b29599a877c39e665a96319a1ed62eadcc5319 Mon Sep 17 00:00:00 2001 From: Javier Vela Date: Sun, 21 Mar 2021 08:48:03 +0100 Subject: [PATCH 09/82] fix link annotated dapr & added link to all dapr annotations --- .../en/operations/hosting/kubernetes/kubernetes-overview.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-overview.md b/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-overview.md index 87febadc4..3c5129e8c 100644 --- a/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-overview.md +++ b/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-overview.md @@ -10,7 +10,7 @@ description: "Overview of how to get Dapr running on your Kubernetes cluster" Dapr can be configured to run on any Kubernetes cluster. To achieve this, Dapr begins by deploying the `dapr-sidecar-injector`, `dapr-operator`, `dapr-placement`, and `dapr-sentry` Kubernetes services. These provide first-class integration to make running applications with Dapr easy. - **dapr-operator:** Manages [component]({{< ref components >}}) updates and Kubernetes services endpoints for Dapr (state stores, pub/subs, etc.) -- **dapr-sidecar-injector:** Injects Dapr into [annotated](#adding-dapr-to-a-kubernetes-cluster) deployment pods and adds the environment variables `DAPR_HTTP_PORT` and `DAPR_GRPC_PORT` to enable user-defined applications to easily communicate with Dapr without hard-coding Dapr port values. +- **dapr-sidecar-injector:** Injects Dapr into [annotated](#adding-dapr-to-a-kubernetes-deployment) deployment pods and adds the environment variables `DAPR_HTTP_PORT` and `DAPR_GRPC_PORT` to enable user-defined applications to easily communicate with Dapr without hard-coding Dapr port values. - **dapr-placement:** Used for [actors]({{< ref actors >}}) only. Creates mapping tables that map actor instances to pods - **dapr-sentry:** Manages mTLS between services and acts as a certificate authority. For more information read the [security overview]({{< ref "security-concept.md" >}}). @@ -22,7 +22,7 @@ Read [this guide]({{< ref kubernetes-deploy.md >}}) to learn how to deploy Dapr ## Adding Dapr to a Kubernetes deployment -Deploying and running a Dapr enabled application into your Kubernetes cluster is a simple as adding a few annotations to the deployment schemes. To give your service an `id` and `port` known to Dapr, turn on tracing through configuration and launch the Dapr sidecar container, you annotate your Kubernetes deployment like this. +Deploying and running a Dapr enabled application into your Kubernetes deployment is a simple as adding a few annotations to the deployment schemes. To give your service an `id` and `port` known to Dapr, turn on tracing through configuration and launch the Dapr sidecar container, you annotate your Kubernetes deployment like this. For more information check [dapr annotations]({{< ref kubernetes-annotations.md >}}) ```yml annotations: From 73526beec6ed47514e47eddf4a18f8c3db5ea239 Mon Sep 17 00:00:00 2001 From: newbe36524 Date: Sun, 21 Mar 2021 17:27:37 +0800 Subject: [PATCH 10/82] Update Chinese translations --- translations/docs-zh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/translations/docs-zh b/translations/docs-zh index e26148b86..1806602cc 160000 --- a/translations/docs-zh +++ b/translations/docs-zh @@ -1 +1 @@ -Subproject commit e26148b866552f94a148c5ad6fe81e066775b804 +Subproject commit 1806602cccee4cc091c38d6bb06ef7b0220a53ed From e3d1b8e6b26104fe67fe533100827d920aab5239 Mon Sep 17 00:00:00 2001 From: Chris Gillum Date: Sun, 21 Mar 2021 16:35:45 -0700 Subject: [PATCH 11/82] Remove broken actors link Removing a link that resulted in a 404. The link appears to have been redundant, so I just removed it instead of correcting it, making the paragraph more consistent with the surrounding paragraphs. --- daprdocs/content/en/concepts/building-blocks-concept.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/daprdocs/content/en/concepts/building-blocks-concept.md b/daprdocs/content/en/concepts/building-blocks-concept.md index 111c8fc16..f310910ce 100644 --- a/daprdocs/content/en/concepts/building-blocks-concept.md +++ b/daprdocs/content/en/concepts/building-blocks-concept.md @@ -24,6 +24,6 @@ The following are the building blocks provided by Dapr: | [**State management**]({{}}) | `/v1.0/state` | Application state is anything an application wants to preserve beyond a single session. Dapr provides a key/value-based state API with pluggable state stores for persistence. | [**Publish and subscribe**]({{}}) | `/v1.0/publish` `/v1.0/subscribe`| Pub/Sub is a loosely coupled messaging pattern where senders (or publishers) publishes messages to a topic, to which subscribers subscribe. Dapr supports the pub/sub pattern between applications. | [**Resource bindings**]({{}}) | `/v1.0/bindings` | A binding provides a bi-directional connection to an external cloud/on-premise service or system. Dapr allows you to invoke the external service through the Dapr binding API, and it allows your application to be triggered by events sent by the connected service. -| [**Actors**]({{}}) | `/v1.0/actors` | An actor is an isolated, independent unit of compute and state with single-threaded execution. Dapr provides an actor implementation based on the Virtual Actor pattern which provides a single-threaded programming model and where actors are garbage collected when not in use. See [Actor Overview](./actors#understanding-actors) +| [**Actors**]({{}}) | `/v1.0/actors` | An actor is an isolated, independent unit of compute and state with single-threaded execution. Dapr provides an actor implementation based on the Virtual Actor pattern which provides a single-threaded programming model and where actors are garbage collected when not in use. | [**Observability**]({{}}) | `N/A` | Dapr system components and runtime emit metrics, logs, and traces to debug, operate and monitor Dapr system services, components and user applications. | [**Secrets**]({{}}) | `/v1.0/secrets` | Dapr offers a secrets building block API and integrates with secret stores such as Azure Key Vault and Kubernetes to store the secrets. Service code can call the secrets API to retrieve secrets out of the Dapr supported secret stores. From 7d8911b65de13b11d58376d5f6d2305007596c52 Mon Sep 17 00:00:00 2001 From: meijin Date: Mon, 22 Mar 2021 17:42:44 +0800 Subject: [PATCH 12/82] fix app-id 'testpubapp' not match 'testpubsub' when publish --- .../building-blocks/pubsub/howto-publish-subscribe.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 affecfbf8..96d81bc5f 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 @@ -367,7 +367,7 @@ dapr run --app-id testpubsub --dapr-http-port 3500 Then publish a message to the `deathStarStatus` topic: ```bash -dapr publish --publish-app-id testpubapp --pubsub pubsub --topic deathStarStatus --data '{"status": "completed"}' +dapr publish --publish-app-id testpubsub --pubsub pubsub --topic deathStarStatus --data '{"status": "completed"}' ``` {{% /codetab %}} From e93e6c48e1a33de5e6bac87ebf79ad0712068eb3 Mon Sep 17 00:00:00 2001 From: Ben Hummerstone Date: Mon, 22 Mar 2021 15:28:17 +0000 Subject: [PATCH 13/82] updated s3 binding with examples --- .../setup-bindings/supported-bindings/s3.md | 83 ++++++++++++++++++- 1 file changed, 81 insertions(+), 2 deletions(-) diff --git a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/s3.md b/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/s3.md index deaaf0add..e38dc221d 100644 --- a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/s3.md +++ b/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/s3.md @@ -29,8 +29,8 @@ spec: value: ***************** - name: secretKey value: ***************** - - name: bucket - value: mybucket + - name: sessionToken + value: mysession ``` {{% alert title="Warning" color="warning" %}} @@ -54,6 +54,85 @@ This component supports **output binding** with the following operations: - `create` +### Create file + +To perform a create operation, invoke the AWS S3 binding with a `POST` method and the following JSON body: + +> Note: by default, a random UUID is generated. See below for Metadata support to set the name + +```json +{ + "operation": "create", + "data": "YOUR_CONTENT" +} +``` + +#### Examples + + +##### Save text to a random generated UUID file + +{{< tabs Windows Linux >}} + {{% codetab %}} + On Windows, utilize cmd prompt (PowerShell has different escaping mechanism) + ```bash + curl -d "{ \"operation\": \"create\", \"data\": \"Hello World\" }" http://localhost:/v1.0/bindings/ + ``` + {{% /codetab %}} + + {{% codetab %}} + ```bash + curl -d '{ "operation": "create", "data": "Hello World" }' \ + http://localhost:/v1.0/bindings/ + ``` + {{% /codetab %}} + +{{< /tabs >}} + +##### Save text to a specific file + +{{< tabs Windows Linux >}} + + {{% codetab %}} + ```bash + curl -d "{ \"operation\": \"create\", \"data\": \"Hello World\", \"metadata\": { \"key\": \"my-test-file.txt\" } }" \ + http://localhost:/v1.0/bindings/ + ``` + {{% /codetab %}} + + {{% codetab %}} + ```bash + curl -d '{ "operation": "create", "data": "Hello World", "metadata": { "key": "my-test-file.txt" } }' \ + http://localhost:/v1.0/bindings/ + ``` + {{% /codetab %}} + +{{< /tabs >}} + + +##### Upload a file + +To upload a file, pass the file contents as the data payload; you may want to encode this in e.g. Base64 for binary content. + +Then you can upload it as you would normally: + +{{< tabs Windows Linux >}} + + {{% codetab %}} + ```bash + curl -d "{ \"operation\": \"create\", \"data\": \"(YOUR_FILE_CONTENTS)\", \"metadata\": { \"key\": \"my-test-file.jpg\" } }" http://localhost:/v1.0/bindings/ + ``` + {{% /codetab %}} + + {{% codetab %}} + ```bash + curl -d '{ "operation": "create", "data": "$(cat my-test-file.jpg)", "metadata": { "key": "my-test-file.jpg" } }' \ + http://localhost:/v1.0/bindings/ + ``` + {{% /codetab %}} + +{{< /tabs >}} + ## Related links - [Basic schema for a Dapr component]({{< ref component-schema >}}) From 231049a368ad71127f64cb1ae0a72a87cc497baa Mon Sep 17 00:00:00 2001 From: Ben Hummerstone Date: Mon, 22 Mar 2021 15:30:36 +0000 Subject: [PATCH 14/82] added examples for gcp storage bucket binding --- .../supported-bindings/gcpbucket.md | 79 +++++++++++++++++++ 1 file changed, 79 insertions(+) diff --git a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/gcpbucket.md b/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/gcpbucket.md index e52a252cb..b00f19822 100644 --- a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/gcpbucket.md +++ b/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/gcpbucket.md @@ -70,6 +70,85 @@ This component supports **output binding** with the following operations: - `create` +### Create file + +To perform a create operation, invoke the GCP Storage Bucket binding with a `POST` method and the following JSON body: + +> Note: by default, a random UUID is generated. See below for Metadata support to set the name + +```json +{ + "operation": "create", + "data": "YOUR_CONTENT" +} +``` + +#### Examples + + +##### Save text to a random generated UUID file + +{{< tabs Windows Linux >}} + {{% codetab %}} + On Windows, utilize cmd prompt (PowerShell has different escaping mechanism) + ```bash + curl -d "{ \"operation\": \"create\", \"data\": \"Hello World\" }" http://localhost:/v1.0/bindings/ + ``` + {{% /codetab %}} + + {{% codetab %}} + ```bash + curl -d '{ "operation": "create", "data": "Hello World" }' \ + http://localhost:/v1.0/bindings/ + ``` + {{% /codetab %}} + +{{< /tabs >}} + +##### Save text to a specific file + +{{< tabs Windows Linux >}} + + {{% codetab %}} + ```bash + curl -d "{ \"operation\": \"create\", \"data\": \"Hello World\", \"metadata\": { \"name\": \"my-test-file.txt\" } }" \ + http://localhost:/v1.0/bindings/ + ``` + {{% /codetab %}} + + {{% codetab %}} + ```bash + curl -d '{ "operation": "create", "data": "Hello World", "metadata": { "name": "my-test-file.txt" } }' \ + http://localhost:/v1.0/bindings/ + ``` + {{% /codetab %}} + +{{< /tabs >}} + + +##### Upload a file + +To upload a file, pass the file contents as the data payload; you may want to encode this in e.g. Base64 for binary content. + +Then you can upload it as you would normally: + +{{< tabs Windows Linux >}} + + {{% codetab %}} + ```bash + curl -d "{ \"operation\": \"create\", \"data\": \"(YOUR_FILE_CONTENTS)\", \"metadata\": { \"name\": \"my-test-file.jpg\" } }" http://localhost:/v1.0/bindings/ + ``` + {{% /codetab %}} + + {{% codetab %}} + ```bash + curl -d '{ "operation": "create", "data": "$(cat my-test-file.jpg)", "metadata": { "name": "my-test-file.jpg" } }' \ + http://localhost:/v1.0/bindings/ + ``` + {{% /codetab %}} + +{{< /tabs >}} + ## Related links - [Basic schema for a Dapr component]({{< ref component-schema >}}) From 5e0edb517f70599e729b20cc095174605706dff4 Mon Sep 17 00:00:00 2001 From: Otto Lote Date: Mon, 22 Mar 2021 19:06:49 +0100 Subject: [PATCH 15/82] Add setup for GKE clusters --- .../hosting/kubernetes/cluster/setup-gke.md | 55 +++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 daprdocs/content/en/operations/hosting/kubernetes/cluster/setup-gke.md diff --git a/daprdocs/content/en/operations/hosting/kubernetes/cluster/setup-gke.md b/daprdocs/content/en/operations/hosting/kubernetes/cluster/setup-gke.md new file mode 100644 index 000000000..9b1c5e23c --- /dev/null +++ b/daprdocs/content/en/operations/hosting/kubernetes/cluster/setup-gke.md @@ -0,0 +1,55 @@ +--- +type: docs +title: "Setup a Google Kubernetes Engine cluster" +linkTitle: "Google Kubernetes Engine" +weight: 2000 +description: "Setup a Google Kubernetes Engine cluster" +--- + +### Prerequisites + +- [kubectl](https://kubernetes.io/docs/tasks/tools/install-kubectl/) +- [Google Cloud SDK](https://cloud.google.com/sdk) + +## Create a new cluster +```bash +$ gcloud services enable container.googleapis.com && \ + gcloud container clusters create $CLUSTER_NAME \ + --zone $ZONE \ + --project $PROJECT_ID +``` +For more options refer to the [Google Cloud SDK docs](https://cloud.google.com/sdk/gcloud/reference/container/clusters/create), or instead create a cluster through the [Cloud Console](https://console.cloud.google.com/kubernetes) for a more interactive experience. + +{{% alert title="For private GKE clusters" color="warning" %}} +Sidecar injection will not work for private clusters without extra steps. An automatically created firewall rule for master access does not open port 4000. This is needed for Dapr sidecar injection. + +To review the relevant firewall rule: +```bash +$ gcloud compute firewall-rules list --filter="name~gke-${CLUSTER_NAME}-[0-9a-z]*-master" +``` + +To replace the existing rule and allow kubernetes master access to port 4000: +```bash +$ gcloud compute firewall-rules update --allow tcp:10250,tcp:443,tcp:4000 +``` +{{% /alert %}} + +## Retrieve your credentials for `kubectl` + +```bash +$ gcloud container clusters get-credentials $CLUSTER_NAME \ + --zone $ZONE \ + --project $PROJECT_ID +``` + +## (optional) Install Helm v3 + +1. [Install Helm v3 client](https://helm.sh/docs/intro/install/) + +> **Note:** The latest Dapr helm chart no longer supports Helm v2. Please migrate from helm v2 to helm v3 by following [this guide](https://helm.sh/blog/migrate-from-helm-v2-to-helm-v3/). + +2. In case you need permissions the kubernetes dashboard (i.e. configmaps is forbidden: User "system:serviceaccount:kube-system:kubernetes-dashboard" cannot list configmaps in the namespace "default", etc.) execute this command + +```bash +kubectl create clusterrolebinding kubernetes-dashboard -n kube-system --clusterrole=cluster-admin --serviceaccount=kube-system:kubernetes-dashboard +``` From 5448050b49c6d3798579f18fb12d52b98a0003b8 Mon Sep 17 00:00:00 2001 From: Otto Lote Date: Mon, 22 Mar 2021 19:16:50 +0100 Subject: [PATCH 16/82] Add private GKE cluster troubleshooting --- .../content/en/operations/troubleshooting/common_issues.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/daprdocs/content/en/operations/troubleshooting/common_issues.md b/daprdocs/content/en/operations/troubleshooting/common_issues.md index 0d3c8a186..581a041ff 100644 --- a/daprdocs/content/en/operations/troubleshooting/common_issues.md +++ b/daprdocs/content/en/operations/troubleshooting/common_issues.md @@ -47,6 +47,8 @@ If your pod spec template is annotated correctly and you still don't see the sid If this is the case, restarting the pods will fix the issue. +If you are deploying Dapr on a private GKE cluster, sidecar injection does not work without extra steps. See [Setup a Google Kubernetes Engine cluster]({{< ref setup-gke.md >}}). + In order to further diagnose any issue, check the logs of the Dapr sidecar injector: ```bash @@ -202,4 +204,4 @@ This is usually due to one of the following issues - You may have defined the `NAMESPACE` environment variable locally or deployed your components into a different namespace in Kubernetes. Check which namespace your app and the components are deployed to. Read [scoping components to one or more applications]({{< ref "component-scopes.md" >}}) for more information. - You may have not provided a `--components-path` with the Dapr `run` commands or not placed your components into the default components folder for your OS. Read [define a component]({{< ref "get-started-component.md" >}}) for more information. -- You may have a syntax issue in component YAML file. Check your component YAML with the component [YAML samples]({{< ref "components.md" >}}). \ No newline at end of file +- You may have a syntax issue in component YAML file. Check your component YAML with the component [YAML samples]({{< ref "components.md" >}}). From 63575539878206365c39a67dd7aaec43cc6020cc Mon Sep 17 00:00:00 2001 From: Phil Kedy Date: Tue, 16 Mar 2021 14:20:48 -0400 Subject: [PATCH 17/82] Added details on the application-level dapr.io/enable-metrics annotation --- .../monitoring/metrics/metrics-overview.md | 34 +++++++++++++++++-- 1 file changed, 32 insertions(+), 2 deletions(-) diff --git a/daprdocs/content/en/operations/monitoring/metrics/metrics-overview.md b/daprdocs/content/en/operations/monitoring/metrics/metrics-overview.md index 7e1d3a045..e8e98eef4 100644 --- a/daprdocs/content/en/operations/monitoring/metrics/metrics-overview.md +++ b/daprdocs/content/en/operations/monitoring/metrics/metrics-overview.md @@ -12,9 +12,39 @@ Dapr exposes a [Prometheus](https://prometheus.io/) metrics endpoint that you ca The metrics endpoint is enabled by default, you can disable it by passing the command line argument `--enable-metrics=false` to Dapr system processes. -The default metrics port is `9090`. This can be overridden by passing the command line argument `--metrics-port` to Daprd. +The default metrics port is `9090`. This can be overridden by passing the command line argument `--metrics-port` to Daprd. Additionally, the metrics exporter can be disabled for a specific application by setting the `dapr.io/enable-metrics: "false"` annotation to your application deployment. With the metrics exporter disabled, `daprd` will not open the metrics listening port. -To disable the metrics in the Dapr side car, you can use the `metric` spec configuration and set `enabled: false` to disable the metrics in the Dapr runtime. +```yaml +apiVersion: apps/v1 +kind: Deployment +metadata: + name: nodeapp + labels: + app: node +spec: + replicas: 1 + selector: + matchLabels: + app: node + template: + metadata: + labels: + app: node + annotations: + dapr.io/enabled: "true" + dapr.io/app-id: "nodeapp" + dapr.io/app-port: "3000" + dapr.io/enable-metrics: "false" + spec: + containers: + - name: node + image: dapriosamples/hello-k8s-node:latest + ports: + - containerPort: 3000 + imagePullPolicy: Always +``` + +To disable the metrics collection in the Dapr side cars running in a specific namespace, you can use the `metric` spec configuration and set `enabled: false` to disable the metrics in the Dapr runtime. ```yaml apiVersion: dapr.io/v1alpha1 From 18194eeea7416edf7c7f8a66cfbab0cda65d8278 Mon Sep 17 00:00:00 2001 From: Javier Vela Date: Tue, 23 Mar 2021 19:13:20 +0100 Subject: [PATCH 18/82] fix Kubernetes doc --- .../en/operations/hosting/kubernetes/kubernetes-overview.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-overview.md b/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-overview.md index 3c5129e8c..781050e26 100644 --- a/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-overview.md +++ b/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-overview.md @@ -22,7 +22,7 @@ Read [this guide]({{< ref kubernetes-deploy.md >}}) to learn how to deploy Dapr ## Adding Dapr to a Kubernetes deployment -Deploying and running a Dapr enabled application into your Kubernetes deployment is a simple as adding a few annotations to the deployment schemes. To give your service an `id` and `port` known to Dapr, turn on tracing through configuration and launch the Dapr sidecar container, you annotate your Kubernetes deployment like this. For more information check [dapr annotations]({{< ref kubernetes-annotations.md >}}) +Deploying and running a Dapr enabled application into your Kubernetes cluster is as simple as adding a few annotations to the deployment schemes. To give your service an `id` and `port` known to Dapr, turn on tracing through configuration and launch the Dapr sidecar container, you annotate your Kubernetes deployment like this. For more information check [dapr annotations]({{< ref kubernetes-annotations.md >}}) ```yml annotations: From 752dbaaa3fdfd76f0d7225e323e6df2baf1299e0 Mon Sep 17 00:00:00 2001 From: Phil Kedy Date: Tue, 23 Mar 2021 19:25:13 -0400 Subject: [PATCH 19/82] Tweaks per PR feedback --- .../en/operations/monitoring/metrics/metrics-overview.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/daprdocs/content/en/operations/monitoring/metrics/metrics-overview.md b/daprdocs/content/en/operations/monitoring/metrics/metrics-overview.md index e8e98eef4..e6cda87b0 100644 --- a/daprdocs/content/en/operations/monitoring/metrics/metrics-overview.md +++ b/daprdocs/content/en/operations/monitoring/metrics/metrics-overview.md @@ -3,7 +3,7 @@ type: docs title: "Metrics" linkTitle: "Metrics" weight: 4000 -description: "Observing Dapr metrics" +description: "Observing Dapr metrics in Kubernetes" --- Dapr exposes a [Prometheus](https://prometheus.io/) metrics endpoint that you can scrape to gain a greater understanding of how Dapr is behaving and to setup alerts for specific conditions. @@ -34,7 +34,8 @@ spec: dapr.io/enabled: "true" dapr.io/app-id: "nodeapp" dapr.io/app-port: "3000" - dapr.io/enable-metrics: "false" + dapr.io/enable-metrics: "true" + dapr.io/metrics-port: "9090" spec: containers: - name: node From 670a580bb1a653f8d128f5bf4fb2a70ebfdb34e7 Mon Sep 17 00:00:00 2001 From: Phil Kedy Date: Tue, 23 Mar 2021 19:26:38 -0400 Subject: [PATCH 20/82] Tweaks per PR feedback --- .../en/operations/monitoring/metrics/metrics-overview.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/daprdocs/content/en/operations/monitoring/metrics/metrics-overview.md b/daprdocs/content/en/operations/monitoring/metrics/metrics-overview.md index e6cda87b0..e9d0b51bc 100644 --- a/daprdocs/content/en/operations/monitoring/metrics/metrics-overview.md +++ b/daprdocs/content/en/operations/monitoring/metrics/metrics-overview.md @@ -57,7 +57,7 @@ spec: tracing: samplingRate: "1" metric: - enabled: false + enabled: true ``` ## Metrics From fce1579065a2a8a16f0fdd4f1294ac88133f62ee Mon Sep 17 00:00:00 2001 From: Mukundan Sundararajan Date: Tue, 23 Mar 2021 16:45:45 -0700 Subject: [PATCH 21/82] Create setup-dynamodb.md --- .../setup-state-store/supported-state-stores/setup-dynamodb.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-dynamodb.md b/daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-dynamodb.md index 9cadf1546..fa1fcf9d9 100644 --- a/daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-dynamodb.md +++ b/daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-dynamodb.md @@ -7,7 +7,7 @@ description: Detailed information on the AWS DynamoDB state store component ## Component format -To setup a DynamoDB state store create a component of type `state.dynamodb`. See [this guide]({{< ref "howto-get-save-state.md#step-1-setup-a-state-store" >}}) on how to create and apply a state store configuration. +To setup a DynamoDB state store create a component of type `state.aws.dynamodb`. See [this guide]({{< ref "howto-get-save-state.md#step-1-setup-a-state-store" >}}) on how to create and apply a state store configuration. ```yaml apiVersion: dapr.io/v1alpha1 From b4bd54c5209db3a5674cf1ec3e2329c6c50b95e5 Mon Sep 17 00:00:00 2001 From: Karol Deland Date: Tue, 23 Mar 2021 22:45:33 -0400 Subject: [PATCH 22/82] Added some explanation on insecure ssl Using SSL is usually considered secure. In this context, it may be a good idea to explain why it's insecure. --- .../en/operations/hosting/kubernetes/kubernetes-annotations.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-annotations.md b/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-annotations.md index df0163196..1a7a5a94b 100644 --- a/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-annotations.md +++ b/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-annotations.md @@ -20,7 +20,7 @@ The following table shows all the supported pod Spec annotations supported by Da | `dapr.io/api-token-secret` | Tells Dapr which Kubernetes secret to use for token based API authentication. By default this is not set. | `dapr.io/app-protocol` | Tells Dapr which protocol your application is using. Valid options are `http` and `grpc`. Default is `http` | `dapr.io/app-max-concurrency` | Limit the concurrency of your application. A valid value is any number larger than `0` -| `dapr.io/app-ssl` | Tells Dapr to invoke the app over an insecure SSL connection. Applies to both HTTP and gRPC. Default is `false`. +| `dapr.io/app-ssl` | Tells Dapr to invoke the app over an insecure SSL connection. Applies to both HTTP and gRPC. Traffic between your app and the Dapr sidecar is encrypted with a certificate issued by a non-trusted certificate authority, which is considered insecure. Default is `false`. | `dapr.io/metrics-port` | Sets the port for the sidecar metrics server. Default is `9090` | `dapr.io/sidecar-cpu-limit` | Maximum amount of CPU that the Dapr sidecar can use. See valid values [here](https://kubernetes.io/docs/tasks/administer-cluster/manage-resources/quota-memory-cpu-namespace/). By default this is not set | `dapr.io/sidecar-memory-limit` | Maximum amount of Memory that the Dapr sidecar can use. See valid values [here](https://kubernetes.io/docs/tasks/administer-cluster/manage-resources/quota-memory-cpu-namespace/). By default this is not set From 96b30bdce5e980f094780900f478e02d1d18464d Mon Sep 17 00:00:00 2001 From: Otto Lote Date: Wed, 24 Mar 2021 10:39:27 +0100 Subject: [PATCH 23/82] Set correct hugo weight --- .../en/operations/hosting/kubernetes/cluster/setup-gke.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/daprdocs/content/en/operations/hosting/kubernetes/cluster/setup-gke.md b/daprdocs/content/en/operations/hosting/kubernetes/cluster/setup-gke.md index 9b1c5e23c..5a7b7607c 100644 --- a/daprdocs/content/en/operations/hosting/kubernetes/cluster/setup-gke.md +++ b/daprdocs/content/en/operations/hosting/kubernetes/cluster/setup-gke.md @@ -2,7 +2,7 @@ type: docs title: "Setup a Google Kubernetes Engine cluster" linkTitle: "Google Kubernetes Engine" -weight: 2000 +weight: 3000 description: "Setup a Google Kubernetes Engine cluster" --- From 8a4ffa399ad9e27d57a94ea2ed194468682d3b13 Mon Sep 17 00:00:00 2001 From: Otto Lote Date: Wed, 24 Mar 2021 10:54:16 +0100 Subject: [PATCH 24/82] Update minikube weight --- .../en/operations/hosting/kubernetes/cluster/setup-minikube.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/daprdocs/content/en/operations/hosting/kubernetes/cluster/setup-minikube.md b/daprdocs/content/en/operations/hosting/kubernetes/cluster/setup-minikube.md index 4c9f5deff..8222d7f0b 100644 --- a/daprdocs/content/en/operations/hosting/kubernetes/cluster/setup-minikube.md +++ b/daprdocs/content/en/operations/hosting/kubernetes/cluster/setup-minikube.md @@ -2,7 +2,7 @@ type: docs title: "Setup an Minikube cluster" linkTitle: "Minikube" -weight: 2000 +weight: 1000 description: > How to setup Dapr on a Minikube cluster. --- From cffe1e3f6ed1c0a4db3861f21dcd2fe5e1bd554e Mon Sep 17 00:00:00 2001 From: Mike Casas Date: Wed, 24 Mar 2021 10:35:31 -0400 Subject: [PATCH 25/82] Grammar fix. Simple grammar fix. --- daprdocs/content/en/concepts/security-concept.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/daprdocs/content/en/concepts/security-concept.md b/daprdocs/content/en/concepts/security-concept.md index dd097337e..4eef5676b 100644 --- a/daprdocs/content/en/concepts/security-concept.md +++ b/daprdocs/content/en/concepts/security-concept.md @@ -112,7 +112,7 @@ Threat modeling is a process by which potential threats, such as structural vuln ### February 2021 -In February 2021, Dapr has gone a 2nd security audit targetting it's 1.0 release by Cure53. +In February 2021, Dapr has gone through a 2nd security audit targetting it's 1.0 release by Cure53. The test focused on the following: * Dapr runtime code base evaluation since last audit From 9d4145e54291ed62264157630271a0089f7370cb Mon Sep 17 00:00:00 2001 From: Hugo Meyronneinc Date: Tue, 23 Mar 2021 17:43:20 +0100 Subject: [PATCH 26/82] feat: add shutdown docs --- .../hosting/kubernetes/kubernetes-job.md | 60 +++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 daprdocs/content/en/operations/hosting/kubernetes/kubernetes-job.md diff --git a/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-job.md b/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-job.md new file mode 100644 index 000000000..7c4f9b9c6 --- /dev/null +++ b/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-job.md @@ -0,0 +1,60 @@ +--- +type: docs +title: "Running Dapr with a Kubernetes Job" +linkTitle: "Kubernetes Jobs" +weight: 1000 +description: "Use Dapr API in a Kubernetes Job context" +type: docs +--- + +# Kubernetes Job + +The Dapr sidecar is designed to be a long running process, in the context of a [Kubernetes Job](https://kubernetes.io/docs/concepts/workloads/controllers/job/) this behaviour can block your job completion. +To address this issue the Dapr sidecar has an endpoint to `Shutdown` the sidecar. + +When running a basic [Kubernetes Job](https://kubernetes.io/docs/concepts/workloads/controllers/job/) you will need to call the `/shutdown` endpoint for the sidecar to gracefully stop and the job will be considered `Completed`. + +When a job is finish without calling `Shutdown` your job will be in a `NotReady` state with only the `daprd` container running endlessly. + +```yaml +apiVersion: batch/v1 +kind: Job +metadata: + name: job-with-shutdown +spec: + template: + metadata: + annotations: + dapr.io/enabled: "true" + dapr.io/app-id: "with-shutdown" + spec: + containers: + - name: job + image: busybox + command: ["/bin/sh", "-c", "sleep 20 && wget localhost:3500/v1.0/shutdown"] + restartPolicy: Never +``` + +You can also call the `Shutdown` from any of the Dapr SDK + +```go +package main + +import ( + "context" + "log" + "os" + + dapr "github.com/dapr/go-sdk/client" +) + +func main() { + client, err := dapr.NewClient() + if err != nil { + log.Panic(err) + } + defer client.Close() + defer client.Shutdown() + // Job +} +``` \ No newline at end of file From 9904d78fb87d24d87af9ccc1198d1f23d54fd4e8 Mon Sep 17 00:00:00 2001 From: Lynn Orrell Date: Wed, 24 Mar 2021 18:18:01 -0500 Subject: [PATCH 27/82] Added docs for Local Storage binding --- .../supported-bindings/_index.md | 1 + .../supported-bindings/localstorage.md | 266 ++++++++++++++++++ 2 files changed, 267 insertions(+) create mode 100644 daprdocs/content/en/operations/components/setup-bindings/supported-bindings/localstorage.md diff --git a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/_index.md b/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/_index.md index e07b2c3b8..b854accd0 100644 --- a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/_index.md +++ b/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/_index.md @@ -29,6 +29,7 @@ Table captions: | [InfluxDB]({{< ref influxdb.md >}}) | | ✅ | Alpha | v1 | 1.0 | | [Kafka]({{< ref kafka.md >}}) | ✅ | ✅ | Alpha | v1 | 1.0 | | [Kubernetes Events]({{< ref "kubernetes-binding.md" >}}) | ✅ | | Alpha | v1 | 1.0 | +| [Local Storage]({{< ref localstorage.md >}}) | | ✅ | Alpha | v1 | 1.x | | [MQTT]({{< ref mqtt.md >}}) | ✅ | ✅ | Alpha | v1 | 1.0 | | [MySQL]({{< ref mysql.md >}}) | | ✅ | Alpha | v1 | 1.0 | | [PostgreSql]({{< ref postgres.md >}}) | | ✅ | Alpha | v1 | 1.0 | diff --git a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/localstorage.md b/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/localstorage.md new file mode 100644 index 000000000..7268b2bd9 --- /dev/null +++ b/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/localstorage.md @@ -0,0 +1,266 @@ +--- +type: docs +title: "Local Storage binding spec" +linkTitle: "Local Storage" +description: "Detailed documentation on the Local Storage binding component" +--- + +## Component format + +To set up the Local Storage binding, create a component of type `bindings.localstorage`. See [this guide]({{< ref "howto-bindings.md#1-create-a-binding" >}}) on how to create and apply a binding configuration. + + +```yaml +apiVersion: dapr.io/v1alpha1 +kind: Component +metadata: + name: + namespace: +spec: + type: bindings.localstorage + version: v1 + metadata: + - name: rootPath + value: +``` + +## Spec metadata fields + +| Field | Required | Binding support | Details | Example | +|--------------------|:--------:|--------|---------|---------| +| rootPath | Y | Input / Output | The root path anchor to which files can be read / saved | `"/temp/files"` | + +## Binding support + +This component supports **output binding** with the following operations: + +- `create` : [Create file](#create-file) +- `get` : [Get file](#get-file) +- `list` : [List files](#list-files) +- `delete` : [Delete file](#delete-file) + +### Create file + +To perform a create file operation, invoke the Local Storage binding with a `POST` method and the following JSON body: + +> Note: by default, a random UUID is generated. See below for Metadata support to set the name + +```json +{ + "operation": "create", + "data": "YOUR_CONTENT" +} +``` + +#### Examples + + +##### Save text to a random generated UUID file + +{{< tabs Windows Linux >}} + {{% codetab %}} + On Windows, utilize cmd prompt (PowerShell has different escaping mechanism) + ```bash + curl -d "{ \"operation\": \"create\", \"data\": \"Hello World\" }" http://localhost:/v1.0/bindings/ + ``` + {{% /codetab %}} + + {{% codetab %}} + ```bash + curl -d '{ "operation": "create", "data": "Hello World" }' \ + http://localhost:/v1.0/bindings/ + ``` + {{% /codetab %}} + +{{< /tabs >}} + +##### Save text to a specific file + +{{< tabs Windows Linux >}} + + {{% codetab %}} + ```bash + curl -d "{ \"operation\": \"create\", \"data\": \"Hello World\", \"metadata\": { \"fileName\": \"my-test-file.txt\" } }" \ + http://localhost:/v1.0/bindings/ + ``` + {{% /codetab %}} + + {{% codetab %}} + ```bash + curl -d '{ "operation": "create", "data": "Hello World", "metadata": { "fileName": "my-test-file.txt" } }' \ + http://localhost:/v1.0/bindings/ + ``` + {{% /codetab %}} + +{{< /tabs >}} + + +##### Save a binary file + +To upload a file, encode it as Base64. The binding should automatically detect the Base64 encoding. + +{{< tabs Windows Linux >}} + + {{% codetab %}} + ```bash + curl -d "{ \"operation\": \"create\", \"data\": \"YOUR_BASE_64_CONTENT\", \"metadata\": { \"fileName\": \"my-test-file.jpg\" } }" http://localhost:/v1.0/bindings/ + ``` + {{% /codetab %}} + + {{% codetab %}} + ```bash + curl -d '{ "operation": "create", "data": "YOUR_BASE_64_CONTENT", "metadata": { "fileName": "my-test-file.jpg" } }' \ + http://localhost:/v1.0/bindings/ + ``` + {{% /codetab %}} + +{{< /tabs >}} + +#### Response + +The response body will contain the following JSON: + +```json +{ + "fileName": "" +} + +``` + +### Get file + +To perform a get file operation, invoke the Local Storage binding with a `POST` method and the following JSON body: + +```json +{ + "operation": "get", + "metadata": { + "fileName": "myfile" + } +} +``` + +#### Example + +{{< tabs Windows Linux >}} + + {{% codetab %}} + ```bash + curl -d '{ \"operation\": \"get\", \"metadata\": { \"fileName\": \"myfile\" }}' http://localhost:/v1.0/bindings/ + ``` + {{% /codetab %}} + + {{% codetab %}} + ```bash + curl -d '{ "operation": "get", "metadata": { "fileName": "myfile" }}' \ + http://localhost:/v1.0/bindings/ + ``` + {{% /codetab %}} + +{{< /tabs >}} + +#### Response + +The response body contains the value stored in the file. + +### List files + +To perform a list files operation, invoke the Local Storage binding with a `POST` method and the following JSON body: + +```json +{ + "operation": "list" +} +``` + +If you only want to list the files beneath a particular directory below the `rootPath`, specify the relative directory name as the `fileName` in the metadata. + +```json +{ + "operation": "list", + "metadata": { + "fileName": "my/cool/directory" + } +} +``` + +#### Example + +{{< tabs Windows Linux >}} + + {{% codetab %}} + ```bash + curl -d '{ \"operation\": \"list\", \"metadata\": { \"fileName\": \"my/cool/directory\" }}' http://localhost:/v1.0/bindings/ + ``` + {{% /codetab %}} + + {{% codetab %}} + ```bash + curl -d '{ "operation": "list", "metadata": { "fileName": "my/cool/directory" }}' \ + http://localhost:/v1.0/bindings/ + ``` + {{% /codetab %}} + +{{< /tabs >}} + +#### Response + +The response is a JSON array of file names. + +### Delete file + +To perform a delete file operation, invoke the Local Storage binding with a `POST` method and the following JSON body: + +```json +{ + "operation": "delete", + "metadata": { + "fileName": "myfile" + } +} +``` + +#### Example + +{{< tabs Windows Linux >}} + + {{% codetab %}} + ```bash + curl -d '{ \"operation\": \"delete\", \"metadata\": { \"fileName\": \"myfile\" }}' http://localhost:/v1.0/bindings/ + ``` + {{% /codetab %}} + + {{% codetab %}} + ```bash + curl -d '{ "operation": "delete", "metadata": { "fileName": "myfile" }}' \ + http://localhost:/v1.0/bindings/ + ``` + {{% /codetab %}} + +{{< /tabs >}} + +#### Response + +An HTTP 204 (No Content) and empty body will be returned if successful. + +## Metadata information + +By default the Local Storage output binding auto generates a UUID as the file name. It is configurable in the metadata property of the message. + +```json +{ + "data": "file content", + "metadata": { + "fileName": "filename.txt" + }, + "operation": "create" +} +``` + +## Related links + +- [Basic schema for a Dapr component]({{< ref component-schema >}}) +- [Bindings building block]({{< ref bindings >}}) +- [How-To: Trigger application with input binding]({{< ref howto-triggers.md >}}) +- [How-To: Use bindings to interface with external resources]({{< ref howto-bindings.md >}}) +- [Bindings API reference]({{< ref bindings_api.md >}}) From 7567af92e2d245e9ec8f061459a3b786488b671d Mon Sep 17 00:00:00 2001 From: Ori Zohar Date: Thu, 25 Mar 2021 15:51:57 -0700 Subject: [PATCH 28/82] Updating current version to v1.1 --- README.md | 4 ++-- .../en/getting-started/install-dapr-selfhost.md | 4 ++-- .../operations/hosting/kubernetes/kubernetes-deploy.md | 4 ++-- .../hosting/kubernetes/kubernetes-upgrade.md | 4 ++-- .../hosting/self-hosted/self-hosted-upgrade.md | 6 +++--- .../en/operations/support/support-release-policy.md | 10 +++++++--- daprdocs/content/en/reference/cli/dapr-upgrade.md | 4 ++-- 7 files changed, 20 insertions(+), 16 deletions(-) diff --git a/README.md b/README.md index c203d9d9c..5b3b6deb2 100644 --- a/README.md +++ b/README.md @@ -14,8 +14,8 @@ The following branches are currently maintained: | Branch | Website | Description | |--------|---------|-------------| -| [v1.0](https://github.com/dapr/docs) (primary) | https://docs.dapr.io | Latest Dapr release documentation. Typo fixes, clarifications, and most documentation goes here. -| [v1.1](https://github.com/dapr/docs/tree/v1.1) (pre-release) | https://v1-1.docs.dapr.io/ | Pre-release documentation. Doc updates that are only applicable to v1.1+ go here. +| [v1.1](https://github.com/dapr/docs) (primary) | https://docs.dapr.io | Latest Dapr release documentation. Typo fixes, clarifications, and most documentation goes here. +| [v1.2](https://github.com/dapr/docs/tree/v1.2) (pre-release) | https://v1-2.docs.dapr.io/ | Pre-release documentation. Doc updates that are only applicable to v1.2+ go here. For more information visit the [Dapr branch structure](https://docs.dapr.io/contributing/contributing-docs/#branch-guidance) document. diff --git a/daprdocs/content/en/getting-started/install-dapr-selfhost.md b/daprdocs/content/en/getting-started/install-dapr-selfhost.md index 476b81c71..c6ab64b43 100644 --- a/daprdocs/content/en/getting-started/install-dapr-selfhost.md +++ b/daprdocs/content/en/getting-started/install-dapr-selfhost.md @@ -52,8 +52,8 @@ dapr --version Output should look like this: ``` -CLI version: 1.0.0 -Runtime version: 1.0.1 +CLI version: 1.1.0 +Runtime version: 1.1.0 ``` ### Step 4: Verify containers are running diff --git a/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-deploy.md b/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-deploy.md index fd7d385a9..762fdefd9 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.0.1 \ + --version=1.1.0 \ --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.0.1 \ + --version=1.1.0 \ --namespace dapr-system \ --create-namespace \ --set global.ha.enabled=true \ diff --git a/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-upgrade.md b/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-upgrade.md index 9077c673a..6f8d0fd99 100644 --- a/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-upgrade.md +++ b/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-upgrade.md @@ -11,12 +11,12 @@ 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.0.1 +## Upgrade existing cluster to 1.1.0 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.0.1: +The example below shows how to upgrade to version 1.1.0: ```bash dapr upgrade -k --runtime-version=1.0.1 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 0befb2e4a..620ba0637 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 (1.0.1) with: +1. Ensure you are using the latest version of Dapr (v1.1.0) with: ```bash $ dapr --version - CLI version: 1.0.0 - Runtime version: 1.0.1 + CLI version: 1.1.0 + Runtime version: 1.1.0 ``` diff --git a/daprdocs/content/en/operations/support/support-release-policy.md b/daprdocs/content/en/operations/support/support-release-policy.md index e77cf8c0b..7dd39ebe4 100644 --- a/daprdocs/content/en/operations/support/support-release-policy.md +++ b/daprdocs/content/en/operations/support/support-release-policy.md @@ -31,7 +31,9 @@ The table below shows the versions of Dapr releases that have been tested togeth | Release date | Runtime | CLI | SDKs | Dashboard | Status | |--------------------|:--------:|:--------|---------|---------|---------| -| Feb 17th 2021 | 1.0.1
(Mar 4th 2021) | 1.0.0 | Java 1.0.0
Go 1.0.0
PHP 1.0.0
Python 1.0.0
.NET 1.0.0 | 0.6.0 | Supported (current) | +| Feb 17th 2021 | 1.0.0
| 1.0.0 | Java 1.0.0
Go 1.0.0
PHP 1.0.0
Python 1.0.0
.NET 1.0.0 | 0.6.0 | Supported | +| Mar 4th 2021 | 1.0.1
| 1.0.1 | Java 1.0.0
Go 1.0.0
PHP 1.0.0
Python 1.0.0
.NET 1.0.0 | 0.6.0 | Supported | +| Mar 30th 2021 | 1.1.0
| 1.1.0 | Java 1.1.0
Go 1.1.0
PHP 1.1.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 @@ -40,8 +42,10 @@ The table below shows the tested upgrade paths for the Dapr runtime. For example | Current Runtime version | Must upgrade through | Target Runtime version | Notes |--------------------------|-----------------------|------------------------- |------------------------- | -| 0.11 | N/A | 1.0.0 | Use Dapr CLI to upgrade for both self hosted and Kubernetes -| 1.0-rc1 to 1.0-rc4 | N/A | 1.0.0 | See Dapr 1.0 release notes +| 0.11 | N/A | 1.0.1 | Use Dapr CLI to upgrade for both self hosted and Kubernetes +| | 1.0.1| 1.1.0 | +| 1.0-rc1 to 1.0-rc4 | N/A | 1.0.1 | See Dapr 1.0 release notes +| 1.0.0 or 1.0.1 | N/A | 1.1.0 | See Dapr 1.1 release notes ## Feature and deprecations There is a process for announcing feature deprecations. Deprecations are applied two (2) releases after the release in which they were announced. For example Feature X is announced to be deprecated in the 1.0.0 release notes and will then be removed in 1.2.0. diff --git a/daprdocs/content/en/reference/cli/dapr-upgrade.md b/daprdocs/content/en/reference/cli/dapr-upgrade.md index 34f20dd93..b2e019762 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.0.0 +dapr upgrade -k --runtime-version 1.1.0 ``` ### Upgrade specified version of Dapr runtime in Kubernetes with value set ```bash -dapr upgrade -k --runtime-version 1.0.0 --set global.logAsJson=true +dapr upgrade -k --runtime-version 1.1.0 --set global.logAsJson=true ``` # Related links From 36372b6c1966d9295da61b328afa42a877a41487 Mon Sep 17 00:00:00 2001 From: Ori Zohar Date: Thu, 25 Mar 2021 16:07:59 -0700 Subject: [PATCH 29/82] Update install-dapr-selfhost.md --- daprdocs/content/en/getting-started/install-dapr-selfhost.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/daprdocs/content/en/getting-started/install-dapr-selfhost.md b/daprdocs/content/en/getting-started/install-dapr-selfhost.md index 476b81c71..05e7b06df 100644 --- a/daprdocs/content/en/getting-started/install-dapr-selfhost.md +++ b/daprdocs/content/en/getting-started/install-dapr-selfhost.md @@ -52,7 +52,7 @@ dapr --version Output should look like this: ``` -CLI version: 1.0.0 +CLI version: 1.0.1 Runtime version: 1.0.1 ``` From 5a6c7906037a6303c05c33c6b1b53b76100bb040 Mon Sep 17 00:00:00 2001 From: Lynn Orrell Date: Fri, 26 Mar 2021 12:14:54 -0500 Subject: [PATCH 30/82] ci: add Azure Static Web Apps workflow file on-behalf-of: @Azure opensource@microsoft.com --- ...static-web-apps-zealous-pond-0160b0210.yml | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 .github/workflows/azure-static-web-apps-zealous-pond-0160b0210.yml diff --git a/.github/workflows/azure-static-web-apps-zealous-pond-0160b0210.yml b/.github/workflows/azure-static-web-apps-zealous-pond-0160b0210.yml new file mode 100644 index 000000000..ae6482060 --- /dev/null +++ b/.github/workflows/azure-static-web-apps-zealous-pond-0160b0210.yml @@ -0,0 +1,45 @@ +name: Azure Static Web Apps CI/CD + +on: + push: + branches: + - v1.1 + pull_request: + types: [opened, synchronize, reopened, closed] + branches: + - v1.1 + +jobs: + build_and_deploy_job: + if: github.event_name == 'push' || (github.event_name == 'pull_request' && github.event.action != 'closed') + runs-on: ubuntu-latest + name: Build and Deploy Job + steps: + - uses: actions/checkout@v2 + with: + submodules: true + - name: Build And Deploy + id: builddeploy + uses: Azure/static-web-apps-deploy@v0.0.1-preview + with: + azure_static_web_apps_api_token: ${{ secrets.AZURE_STATIC_WEB_APPS_API_TOKEN_ZEALOUS_POND_0160B0210 }} + repo_token: ${{ secrets.GITHUB_TOKEN }} # Used for Github integrations (i.e. PR comments) + action: "upload" + ###### Repository/Build Configurations - These values can be configured to match your app requirements. ###### + # For more information regarding Static Web App workflow configurations, please visit: https://aka.ms/swaworkflowconfig + app_location: "/daprdocs" # App source code path + api_location: "api" # Api source code path - optional + output_location: "public" # Built app content directory - optional + ###### End of Repository/Build Configurations ###### + + close_pull_request_job: + if: github.event_name == 'pull_request' && github.event.action == 'closed' + runs-on: ubuntu-latest + name: Close Pull Request Job + steps: + - name: Close Pull Request + id: closepullrequest + uses: Azure/static-web-apps-deploy@v0.0.1-preview + with: + azure_static_web_apps_api_token: ${{ secrets.AZURE_STATIC_WEB_APPS_API_TOKEN_ZEALOUS_POND_0160B0210 }} + action: "close" From 785bd35c86d6cb2b60da09da35d1969c048400a8 Mon Sep 17 00:00:00 2001 From: Phil Kedy Date: Tue, 16 Mar 2021 14:20:48 -0400 Subject: [PATCH 31/82] Added details on the application-level dapr.io/enable-metrics annotation --- .../monitoring/metrics/metrics-overview.md | 34 +++++++++++++++++-- 1 file changed, 32 insertions(+), 2 deletions(-) diff --git a/daprdocs/content/en/operations/monitoring/metrics/metrics-overview.md b/daprdocs/content/en/operations/monitoring/metrics/metrics-overview.md index 7e1d3a045..e8e98eef4 100644 --- a/daprdocs/content/en/operations/monitoring/metrics/metrics-overview.md +++ b/daprdocs/content/en/operations/monitoring/metrics/metrics-overview.md @@ -12,9 +12,39 @@ Dapr exposes a [Prometheus](https://prometheus.io/) metrics endpoint that you ca The metrics endpoint is enabled by default, you can disable it by passing the command line argument `--enable-metrics=false` to Dapr system processes. -The default metrics port is `9090`. This can be overridden by passing the command line argument `--metrics-port` to Daprd. +The default metrics port is `9090`. This can be overridden by passing the command line argument `--metrics-port` to Daprd. Additionally, the metrics exporter can be disabled for a specific application by setting the `dapr.io/enable-metrics: "false"` annotation to your application deployment. With the metrics exporter disabled, `daprd` will not open the metrics listening port. -To disable the metrics in the Dapr side car, you can use the `metric` spec configuration and set `enabled: false` to disable the metrics in the Dapr runtime. +```yaml +apiVersion: apps/v1 +kind: Deployment +metadata: + name: nodeapp + labels: + app: node +spec: + replicas: 1 + selector: + matchLabels: + app: node + template: + metadata: + labels: + app: node + annotations: + dapr.io/enabled: "true" + dapr.io/app-id: "nodeapp" + dapr.io/app-port: "3000" + dapr.io/enable-metrics: "false" + spec: + containers: + - name: node + image: dapriosamples/hello-k8s-node:latest + ports: + - containerPort: 3000 + imagePullPolicy: Always +``` + +To disable the metrics collection in the Dapr side cars running in a specific namespace, you can use the `metric` spec configuration and set `enabled: false` to disable the metrics in the Dapr runtime. ```yaml apiVersion: dapr.io/v1alpha1 From 1061c0dfa05d193579dc87c492867d69b43ffca5 Mon Sep 17 00:00:00 2001 From: Phil Kedy Date: Tue, 23 Mar 2021 19:25:13 -0400 Subject: [PATCH 32/82] Tweaks per PR feedback --- .../en/operations/monitoring/metrics/metrics-overview.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/daprdocs/content/en/operations/monitoring/metrics/metrics-overview.md b/daprdocs/content/en/operations/monitoring/metrics/metrics-overview.md index e8e98eef4..e6cda87b0 100644 --- a/daprdocs/content/en/operations/monitoring/metrics/metrics-overview.md +++ b/daprdocs/content/en/operations/monitoring/metrics/metrics-overview.md @@ -3,7 +3,7 @@ type: docs title: "Metrics" linkTitle: "Metrics" weight: 4000 -description: "Observing Dapr metrics" +description: "Observing Dapr metrics in Kubernetes" --- Dapr exposes a [Prometheus](https://prometheus.io/) metrics endpoint that you can scrape to gain a greater understanding of how Dapr is behaving and to setup alerts for specific conditions. @@ -34,7 +34,8 @@ spec: dapr.io/enabled: "true" dapr.io/app-id: "nodeapp" dapr.io/app-port: "3000" - dapr.io/enable-metrics: "false" + dapr.io/enable-metrics: "true" + dapr.io/metrics-port: "9090" spec: containers: - name: node From e66a602ab12c4b55d9aeefa58d16f9553d382f6c Mon Sep 17 00:00:00 2001 From: Phil Kedy Date: Tue, 23 Mar 2021 19:26:38 -0400 Subject: [PATCH 33/82] Tweaks per PR feedback --- .../en/operations/monitoring/metrics/metrics-overview.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/daprdocs/content/en/operations/monitoring/metrics/metrics-overview.md b/daprdocs/content/en/operations/monitoring/metrics/metrics-overview.md index e6cda87b0..e9d0b51bc 100644 --- a/daprdocs/content/en/operations/monitoring/metrics/metrics-overview.md +++ b/daprdocs/content/en/operations/monitoring/metrics/metrics-overview.md @@ -57,7 +57,7 @@ spec: tracing: samplingRate: "1" metric: - enabled: false + enabled: true ``` ## Metrics From a9ff4a653110600afe8b6f8b4efe0fc13a137806 Mon Sep 17 00:00:00 2001 From: Hugo Meyronneinc Date: Tue, 23 Mar 2021 17:43:20 +0100 Subject: [PATCH 34/82] feat: add shutdown docs --- .../hosting/kubernetes/kubernetes-job.md | 60 +++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 daprdocs/content/en/operations/hosting/kubernetes/kubernetes-job.md diff --git a/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-job.md b/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-job.md new file mode 100644 index 000000000..7c4f9b9c6 --- /dev/null +++ b/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-job.md @@ -0,0 +1,60 @@ +--- +type: docs +title: "Running Dapr with a Kubernetes Job" +linkTitle: "Kubernetes Jobs" +weight: 1000 +description: "Use Dapr API in a Kubernetes Job context" +type: docs +--- + +# Kubernetes Job + +The Dapr sidecar is designed to be a long running process, in the context of a [Kubernetes Job](https://kubernetes.io/docs/concepts/workloads/controllers/job/) this behaviour can block your job completion. +To address this issue the Dapr sidecar has an endpoint to `Shutdown` the sidecar. + +When running a basic [Kubernetes Job](https://kubernetes.io/docs/concepts/workloads/controllers/job/) you will need to call the `/shutdown` endpoint for the sidecar to gracefully stop and the job will be considered `Completed`. + +When a job is finish without calling `Shutdown` your job will be in a `NotReady` state with only the `daprd` container running endlessly. + +```yaml +apiVersion: batch/v1 +kind: Job +metadata: + name: job-with-shutdown +spec: + template: + metadata: + annotations: + dapr.io/enabled: "true" + dapr.io/app-id: "with-shutdown" + spec: + containers: + - name: job + image: busybox + command: ["/bin/sh", "-c", "sleep 20 && wget localhost:3500/v1.0/shutdown"] + restartPolicy: Never +``` + +You can also call the `Shutdown` from any of the Dapr SDK + +```go +package main + +import ( + "context" + "log" + "os" + + dapr "github.com/dapr/go-sdk/client" +) + +func main() { + client, err := dapr.NewClient() + if err != nil { + log.Panic(err) + } + defer client.Close() + defer client.Shutdown() + // Job +} +``` \ No newline at end of file From 4859d44b3ebf31ca740d4517ebbbe9719c0f1889 Mon Sep 17 00:00:00 2001 From: Ori Zohar Date: Fri, 26 Mar 2021 18:44:14 -0700 Subject: [PATCH 35/82] Removing redundant workflow file and addressing feedback --- ...static-web-apps-zealous-pond-0160b0210.yml | 45 ------------------- .../supported-bindings/_index.md | 2 +- 2 files changed, 1 insertion(+), 46 deletions(-) delete mode 100644 .github/workflows/azure-static-web-apps-zealous-pond-0160b0210.yml diff --git a/.github/workflows/azure-static-web-apps-zealous-pond-0160b0210.yml b/.github/workflows/azure-static-web-apps-zealous-pond-0160b0210.yml deleted file mode 100644 index ae6482060..000000000 --- a/.github/workflows/azure-static-web-apps-zealous-pond-0160b0210.yml +++ /dev/null @@ -1,45 +0,0 @@ -name: Azure Static Web Apps CI/CD - -on: - push: - branches: - - v1.1 - pull_request: - types: [opened, synchronize, reopened, closed] - branches: - - v1.1 - -jobs: - build_and_deploy_job: - if: github.event_name == 'push' || (github.event_name == 'pull_request' && github.event.action != 'closed') - runs-on: ubuntu-latest - name: Build and Deploy Job - steps: - - uses: actions/checkout@v2 - with: - submodules: true - - name: Build And Deploy - id: builddeploy - uses: Azure/static-web-apps-deploy@v0.0.1-preview - with: - azure_static_web_apps_api_token: ${{ secrets.AZURE_STATIC_WEB_APPS_API_TOKEN_ZEALOUS_POND_0160B0210 }} - repo_token: ${{ secrets.GITHUB_TOKEN }} # Used for Github integrations (i.e. PR comments) - action: "upload" - ###### Repository/Build Configurations - These values can be configured to match your app requirements. ###### - # For more information regarding Static Web App workflow configurations, please visit: https://aka.ms/swaworkflowconfig - app_location: "/daprdocs" # App source code path - api_location: "api" # Api source code path - optional - output_location: "public" # Built app content directory - optional - ###### End of Repository/Build Configurations ###### - - close_pull_request_job: - if: github.event_name == 'pull_request' && github.event.action == 'closed' - runs-on: ubuntu-latest - name: Close Pull Request Job - steps: - - name: Close Pull Request - id: closepullrequest - uses: Azure/static-web-apps-deploy@v0.0.1-preview - with: - azure_static_web_apps_api_token: ${{ secrets.AZURE_STATIC_WEB_APPS_API_TOKEN_ZEALOUS_POND_0160B0210 }} - action: "close" diff --git a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/_index.md b/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/_index.md index b854accd0..692149ac5 100644 --- a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/_index.md +++ b/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/_index.md @@ -29,7 +29,7 @@ Table captions: | [InfluxDB]({{< ref influxdb.md >}}) | | ✅ | Alpha | v1 | 1.0 | | [Kafka]({{< ref kafka.md >}}) | ✅ | ✅ | Alpha | v1 | 1.0 | | [Kubernetes Events]({{< ref "kubernetes-binding.md" >}}) | ✅ | | Alpha | v1 | 1.0 | -| [Local Storage]({{< ref localstorage.md >}}) | | ✅ | Alpha | v1 | 1.x | +| [Local Storage]({{< ref localstorage.md >}}) | | ✅ | Alpha | v1 | 1.1 | | [MQTT]({{< ref mqtt.md >}}) | ✅ | ✅ | Alpha | v1 | 1.0 | | [MySQL]({{< ref mysql.md >}}) | | ✅ | Alpha | v1 | 1.0 | | [PostgreSql]({{< ref postgres.md >}}) | | ✅ | Alpha | v1 | 1.0 | From 895fa1d00af847432734c357017db95919b0dea0 Mon Sep 17 00:00:00 2001 From: Aaron Crawfis Date: Tue, 30 Mar 2021 12:50:37 -0700 Subject: [PATCH 36/82] Pull latest zh docs --- translations/docs-zh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/translations/docs-zh b/translations/docs-zh index 1806602cc..036fc63bf 160000 --- a/translations/docs-zh +++ b/translations/docs-zh @@ -1 +1 @@ -Subproject commit 1806602cccee4cc091c38d6bb06ef7b0220a53ed +Subproject commit 036fc63bf0a919843827e263ec287d55e3188b7b From 2dfe2252f2f25af3332fc672505a9b0e033e9338 Mon Sep 17 00:00:00 2001 From: Donovan Brown Date: Tue, 30 Mar 2021 19:39:13 -0500 Subject: [PATCH 37/82] Update secret-stores-overview.md Just updated a sentence that I feel reads better now. Updated "with secure store" to "with secure storage" --- .../components/setup-secret-store/secret-stores-overview.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/daprdocs/content/en/operations/components/setup-secret-store/secret-stores-overview.md b/daprdocs/content/en/operations/components/setup-secret-store/secret-stores-overview.md index 43405461e..5822ff211 100644 --- a/daprdocs/content/en/operations/components/setup-secret-store/secret-stores-overview.md +++ b/daprdocs/content/en/operations/components/setup-secret-store/secret-stores-overview.md @@ -7,7 +7,7 @@ weight: 10000 type: docs --- -Dapr integrates with secret stores to provide apps and other components with secure store and access to secrets such as access keys and passwords. Each secret store component has a name and this name is used when accessing a secret. +Dapr integrates with secret stores to provide apps and other components with secure storage and access to secrets such as access keys and passwords. Each secret store component has a name and this name is used when accessing a secret. As with other building block components, secret store components are extensible and can be found in the [components-contrib repo](https://github.com/dapr/components-contrib). @@ -79,4 +79,4 @@ kubectl apply -f secret-store.yaml ## Related links - [Supported secret store components]({{< ref supported-secret-stores >}}) -- [Secrets building block]({{< ref secrets >}}) \ No newline at end of file +- [Secrets building block]({{< ref secrets >}}) From 9edf64a6fc8bd06363d382bf4fa4de6c606044a2 Mon Sep 17 00:00:00 2001 From: Ori Zohar Date: Wed, 31 Mar 2021 16:57:43 -0700 Subject: [PATCH 38/82] adding service mesh concept page --- daprdocs/content/en/concepts/faq.md | 23 +---------- daprdocs/content/en/concepts/service-mesh.md | 41 +++++++++++++++++++ daprdocs/static/images/service-mesh.png | Bin 0 -> 60762 bytes 3 files changed, 43 insertions(+), 21 deletions(-) create mode 100644 daprdocs/content/en/concepts/service-mesh.md create mode 100644 daprdocs/static/images/service-mesh.png diff --git a/daprdocs/content/en/concepts/faq.md b/daprdocs/content/en/concepts/faq.md index 8106ef646..1c291d447 100644 --- a/daprdocs/content/en/concepts/faq.md +++ b/daprdocs/content/en/concepts/faq.md @@ -6,27 +6,8 @@ weight: 1000 description: "Common questions asked about Dapr" --- -## Networking and service meshes - -### Understanding how Dapr works with service meshes - -Dapr is a distributed application runtime. Unlike a service mesh which is focused on networking concerns, Dapr is focused on providing building blocks that make it easier for developers to build microservices. Dapr is developer-centric versus service meshes being infrastructure-centric. - -Dapr can be used alongside any service mesh such as Istio and Linkerd. A service mesh is a dedicated network infrastructure layer designed to connect services to one another and provide insightful telemetry. A service mesh doesn’t introduce new functionality to an application. - -That is where Dapr comes in. Dapr is a language agnostic programming model built on http and gRPC that provides distributed system building blocks via open APIs for asynchronous pub-sub, stateful services, service discovery and invocation, actors and distributed tracing. Dapr introduces new functionality to an app’s runtime. Both service meshes and Dapr run as side-car services to your application, one giving network features and the other distributed application capabilities. - -Watch this [video](https://www.youtube.com/watch?v=xxU68ewRmz8&feature=youtu.be&t=140) on how Dapr and service meshes work together. - -### Understanding how Dapr interoperates with the service mesh interface (SMI) - -SMI is an abstraction layer that provides a common API surface across different service mesh technology. Dapr can leverage any service mesh technology including SMI. - -### Differences between Dapr, Istio and Linkerd - -Read [How does Dapr work with service meshes?](https://github.com/dapr/dapr/wiki/FAQ#how-does-dapr-work-with-service-meshes) Istio is an open source service mesh implementation that focuses on Layer7 routing, traffic flow management and mTLS authentication between services. Istio uses a sidecar to intercept traffic going into and out of a container and enforces a set of network policies on them. - -Istio is not a programming model and does not focus on application level features such as state management, pub-sub, bindings etc. That is where Dapr comes in. +## How does Dapr compare to service meshes such as Istio, Linkerd or OSM? +Dapr is not a service mesh. While service meshes focus on fine grained network control, Dapr is focused on helping developers build distributed applications. Both Dapr and service meshes use the sidecar pattern and run alongside the application and they do have some overlapping features but also offer unique benefits. For more information please read the [Dapr & service meshes]({{}}) concept page. ## Performance Benchmarks The Dapr project is focused on performance due to the inherent discussion of Dapr being a sidecar to your application. See [here]({{< ref perf-service-invocation.md >}}) for updated performance numbers. diff --git a/daprdocs/content/en/concepts/service-mesh.md b/daprdocs/content/en/concepts/service-mesh.md new file mode 100644 index 000000000..cba402532 --- /dev/null +++ b/daprdocs/content/en/concepts/service-mesh.md @@ -0,0 +1,41 @@ +--- +type: docs +title: "Dapr & service meshes" +linkTitle: "Service meshes" +weight: 700 +description: > + How Dapr compares to, and works with service meshes +--- + +Dapr uses the sidecar architecture, running as a separate process alongside the application and includes features such as network security and distributed tracing. This often raises the question - how does Dapr compares to service mesh solutions such as Linkerd and Istio? + +## How Dapr and service meshes compare +While Dapr and service meshes do offer some overlapping capabilities, **Dapr is not a service mesh**. Unlike a service mesh which is focused on networking concerns, Dapr is focused on providing building blocks that make it easier for developers to build microservices. Dapr is developer-centric versus service meshes being infrastructure-centric. + +In most cases, developers do not need to be aware that the application they are building will be deployed in an environment which includes a service mesh since a service mesh intercepts network traffic. Service meshes are mostly managed and deployed by system operators. However, Dapr building block APIs are very much intended to be used by developers explicitly in their code. + +Some common capabilities Dapr shares with service meshes include: +- Secure service-to-service communication through mTLS encryption +- Metric collection +- Distributed tracing +- Resiliency through retries + +However, Dapr does not provide capabilities for traffic behavior such as routing or traffic splitting. Dapr does provide application level building blocks for state management, pub/sub messaging, actors and more. + +The illustration below captures some of the overlapping features and unique capabilities Dapr and service meshes offer: + + + +## Using Dapr together with a service mesh +Dapr can work well with service meshes. In the case where both are deployed together, both a Dapr and service mesh sidecar will be running in the application environment. In those cases, it is recommended to ensure only Dapr or only the service mesh perform mTLS encryption and distributed tracing. + +Watch these recordings from the Dapr community calls showing presentations on running Dapr together with service meshes: +- General overview and a demo of [Dapr and Linkerd](https://youtu.be/xxU68ewRmz8?t=142) +- Demo of running [Dapr and Istio](https://youtu.be/ngIDOQApx8g?t=335) + +## When to choose using Dapr, a service mesh or both +Should you be using Dapr, a service mesh or both? The answer depends on your requirements. If, for example, you are looking to use Dapr for one or more building blocks such as state management or pub/sub and considering using a service mesh just for network security or observability, you may find that Dapr is a good fit and a service mesh is not required. + +If however, you need advanced, fine grained networking control, you would probably benefit from using a service mesh. + +In some cases, where you require capabilities that are unique to both you will find it useful to leverage both Dapr and a service mesh - as mentioned above, there is no limitation for using both. diff --git a/daprdocs/static/images/service-mesh.png b/daprdocs/static/images/service-mesh.png new file mode 100644 index 0000000000000000000000000000000000000000..f9dd4eb4158b2b864dcc7e2de4021370c7fa0c14 GIT binary patch literal 60762 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 Date: Wed, 31 Mar 2021 17:01:36 -0700 Subject: [PATCH 39/82] Update commit --- sdkdocs/dotnet | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdkdocs/dotnet b/sdkdocs/dotnet index 4baad5453..51e058411 160000 --- a/sdkdocs/dotnet +++ b/sdkdocs/dotnet @@ -1 +1 @@ -Subproject commit 4baad5453f2de231ae7d50cb232060084e55caf7 +Subproject commit 51e058411081aff1d91323e987bb8f0a59548bd0 From ab4db10634dfaaea0b94f765131113482eb414d4 Mon Sep 17 00:00:00 2001 From: Ori Zohar Date: Wed, 31 Mar 2021 17:31:56 -0700 Subject: [PATCH 40/82] Update service-mesh.md --- daprdocs/content/en/concepts/service-mesh.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/daprdocs/content/en/concepts/service-mesh.md b/daprdocs/content/en/concepts/service-mesh.md index cba402532..67902e48d 100644 --- a/daprdocs/content/en/concepts/service-mesh.md +++ b/daprdocs/content/en/concepts/service-mesh.md @@ -7,7 +7,7 @@ description: > How Dapr compares to, and works with service meshes --- -Dapr uses the sidecar architecture, running as a separate process alongside the application and includes features such as network security and distributed tracing. This often raises the question - how does Dapr compares to service mesh solutions such as Linkerd and Istio? +Dapr uses the sidecar architecture, running as a separate process alongside the application and includes features such as network security and distributed tracing. This often raises the question - how does Dapr compare to service mesh solutions such as Linkerd and Istio? ## How Dapr and service meshes compare While Dapr and service meshes do offer some overlapping capabilities, **Dapr is not a service mesh**. Unlike a service mesh which is focused on networking concerns, Dapr is focused on providing building blocks that make it easier for developers to build microservices. Dapr is developer-centric versus service meshes being infrastructure-centric. From 908c1fa1472c645bd41810f50d8f6e98c83f0443 Mon Sep 17 00:00:00 2001 From: Mark Fussell Date: Wed, 31 Mar 2021 21:21:01 -0700 Subject: [PATCH 41/82] Update service-mesh.md --- daprdocs/content/en/concepts/service-mesh.md | 34 +++++++++++--------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/daprdocs/content/en/concepts/service-mesh.md b/daprdocs/content/en/concepts/service-mesh.md index 67902e48d..5ee94f698 100644 --- a/daprdocs/content/en/concepts/service-mesh.md +++ b/daprdocs/content/en/concepts/service-mesh.md @@ -1,41 +1,45 @@ --- type: docs -title: "Dapr & service meshes" +title: "Dapr and service meshes" linkTitle: "Service meshes" weight: 700 description: > How Dapr compares to, and works with service meshes --- -Dapr uses the sidecar architecture, running as a separate process alongside the application and includes features such as network security and distributed tracing. This often raises the question - how does Dapr compare to service mesh solutions such as Linkerd and Istio? +Dapr uses a sidecar architecture, running as a separate process alongside the application and includes features such as, service invocation, network security and distributed tracing. This often raises the question - how does Dapr compare to service mesh solutions such as Linkerd, Istio and Open Service Mesh (OSM)? ## How Dapr and service meshes compare -While Dapr and service meshes do offer some overlapping capabilities, **Dapr is not a service mesh**. Unlike a service mesh which is focused on networking concerns, Dapr is focused on providing building blocks that make it easier for developers to build microservices. Dapr is developer-centric versus service meshes being infrastructure-centric. +While Dapr and service meshes do offer some overlapping capabilities, **Dapr is not a service mesh** where a service mesh, is defined as a *networking* service mesh. Unlike a service mesh which is focused on networking concerns, Dapr is focused on providing building blocks that make it easier for developers to build applications as microservices. Dapr is developer-centric versus service meshes being infrastructure-centric. -In most cases, developers do not need to be aware that the application they are building will be deployed in an environment which includes a service mesh since a service mesh intercepts network traffic. Service meshes are mostly managed and deployed by system operators. However, Dapr building block APIs are very much intended to be used by developers explicitly in their code. +In most cases, developers do not need to be aware that the application they are building will be deployed in an environment which includes a service mesh since a service mesh intercepts network traffic. Service meshes are mostly managed and deployed by system operators. However, Dapr building block APIs are intended to be used by developers explicitly in their code. -Some common capabilities Dapr shares with service meshes include: -- Secure service-to-service communication through mTLS encryption -- Metric collection -- Distributed tracing +Some common capabilities that Dapr shares with service meshes include: +- Secure service-to-service communication with mTLS encryption +- service-to-service metric collection +- service-to-service distributed tracing - Resiliency through retries -However, Dapr does not provide capabilities for traffic behavior such as routing or traffic splitting. Dapr does provide application level building blocks for state management, pub/sub messaging, actors and more. + Importantly Dapr provides service discovery and invocation via names which is a developer centric convern. This means that through Dapr's service invocation API, developers call a method on a service name, whereas service meshes deal with network concepts such as IPs and DNS addresses. However, Dapr does not provide capabilities for traffic behavior such as routing or traffic splitting. Traffic routing is often addressed with ingress proxies to an application and does not have to use a service mesh. In addition, Dapr does provides other application level building blocks for state management, pub/sub messaging, actors and more. -The illustration below captures some of the overlapping features and unique capabilities Dapr and service meshes offer: +Another difference between Dapr and service meshes is with observability (tracing and metrics). Service meshes operate at the network level and trace the network calls between services. Dapr does this with service invocation, however Dapr also provides observability (tracing and metrics) over pub/sub calls using trace ids written into the Cloud Events envelope. This means that the metrics and tracing with Dapr is more extensive than with a service mesh for applications that use both service-to-service invocation and pub/sub to communicate. + +The illustration below captures the overlapping features and unique capabilities that Dapr and service meshes offer: -## Using Dapr together with a service mesh -Dapr can work well with service meshes. In the case where both are deployed together, both a Dapr and service mesh sidecar will be running in the application environment. In those cases, it is recommended to ensure only Dapr or only the service mesh perform mTLS encryption and distributed tracing. +## Using Dapr with a service mesh +Dapr does work with service meshes. In the case where both are deployed together, both Dapr and service mesh sidecars are running in the application environment. In this case, it is recommended to configure only Dapr or only the service mesh to perform mTLS encryption and distributed tracing. -Watch these recordings from the Dapr community calls showing presentations on running Dapr together with service meshes: +Watch these recordings from the Dapr community calls showing presentations on running Dapr together with different service meshes: - General overview and a demo of [Dapr and Linkerd](https://youtu.be/xxU68ewRmz8?t=142) - Demo of running [Dapr and Istio](https://youtu.be/ngIDOQApx8g?t=335) ## When to choose using Dapr, a service mesh or both Should you be using Dapr, a service mesh or both? The answer depends on your requirements. If, for example, you are looking to use Dapr for one or more building blocks such as state management or pub/sub and considering using a service mesh just for network security or observability, you may find that Dapr is a good fit and a service mesh is not required. -If however, you need advanced, fine grained networking control, you would probably benefit from using a service mesh. +Typically you would use a service mesh with Dapr where there is a corporate policy that traffic on the network needs to be encrypted regardless for all applications. For example, you may be using Dapr in only part of your application and other services and processes that are not using Dapr in your application also need encrypted traffic. In this scenario a service mesh is the better option and most likely you should use mTLS and distributed tracing on the service mesh and disable this on Dapr. -In some cases, where you require capabilities that are unique to both you will find it useful to leverage both Dapr and a service mesh - as mentioned above, there is no limitation for using both. +If you need traffic splitting for A/B testing scenarios you would benefit from using a service mesh, since Dapr does not provide this. + +In some cases, where you require capabilities that are unique to both you will find it useful to leverage both Dapr and a service mesh - as mentioned above, there is no limitation for using them together. From d761a46840f973e183eac5a4bfce07aec126b528 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 1 Apr 2021 07:56:57 +0000 Subject: [PATCH 42/82] Bump y18n from 4.0.0 to 4.0.1 in /daprdocs Bumps [y18n](https://github.com/yargs/y18n) from 4.0.0 to 4.0.1. - [Release notes](https://github.com/yargs/y18n/releases) - [Changelog](https://github.com/yargs/y18n/blob/master/CHANGELOG.md) - [Commits](https://github.com/yargs/y18n/commits) Signed-off-by: dependabot[bot] --- daprdocs/package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/daprdocs/package-lock.json b/daprdocs/package-lock.json index f31aedfcc..8caa8959e 100644 --- a/daprdocs/package-lock.json +++ b/daprdocs/package-lock.json @@ -918,9 +918,9 @@ } }, "y18n": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", + "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==", "dev": true }, "yargs": { From 39c232b21c98432de07fe443345d4fca01488661 Mon Sep 17 00:00:00 2001 From: wise-Kaas Date: Thu, 1 Apr 2021 13:02:52 +0300 Subject: [PATCH 43/82] matched default ports for http and gprc --- daprdocs/content/en/reference/cli/dapr-run.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/daprdocs/content/en/reference/cli/dapr-run.md b/daprdocs/content/en/reference/cli/dapr-run.md index 7461f8eee..f1ca6ddf3 100644 --- a/daprdocs/content/en/reference/cli/dapr-run.md +++ b/daprdocs/content/en/reference/cli/dapr-run.md @@ -30,8 +30,8 @@ dapr run [flags] [command] | `--app-ssl` | | `false` | Enable https when Dapr invokes the application | `--components-path`, `-d` | | `Linux & Mac: $HOME/.dapr/components`, `Windows: %USERPROFILE%\.dapr\components` | The path for components directory | `--config`, `-c` | | `Linux & Mac: $HOME/.dapr/config.yaml`, `Windows: %USERPROFILE%\.dapr\config.yaml` | Dapr configuration file | -| `--dapr-grpc-port` | | `3500` | The gRPC port for Dapr to listen on | -| `--dapr-http-port` | | `50001` | The HTTP port for Dapr to listen on | +| `--dapr-grpc-port` | | `50001` | The gRPC port for Dapr to listen on | +| `--dapr-http-port` | | `3500` | The HTTP port for Dapr to listen on | | `--enable-profiling` | | `false` | Enable `pprof` profiling via an HTTP endpoint | `--help`, `-h` | | | Print this help message | | `--image` | | | The image to build the code in. Input is: `repository/image` | From fc9df14a7bc4de63cbfd50b852f18a2a8c99cc01 Mon Sep 17 00:00:00 2001 From: Ori Zohar Date: Thu, 1 Apr 2021 08:37:22 -0700 Subject: [PATCH 44/82] Typo fixes --- daprdocs/content/en/concepts/service-mesh.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/daprdocs/content/en/concepts/service-mesh.md b/daprdocs/content/en/concepts/service-mesh.md index 5ee94f698..7e2f11344 100644 --- a/daprdocs/content/en/concepts/service-mesh.md +++ b/daprdocs/content/en/concepts/service-mesh.md @@ -16,11 +16,11 @@ In most cases, developers do not need to be aware that the application they are Some common capabilities that Dapr shares with service meshes include: - Secure service-to-service communication with mTLS encryption -- service-to-service metric collection -- service-to-service distributed tracing +- Service-to-service metric collection +- Service-to-service distributed tracing - Resiliency through retries - Importantly Dapr provides service discovery and invocation via names which is a developer centric convern. This means that through Dapr's service invocation API, developers call a method on a service name, whereas service meshes deal with network concepts such as IPs and DNS addresses. However, Dapr does not provide capabilities for traffic behavior such as routing or traffic splitting. Traffic routing is often addressed with ingress proxies to an application and does not have to use a service mesh. In addition, Dapr does provides other application level building blocks for state management, pub/sub messaging, actors and more. + Importantly Dapr provides service discovery and invocation via names which is a developer centric concern. This means that through Dapr's service invocation API, developers call a method on a service name, whereas service meshes deal with network concepts such as IPs and DNS addresses. However, Dapr does not provide capabilities for traffic behavior such as routing or traffic splitting. Traffic routing is often addressed with ingress proxies to an application and does not have to use a service mesh. In addition, Dapr does provides other application level building blocks for state management, pub/sub messaging, actors and more. Another difference between Dapr and service meshes is with observability (tracing and metrics). Service meshes operate at the network level and trace the network calls between services. Dapr does this with service invocation, however Dapr also provides observability (tracing and metrics) over pub/sub calls using trace ids written into the Cloud Events envelope. This means that the metrics and tracing with Dapr is more extensive than with a service mesh for applications that use both service-to-service invocation and pub/sub to communicate. From 87126869cbf12d9b5ec6bd237212b6f6c2749617 Mon Sep 17 00:00:00 2001 From: Ori Zohar Date: Thu, 1 Apr 2021 08:39:11 -0700 Subject: [PATCH 45/82] small phrasing change --- daprdocs/content/en/concepts/service-mesh.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/daprdocs/content/en/concepts/service-mesh.md b/daprdocs/content/en/concepts/service-mesh.md index 7e2f11344..342aa1049 100644 --- a/daprdocs/content/en/concepts/service-mesh.md +++ b/daprdocs/content/en/concepts/service-mesh.md @@ -40,6 +40,6 @@ Should you be using Dapr, a service mesh or both? The answer depends on your req Typically you would use a service mesh with Dapr where there is a corporate policy that traffic on the network needs to be encrypted regardless for all applications. For example, you may be using Dapr in only part of your application and other services and processes that are not using Dapr in your application also need encrypted traffic. In this scenario a service mesh is the better option and most likely you should use mTLS and distributed tracing on the service mesh and disable this on Dapr. -If you need traffic splitting for A/B testing scenarios you would benefit from using a service mesh, since Dapr does not provide this. +If you need traffic splitting for A/B testing scenarios you would benefit from using a service mesh, since Dapr does not provide these capabilities. In some cases, where you require capabilities that are unique to both you will find it useful to leverage both Dapr and a service mesh - as mentioned above, there is no limitation for using them together. From bdbb6ae7dc8e0da7f5926786658ad9a0d1be1bd5 Mon Sep 17 00:00:00 2001 From: Artur Souza Date: Thu, 1 Apr 2021 09:07:47 -0700 Subject: [PATCH 46/82] Update support-release-policy.md --- .../content/en/operations/support/support-release-policy.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/daprdocs/content/en/operations/support/support-release-policy.md b/daprdocs/content/en/operations/support/support-release-policy.md index 7dd39ebe4..8766f4db0 100644 --- a/daprdocs/content/en/operations/support/support-release-policy.md +++ b/daprdocs/content/en/operations/support/support-release-policy.md @@ -32,8 +32,8 @@ The table below shows the versions of Dapr releases that have been tested togeth | Release date | Runtime | CLI | SDKs | Dashboard | Status | |--------------------|:--------:|:--------|---------|---------|---------| | Feb 17th 2021 | 1.0.0
| 1.0.0 | Java 1.0.0
Go 1.0.0
PHP 1.0.0
Python 1.0.0
.NET 1.0.0 | 0.6.0 | Supported | -| Mar 4th 2021 | 1.0.1
| 1.0.1 | Java 1.0.0
Go 1.0.0
PHP 1.0.0
Python 1.0.0
.NET 1.0.0 | 0.6.0 | Supported | -| Mar 30th 2021 | 1.1.0
| 1.1.0 | Java 1.1.0
Go 1.1.0
PHP 1.1.0
Python 1.1.0
.NET 1.1.0 | 0.6.0 | Supported (current) | +| 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 (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 @@ -66,4 +66,4 @@ Here is an example, using a hypothetical 1.1.0 as the deprecation announcement r Dapr can support multiple hosting platforms for production. With the 1.0 release the two supported platforms are Kubernetes and physical machines. For Kubernetes upgrades see [Production guidelines on Kubernetes]({{< ref kubernetes-production.md >}}) ## Related links -* Read the [Versioning policy]({{< ref support-versioning.md >}}) \ No newline at end of file +* Read the [Versioning policy]({{< ref support-versioning.md >}}) From 5ff6ff437b4ed24bbbd0223e46e8a9bcc2d37856 Mon Sep 17 00:00:00 2001 From: Aaron Crawfis Date: Thu, 1 Apr 2021 10:27:27 -0700 Subject: [PATCH 47/82] Update SDK-Docs --- sdkdocs/dotnet | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdkdocs/dotnet b/sdkdocs/dotnet index 51e058411..fadb6c265 160000 --- a/sdkdocs/dotnet +++ b/sdkdocs/dotnet @@ -1 +1 @@ -Subproject commit 51e058411081aff1d91323e987bb8f0a59548bd0 +Subproject commit fadb6c2654255864438c387a1a2b862eaf3af240 From 67aa327da7f03ca9a08cf659cbef1c9e4b01675d Mon Sep 17 00:00:00 2001 From: Aaron Crawfis Date: Thu, 1 Apr 2021 13:55:53 -0700 Subject: [PATCH 48/82] ci: add Azure Static Web Apps workflow file on-behalf-of: @Azure opensource@microsoft.com --- ...re-static-web-apps-proud-bay-0e9e0e81e.yml | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 .github/workflows/azure-static-web-apps-proud-bay-0e9e0e81e.yml diff --git a/.github/workflows/azure-static-web-apps-proud-bay-0e9e0e81e.yml b/.github/workflows/azure-static-web-apps-proud-bay-0e9e0e81e.yml new file mode 100644 index 000000000..2ab15ad3c --- /dev/null +++ b/.github/workflows/azure-static-web-apps-proud-bay-0e9e0e81e.yml @@ -0,0 +1,45 @@ +name: Azure Static Web Apps CI/CD + +on: + push: + branches: + - v1.1 + pull_request: + types: [opened, synchronize, reopened, closed] + branches: + - v1.1 + +jobs: + build_and_deploy_job: + if: github.event_name == 'push' || (github.event_name == 'pull_request' && github.event.action != 'closed') + runs-on: ubuntu-latest + name: Build and Deploy Job + steps: + - uses: actions/checkout@v2 + with: + submodules: true + - name: Build And Deploy + id: builddeploy + uses: Azure/static-web-apps-deploy@v0.0.1-preview + with: + azure_static_web_apps_api_token: ${{ secrets.AZURE_STATIC_WEB_APPS_API_TOKEN_PROUD_BAY_0E9E0E81E }} + repo_token: ${{ secrets.GITHUB_TOKEN }} # Used for Github integrations (i.e. PR comments) + action: "upload" + ###### Repository/Build Configurations - These values can be configured to match your app requirements. ###### + # For more information regarding Static Web App workflow configurations, please visit: https://aka.ms/swaworkflowconfig + app_location: "/daprdocs" # App source code path + api_location: "api" # Api source code path - optional + output_location: "public" # Built app content directory - optional + ###### End of Repository/Build Configurations ###### + + close_pull_request_job: + if: github.event_name == 'pull_request' && github.event.action == 'closed' + runs-on: ubuntu-latest + name: Close Pull Request Job + steps: + - name: Close Pull Request + id: closepullrequest + uses: Azure/static-web-apps-deploy@v0.0.1-preview + with: + azure_static_web_apps_api_token: ${{ secrets.AZURE_STATIC_WEB_APPS_API_TOKEN_PROUD_BAY_0E9E0E81E }} + action: "close" From d52a169dd7451b8b5ea3d30408ccad9f0421f667 Mon Sep 17 00:00:00 2001 From: Aaron Crawfis Date: Thu, 1 Apr 2021 13:58:16 -0700 Subject: [PATCH 49/82] Update workflow --- .../azure-static-web-apps-proud-bay-0e9e0e81e.yml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/.github/workflows/azure-static-web-apps-proud-bay-0e9e0e81e.yml b/.github/workflows/azure-static-web-apps-proud-bay-0e9e0e81e.yml index 2ab15ad3c..0028230f8 100644 --- a/.github/workflows/azure-static-web-apps-proud-bay-0e9e0e81e.yml +++ b/.github/workflows/azure-static-web-apps-proud-bay-0e9e0e81e.yml @@ -17,10 +17,15 @@ jobs: steps: - uses: actions/checkout@v2 with: - submodules: true + submodules: recursive + - name: Setup Docsy + run: cd daprdocs && git submodule update --init --recursive && sudo npm install -D --save autoprefixer && sudo npm install -D --save postcss-cli - name: Build And Deploy id: builddeploy uses: Azure/static-web-apps-deploy@v0.0.1-preview + env: + HUGO_ENV: production + HUGO_VERSION: "0.74.3" with: azure_static_web_apps_api_token: ${{ secrets.AZURE_STATIC_WEB_APPS_API_TOKEN_PROUD_BAY_0E9E0E81E }} repo_token: ${{ secrets.GITHUB_TOKEN }} # Used for Github integrations (i.e. PR comments) @@ -30,6 +35,7 @@ jobs: app_location: "/daprdocs" # App source code path api_location: "api" # Api source code path - optional output_location: "public" # Built app content directory - optional + app_build_command: "hugo" ###### End of Repository/Build Configurations ###### close_pull_request_job: From f5b39a3f4886348e83f8705ab13c2ff3f6fc9d80 Mon Sep 17 00:00:00 2001 From: Charlie Stanley Date: Thu, 1 Apr 2021 14:54:30 -0700 Subject: [PATCH 50/82] Update kubernetes-upgrade.md --- .../hosting/kubernetes/kubernetes-upgrade.md | 22 ++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-upgrade.md b/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-upgrade.md index 6f8d0fd99..2e44e4e55 100644 --- a/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-upgrade.md +++ b/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-upgrade.md @@ -25,6 +25,26 @@ The example below shows how to upgrade to version 1.1.0: 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. +#### Troubleshooting upgrade using the CLI + +There is a known issue running upgrades on clusters that may have previously had a version prior to 1.0.0-rc.2 installed on a cluster. + +Most users should not encounter this issue, but there are a few upgrade path edge cases that may leave an incompatible CustomResourceDefinition installed on your cluster. The error message for this case looks like this: + +``` +❌ Failed to upgrade Dapr: Warning: kubectl apply should be used on resource created by either kubectl create --save-config or kubectl apply +The CustomResourceDefinition "configurations.dapr.io" is invalid: spec.preserveUnknownFields: Invalid value: true: must be false in order to use defaults in the schema + +``` + +To resolve this issue please run the follow command to upgrade the CustomResourceDefinition to a compatible version: + +``` +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.0 -k` command as above. + ### Helm From version 1.0.0 onwards, upgrading Dapr using Helm is no longer a disruptive action since existing certificate values will automatically be re-used. @@ -64,4 +84,4 @@ From version 1.0.0 onwards, upgrading Dapr using Helm is no longer a disruptive ## Next steps - [Dapr on Kubernetes]({{< ref kubernetes-overview.md >}}) -- [Dapr production guidelines]({{< ref kubernetes-production.md >}}) \ No newline at end of file +- [Dapr production guidelines]({{< ref kubernetes-production.md >}}) From 494b6b1949b2c527046fcdb0d6a7e94d4e0e9434 Mon Sep 17 00:00:00 2001 From: Ori Zohar Date: Thu, 1 Apr 2021 15:39:14 -0700 Subject: [PATCH 51/82] Updating config for v1.1 release --- daprdocs/config.toml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/daprdocs/config.toml b/daprdocs/config.toml index 9b4b6c6b1..ecb64e448 100644 --- a/daprdocs/config.toml +++ b/daprdocs/config.toml @@ -1,5 +1,5 @@ # Site Configuration -baseURL = "https://v1-1.docs.dapr.io/" +baseURL = "https://docs.dapr.io/" title = "Dapr Docs" theme = "docsy" disableFastRender = true @@ -136,16 +136,16 @@ github_subdir = "daprdocs" github_branch = "v1.1" # Versioning -version_menu = "v1.1 (edge)" +version_menu = "v1.1 (latest)" version = "v1.1" archived_version = false [[params.versions]] - version = "v1.1 (edge)" + version = "v1.1 (latest)" url = "#" [[params.versions]] - version = "v1.0 (latest)" - url = "https://docs.dapr.io" + version = "v1.0" + url = "https://v1-0.docs.dapr.io" [[params.versions]] version = "v0.11" url = "https://v0-11.docs.dapr.io" From 99effae0043d76e483472d86ad2079de196ded41 Mon Sep 17 00:00:00 2001 From: Ori Zohar Date: Thu, 1 Apr 2021 18:09:05 -0700 Subject: [PATCH 52/82] Changing page ordering for k8s pages --- .../content/en/operations/hosting/kubernetes/cluster/_index.md | 2 +- .../content/en/operations/hosting/kubernetes/kubernetes-job.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/daprdocs/content/en/operations/hosting/kubernetes/cluster/_index.md b/daprdocs/content/en/operations/hosting/kubernetes/cluster/_index.md index 6a67e6a10..ce3cad39c 100644 --- a/daprdocs/content/en/operations/hosting/kubernetes/cluster/_index.md +++ b/daprdocs/content/en/operations/hosting/kubernetes/cluster/_index.md @@ -2,7 +2,7 @@ type: docs title: "Kubernetes cluster setup" linkTitle: "How-to: Setup clusters" -weight: 70000 +weight: 80000 description: > How to create a Kubernetes cluster --- \ No newline at end of file diff --git a/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-job.md b/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-job.md index 7c4f9b9c6..bbbf1f483 100644 --- a/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-job.md +++ b/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-job.md @@ -2,7 +2,7 @@ type: docs title: "Running Dapr with a Kubernetes Job" linkTitle: "Kubernetes Jobs" -weight: 1000 +weight: 70000 description: "Use Dapr API in a Kubernetes Job context" type: docs --- From 1150e094e20e00a040bb651627dd80ed9ea3ae7d Mon Sep 17 00:00:00 2001 From: Ori Zohar Date: Fri, 2 Apr 2021 12:05:39 -0700 Subject: [PATCH 53/82] Updating archived version banner for v1.1 (disabled) --- daprdocs/config.toml | 1 + daprdocs/layouts/partials/version-banner.html | 15 +++++++++++++++ 2 files changed, 16 insertions(+) create mode 100644 daprdocs/layouts/partials/version-banner.html diff --git a/daprdocs/config.toml b/daprdocs/config.toml index ecb64e448..c01bf3e32 100644 --- a/daprdocs/config.toml +++ b/daprdocs/config.toml @@ -139,6 +139,7 @@ github_branch = "v1.1" version_menu = "v1.1 (latest)" version = "v1.1" archived_version = false +url_latest_version = "https://docs.dapr.io" [[params.versions]] version = "v1.1 (latest)" diff --git a/daprdocs/layouts/partials/version-banner.html b/daprdocs/layouts/partials/version-banner.html new file mode 100644 index 000000000..0436da130 --- /dev/null +++ b/daprdocs/layouts/partials/version-banner.html @@ -0,0 +1,15 @@ + + {{ if .Site.Params.archived_version }} + {{ $color := "primary" }} + {{ $latest_version := .Site.Params.url_latest_version }} + {{ $current_version := .Site.Params.version }} +
+ {{ with $current_version }}

The documentation you are viewing is for Dapr {{ . | markdownify }} + which is an older version of Dapr. + {{ with $latest_version }}For up-to-date documentation, see the + latest version.

+ {{ end }} + {{ end }} +
+{{ end }} From 9a097d9e04c0dd04cc9f7623b03bc52795edf107 Mon Sep 17 00:00:00 2001 From: Andreas Riehl <69462923+CCGAC-Andreas-Riehl@users.noreply.github.com> Date: Fri, 2 Apr 2021 21:39:41 +0200 Subject: [PATCH 54/82] Update kubernetes-upgrade.md The command doesn't match the description text. Description text states to update to v1.1.0, but command show how to update to v1.0.2. --- .../en/operations/hosting/kubernetes/kubernetes-upgrade.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-upgrade.md b/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-upgrade.md index 2e44e4e55..93692faa7 100644 --- a/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-upgrade.md +++ b/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-upgrade.md @@ -19,7 +19,7 @@ There are two ways to upgrade the Dapr control plane on a Kubernetes cluster usi The example below shows how to upgrade to version 1.1.0: ```bash - dapr upgrade -k --runtime-version=1.0.1 + dapr upgrade -k --runtime-version=1.1.0 ``` You can provide all the available Helm chart configurations using the Dapr CLI. From 0710ba55fe973b0865e46ef4de9bdb875b07289b Mon Sep 17 00:00:00 2001 From: newbe36524 Date: Mon, 5 Apr 2021 15:00:02 +0800 Subject: [PATCH 55/82] Replace button by alert section since there is some issue about crowdin --- daprdocs/content/en/getting-started/_index.md | 5 +++-- daprdocs/content/en/getting-started/get-started-api.md | 4 +++- daprdocs/content/en/getting-started/get-started-component.md | 4 +++- daprdocs/content/en/getting-started/install-dapr-cli.md | 5 +++-- daprdocs/content/en/getting-started/install-dapr-selfhost.md | 5 +++-- 5 files changed, 15 insertions(+), 8 deletions(-) diff --git a/daprdocs/content/en/getting-started/_index.md b/daprdocs/content/en/getting-started/_index.md index bfcf1a98f..8330ffd79 100644 --- a/daprdocs/content/en/getting-started/_index.md +++ b/daprdocs/content/en/getting-started/_index.md @@ -22,5 +22,6 @@ The following steps in this guide are: 1. Configure a component 1. Explore Dapr quickstarts -First step: Install the Dapr CLI >> - +{{% alert color="primary" %}} +[First step: Install the Dapr CLI >>]({{< ref install-dapr-cli.md >}}) +{{% /alert %}} diff --git a/daprdocs/content/en/getting-started/get-started-api.md b/daprdocs/content/en/getting-started/get-started-api.md index b795de4f0..4683eb918 100644 --- a/daprdocs/content/en/getting-started/get-started-api.md +++ b/daprdocs/content/en/getting-started/get-started-api.md @@ -101,4 +101,6 @@ Exit the redis-cli with: exit ``` -Next step: Define a component >> +{{% alert color="primary" %}} +[Next step: Define a component >>]({{< ref get-started-component.md >}}) +{{% /alert %}} diff --git a/daprdocs/content/en/getting-started/get-started-component.md b/daprdocs/content/en/getting-started/get-started-component.md index 73c13bdfd..e64fa18bc 100644 --- a/daprdocs/content/en/getting-started/get-started-component.md +++ b/daprdocs/content/en/getting-started/get-started-component.md @@ -90,4 +90,6 @@ You should see output with the secret you stored in the JSON file. {"my-secret":"I'm Batman"} ``` -Next step: Explore Dapr quickstarts >> +{{% alert color="primary" %}} +[Next step: Explore Dapr quickstarts >>]({{< ref quickstarts.md >}}) +{{% /alert %}} \ No newline at end of file diff --git a/daprdocs/content/en/getting-started/install-dapr-cli.md b/daprdocs/content/en/getting-started/install-dapr-cli.md index f6ea8a6be..8da604d0a 100644 --- a/daprdocs/content/en/getting-started/install-dapr-cli.md +++ b/daprdocs/content/en/getting-started/install-dapr-cli.md @@ -110,5 +110,6 @@ Flags: Use "dapr [command] --help" for more information about a command. ``` -Next step: Initialize Dapr >> - +{{% alert color="primary" %}} +[Next step: Initialize Dapr >>]({{< ref install-dapr-selfhost.md >}}) +{{% /alert %}} \ No newline at end of file diff --git a/daprdocs/content/en/getting-started/install-dapr-selfhost.md b/daprdocs/content/en/getting-started/install-dapr-selfhost.md index c6ab64b43..218bd826b 100644 --- a/daprdocs/content/en/getting-started/install-dapr-selfhost.md +++ b/daprdocs/content/en/getting-started/install-dapr-selfhost.md @@ -109,5 +109,6 @@ You will see the Dapr config, Dapr binaries directory, and the default component {{< /tabs >}} -Next step: Use the Dapr API >> - +{{% alert color="primary" %}} +[Next step: Use the Dapr API >>]({{< ref get-started-api.md >}}) +{{% /alert %}} \ No newline at end of file From c0b301ca9e643f018bfae0fcc39f89088e9c0a71 Mon Sep 17 00:00:00 2001 From: Steven Jenkins De Haro <20492442+StevenJDH@users.noreply.github.com> Date: Mon, 5 Apr 2021 09:27:06 +0200 Subject: [PATCH 56/82] Fixed minor spelling issue in related links --- .../setup-pubsub/supported-pubsub/setup-aws-snssqs.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/daprdocs/content/en/operations/components/setup-pubsub/supported-pubsub/setup-aws-snssqs.md b/daprdocs/content/en/operations/components/setup-pubsub/supported-pubsub/setup-aws-snssqs.md index a50037643..3941e586c 100644 --- a/daprdocs/content/en/operations/components/setup-pubsub/supported-pubsub/setup-aws-snssqs.md +++ b/daprdocs/content/en/operations/components/setup-pubsub/supported-pubsub/setup-aws-snssqs.md @@ -142,6 +142,6 @@ Use the `AWS account ID` and `AWS account secret` and plug them into the `access - [Pub/Sub building block]({{< ref pubsub >}}) - Read [this guide]({{< ref "howto-publish-subscribe.md#step-2-publish-a-topic" >}}) for instructions on configuring pub/sub components - [AWS SQS as subscriber to SNS](https://docs.aws.amazon.com/sns/latest/dg/sns-sqs-as-subscriber.html) -- [AWS SNS API refernce](https://docs.aws.amazon.com/sns/latest/api/Welcome.html) -- [AWS SQS API refernce](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/Welcome.html) +- [AWS SNS API reference](https://docs.aws.amazon.com/sns/latest/api/Welcome.html) +- [AWS SQS API reference](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/Welcome.html) - [Authenticating to AWS]({{< ref authenticating-aws.md >}}) From 652e74c39d44de94db808a82c2ac9442ab779824 Mon Sep 17 00:00:00 2001 From: newbe36524 Date: Mon, 5 Apr 2021 15:58:13 +0800 Subject: [PATCH 57/82] update content to v1.1 --- translations/docs-zh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/translations/docs-zh b/translations/docs-zh index 036fc63bf..1ab6c6133 160000 --- a/translations/docs-zh +++ b/translations/docs-zh @@ -1 +1 @@ -Subproject commit 036fc63bf0a919843827e263ec287d55e3188b7b +Subproject commit 1ab6c613330f14da5af23f44053a7bba8da91052 From 804dcac1ef6177a3e79c94146f1ca8a2397faeaa Mon Sep 17 00:00:00 2001 From: Aaron Crawfis Date: Mon, 5 Apr 2021 12:53:15 -0700 Subject: [PATCH 58/82] Add token flag --- .github/workflows/azure-static-web-apps-proud-bay-0e9e0e81e.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/azure-static-web-apps-proud-bay-0e9e0e81e.yml b/.github/workflows/azure-static-web-apps-proud-bay-0e9e0e81e.yml index 0028230f8..3c14f7651 100644 --- a/.github/workflows/azure-static-web-apps-proud-bay-0e9e0e81e.yml +++ b/.github/workflows/azure-static-web-apps-proud-bay-0e9e0e81e.yml @@ -29,6 +29,7 @@ jobs: with: azure_static_web_apps_api_token: ${{ secrets.AZURE_STATIC_WEB_APPS_API_TOKEN_PROUD_BAY_0E9E0E81E }} repo_token: ${{ secrets.GITHUB_TOKEN }} # Used for Github integrations (i.e. PR comments) + skip_deploy_on_missing_secrets: true action: "upload" ###### Repository/Build Configurations - These values can be configured to match your app requirements. ###### # For more information regarding Static Web App workflow configurations, please visit: https://aka.ms/swaworkflowconfig @@ -48,4 +49,5 @@ jobs: uses: Azure/static-web-apps-deploy@v0.0.1-preview with: azure_static_web_apps_api_token: ${{ secrets.AZURE_STATIC_WEB_APPS_API_TOKEN_PROUD_BAY_0E9E0E81E }} + skip_deploy_on_missing_secrets: true action: "close" From eace5730f1199e61a009bec5fe8071d62aab7c0a Mon Sep 17 00:00:00 2001 From: Aaron Crawfis Date: Mon, 5 Apr 2021 13:28:22 -0700 Subject: [PATCH 59/82] Add button shortcode --- daprdocs/layouts/shortcodes/button.html | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 daprdocs/layouts/shortcodes/button.html diff --git a/daprdocs/layouts/shortcodes/button.html b/daprdocs/layouts/shortcodes/button.html new file mode 100644 index 000000000..54ca0c714 --- /dev/null +++ b/daprdocs/layouts/shortcodes/button.html @@ -0,0 +1,7 @@ +{{ $color := .Get "color" | default "primary" }} +{{ $page := .Get "page" }} +{{ $link := .Get "link" | default "#" }} + +{{- if $page -}}{{- $link = ref . $page -}}{{- end -}} + +{{ .Inner }} From 08b8bf0c150bc0005e6be22a4782bec08185a522 Mon Sep 17 00:00:00 2001 From: Aaron Crawfis Date: Mon, 5 Apr 2021 13:35:37 -0700 Subject: [PATCH 60/82] Add regex to button --- daprdocs/layouts/shortcodes/button.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/daprdocs/layouts/shortcodes/button.html b/daprdocs/layouts/shortcodes/button.html index 54ca0c714..d931eab64 100644 --- a/daprdocs/layouts/shortcodes/button.html +++ b/daprdocs/layouts/shortcodes/button.html @@ -4,4 +4,4 @@ {{- if $page -}}{{- $link = ref . $page -}}{{- end -}} -{{ .Inner }} +{{ .Inner | replaceRE "(.*)\n" "$1" }} From c58a9faa79196f6ccecec374c2e178f042e40ffe Mon Sep 17 00:00:00 2001 From: Aaron Crawfis Date: Mon, 5 Apr 2021 13:47:28 -0700 Subject: [PATCH 61/82] Update to parameter instead of inner --- daprdocs/layouts/shortcodes/button.html | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/daprdocs/layouts/shortcodes/button.html b/daprdocs/layouts/shortcodes/button.html index d931eab64..5ab0ddc9b 100644 --- a/daprdocs/layouts/shortcodes/button.html +++ b/daprdocs/layouts/shortcodes/button.html @@ -1,7 +1,8 @@ {{ $color := .Get "color" | default "primary" }} {{ $page := .Get "page" }} {{ $link := .Get "link" | default "#" }} +{{ $text := .Get "text" }} {{- if $page -}}{{- $link = ref . $page -}}{{- end -}} -{{ .Inner | replaceRE "(.*)\n" "$1" }} +{{ $text }} From 2fba3f8c052dd1ffed05a5e28f5e3f4777f92acf Mon Sep 17 00:00:00 2001 From: Aaron Crawfis Date: Mon, 5 Apr 2021 13:47:35 -0700 Subject: [PATCH 62/82] Add docs --- .../en/contributing/contributing-docs.md | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/daprdocs/content/en/contributing/contributing-docs.md b/daprdocs/content/en/contributing/contributing-docs.md index 3fa66cbe5..c782e6300 100644 --- a/daprdocs/content/en/contributing/contributing-docs.md +++ b/daprdocs/content/en/contributing/contributing-docs.md @@ -127,6 +127,10 @@ As an example, for this specific section the complete reference to the page and {{}} ``` +## Shortcodes + +The following are useful shortcodes for writing Dapr documentation + ### Images The markdown spec used by Docsy and Hugo does not give an option to resize images using markdown notation. Instead, raw HTML is used. @@ -230,6 +234,46 @@ The shortcode would be: {{}} ``` +### Buttons + +To create a button in a webpage, use the `button` shortcode. + +#### Link to an external page + +``` +{{}} +``` + +{{< button text="My Button" link="https://example.com" >}} + +#### Link to another docs page + +You can also reference pages in your button as well: +``` +{{}} +``` + +{{< button text="My Button" page="contributing" >}} + +#### Button colors + +You can customize the colors using the Bootstrap colors: +``` +{{}} +{{}} +{{}} +{{}} +{{}} +{{}} +``` + +{{< button text="My Button" link="https://example.com" color="primary" >}} +{{< button text="My Button" link="https://example.com" color="secondary" >}} +{{< button text="My Button" link="https://example.com" color="success" >}} +{{< button text="My Button" link="https://example.com" color="danger" >}} +{{< button text="My Button" link="https://example.com" color="warning" >}} +{{< button text="My Button" link="https://example.com" color="info" >}} + ### References - [Docsy authoring guide](https://www.docsy.dev/docs/adding-content/) From 8778e50f4c832399a9a274b82a3f0971940f231f Mon Sep 17 00:00:00 2001 From: newbe36524 Date: Tue, 6 Apr 2021 16:24:28 +0800 Subject: [PATCH 63/82] update to button tag --- daprdocs/content/en/getting-started/_index.md | 4 +--- daprdocs/content/en/getting-started/get-started-api.md | 4 +--- daprdocs/content/en/getting-started/get-started-component.md | 4 +--- daprdocs/content/en/getting-started/install-dapr-cli.md | 4 +--- daprdocs/content/en/getting-started/install-dapr-selfhost.md | 4 +--- 5 files changed, 5 insertions(+), 15 deletions(-) diff --git a/daprdocs/content/en/getting-started/_index.md b/daprdocs/content/en/getting-started/_index.md index 8330ffd79..f82e9faca 100644 --- a/daprdocs/content/en/getting-started/_index.md +++ b/daprdocs/content/en/getting-started/_index.md @@ -22,6 +22,4 @@ The following steps in this guide are: 1. Configure a component 1. Explore Dapr quickstarts -{{% alert color="primary" %}} -[First step: Install the Dapr CLI >>]({{< ref install-dapr-cli.md >}}) -{{% /alert %}} +{{< button text="First step: Install the Dapr CLI >>" page="install-dapr-cli" >}} diff --git a/daprdocs/content/en/getting-started/get-started-api.md b/daprdocs/content/en/getting-started/get-started-api.md index 4683eb918..1e684538d 100644 --- a/daprdocs/content/en/getting-started/get-started-api.md +++ b/daprdocs/content/en/getting-started/get-started-api.md @@ -101,6 +101,4 @@ Exit the redis-cli with: exit ``` -{{% alert color="primary" %}} -[Next step: Define a component >>]({{< ref get-started-component.md >}}) -{{% /alert %}} +{{< button text="Next step: Define a component >>" page="get-started-component" >}} diff --git a/daprdocs/content/en/getting-started/get-started-component.md b/daprdocs/content/en/getting-started/get-started-component.md index e64fa18bc..4c026f242 100644 --- a/daprdocs/content/en/getting-started/get-started-component.md +++ b/daprdocs/content/en/getting-started/get-started-component.md @@ -90,6 +90,4 @@ You should see output with the secret you stored in the JSON file. {"my-secret":"I'm Batman"} ``` -{{% alert color="primary" %}} -[Next step: Explore Dapr quickstarts >>]({{< ref quickstarts.md >}}) -{{% /alert %}} \ No newline at end of file +{{< button text="Next step: Explore Dapr quickstarts >>" page="quickstarts" >}} diff --git a/daprdocs/content/en/getting-started/install-dapr-cli.md b/daprdocs/content/en/getting-started/install-dapr-cli.md index 8da604d0a..30a7cc743 100644 --- a/daprdocs/content/en/getting-started/install-dapr-cli.md +++ b/daprdocs/content/en/getting-started/install-dapr-cli.md @@ -110,6 +110,4 @@ Flags: Use "dapr [command] --help" for more information about a command. ``` -{{% alert color="primary" %}} -[Next step: Initialize Dapr >>]({{< ref install-dapr-selfhost.md >}}) -{{% /alert %}} \ No newline at end of file +{{< button text="Next step: Initialize Dapr >>" page="install-dapr-selfhost" >}} diff --git a/daprdocs/content/en/getting-started/install-dapr-selfhost.md b/daprdocs/content/en/getting-started/install-dapr-selfhost.md index 218bd826b..8afb8235a 100644 --- a/daprdocs/content/en/getting-started/install-dapr-selfhost.md +++ b/daprdocs/content/en/getting-started/install-dapr-selfhost.md @@ -109,6 +109,4 @@ You will see the Dapr config, Dapr binaries directory, and the default component {{< /tabs >}} -{{% alert color="primary" %}} -[Next step: Use the Dapr API >>]({{< ref get-started-api.md >}}) -{{% /alert %}} \ No newline at end of file +{{< button text="Next step: Use the Dapr API >>" page="get-started-api" >}} From de24b00ad9ceb91bdacdc76bf94f451e1deb937e Mon Sep 17 00:00:00 2001 From: Harry Kimpel Date: Tue, 6 Apr 2021 18:30:15 +0200 Subject: [PATCH 64/82] Fixed broken links in tracing section --- daprdocs/.gitignore | 1 + .../monitoring/tracing/supported-tracing-backends/newrelic.md | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) create mode 100644 daprdocs/.gitignore diff --git a/daprdocs/.gitignore b/daprdocs/.gitignore new file mode 100644 index 000000000..c2658d7d1 --- /dev/null +++ b/daprdocs/.gitignore @@ -0,0 +1 @@ +node_modules/ diff --git a/daprdocs/content/en/operations/monitoring/tracing/supported-tracing-backends/newrelic.md b/daprdocs/content/en/operations/monitoring/tracing/supported-tracing-backends/newrelic.md index d2cb50fb3..a78b2e1dc 100644 --- a/daprdocs/content/en/operations/monitoring/tracing/supported-tracing-backends/newrelic.md +++ b/daprdocs/content/en/operations/monitoring/tracing/supported-tracing-backends/newrelic.md @@ -12,7 +12,7 @@ description: "Set-up New Relic for distributed tracing" ## Configure Dapr tracing -Dapr natively captures metrics and traces that can be send directly to New Relic. The easiest way to export these is by configuring Dapr to send the traces to [New Relic's Trace API](https://docs.newrelic.com/docs/understand-dependencies/distributed-tracing/trace-api/report-zipkin-format-traces-trace-api#existing-zipkin) using the Zipkin trace format. +Dapr natively captures metrics and traces that can be send directly to New Relic. The easiest way to export these is by configuring Dapr to send the traces to [New Relic's Trace API](https://docs.newrelic.com/docs/distributed-tracing/trace-api/report-zipkin-format-traces-trace-api/) using the Zipkin trace format. In order for the integration to send data to New Relic [Telemetry Data Platform](https://newrelic.com/platform/telemetry-data-platform), you need a [New Relic Insights Insert API key](https://docs.newrelic.com/docs/apis/get-started/intro-apis/types-new-relic-api-keys#insights-insert-key). @@ -108,7 +108,7 @@ All the data that is collected from Dapr, Kubernetes or any services that run on * [New Relic Account Signup](https://newrelic.com/signup) * [Telemetry Data Platform](https://newrelic.com/platform/telemetry-data-platform) * [Distributed Tracing](https://docs.newrelic.com/docs/understand-dependencies/distributed-tracing/get-started/introduction-distributed-tracing) -* [New Relic Trace API](https://docs.newrelic.com/docs/understand-dependencies/distributed-tracing/trace-api) +* [New Relic Trace API](https://docs.newrelic.com/docs/distributed-tracing/trace-api/introduction-trace-api/) * [New Relic Metric API](https://docs.newrelic.com/docs/telemetry-data-platform/get-data/apis/introduction-metric-api) * [Types of New Relic API keys](https://docs.newrelic.com/docs/apis/get-started/intro-apis/types-new-relic-api-keys) * [New Relic OpenTelemetry User Experience](https://blog.newrelic.com/product-news/opentelemetry-user-experience/) From 654a3fe97105bcc052544b618f14db8be415dbeb Mon Sep 17 00:00:00 2001 From: Harry Kimpel Date: Tue, 6 Apr 2021 18:34:46 +0200 Subject: [PATCH 65/82] Fixed broken links in tracing section --- .../monitoring/tracing/supported-tracing-backends/newrelic.md | 1 - 1 file changed, 1 deletion(-) diff --git a/daprdocs/content/en/operations/monitoring/tracing/supported-tracing-backends/newrelic.md b/daprdocs/content/en/operations/monitoring/tracing/supported-tracing-backends/newrelic.md index a78b2e1dc..11d382240 100644 --- a/daprdocs/content/en/operations/monitoring/tracing/supported-tracing-backends/newrelic.md +++ b/daprdocs/content/en/operations/monitoring/tracing/supported-tracing-backends/newrelic.md @@ -109,7 +109,6 @@ All the data that is collected from Dapr, Kubernetes or any services that run on * [Telemetry Data Platform](https://newrelic.com/platform/telemetry-data-platform) * [Distributed Tracing](https://docs.newrelic.com/docs/understand-dependencies/distributed-tracing/get-started/introduction-distributed-tracing) * [New Relic Trace API](https://docs.newrelic.com/docs/distributed-tracing/trace-api/introduction-trace-api/) -* [New Relic Metric API](https://docs.newrelic.com/docs/telemetry-data-platform/get-data/apis/introduction-metric-api) * [Types of New Relic API keys](https://docs.newrelic.com/docs/apis/get-started/intro-apis/types-new-relic-api-keys) * [New Relic OpenTelemetry User Experience](https://blog.newrelic.com/product-news/opentelemetry-user-experience/) * [Alerts and Applied Intelligence](https://docs.newrelic.com/docs/alerts-applied-intelligence) From a579780e0f298a58be7b399603eccd6dbda20c99 Mon Sep 17 00:00:00 2001 From: Charlie Stanley Date: Tue, 6 Apr 2021 18:07:28 -0700 Subject: [PATCH 66/82] Use POST verb for shutdown example (#1366) * Use POST verb for shutdown example * Update documentation to reflect v1.1.1 --- .../content/en/getting-started/install-dapr-selfhost.md | 2 +- .../en/operations/hosting/kubernetes/kubernetes-deploy.md | 4 ++-- .../en/operations/hosting/kubernetes/kubernetes-job.md | 8 +++++--- .../operations/hosting/kubernetes/kubernetes-upgrade.md | 8 ++++---- .../operations/hosting/self-hosted/self-hosted-upgrade.md | 4 ++-- .../en/operations/support/support-release-policy.md | 4 ++-- daprdocs/content/en/reference/cli/dapr-upgrade.md | 4 ++-- 7 files changed, 18 insertions(+), 16 deletions(-) diff --git a/daprdocs/content/en/getting-started/install-dapr-selfhost.md b/daprdocs/content/en/getting-started/install-dapr-selfhost.md index 8afb8235a..deafe843c 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.0 +Runtime version: 1.1.1 ``` ### Step 4: Verify containers are running diff --git a/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-deploy.md b/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-deploy.md index 762fdefd9..c9ab45a4d 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.0 \ + --version=1.1.1 \ --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.0 \ + --version=1.1.1 \ --namespace dapr-system \ --create-namespace \ --set global.ha.enabled=true \ diff --git a/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-job.md b/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-job.md index bbbf1f483..6691c742c 100644 --- a/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-job.md +++ b/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-job.md @@ -16,6 +16,8 @@ When running a basic [Kubernetes Job](https://kubernetes.io/docs/concepts/worklo When a job is finish without calling `Shutdown` your job will be in a `NotReady` state with only the `daprd` container running endlessly. +Be sure and use the *POST* HTTP verb when calling the shutdown API. + ```yaml apiVersion: batch/v1 kind: Job @@ -30,8 +32,8 @@ spec: spec: containers: - name: job - image: busybox - command: ["/bin/sh", "-c", "sleep 20 && wget localhost:3500/v1.0/shutdown"] + image: alpine + command: ["/bin/sh", "-c", "apk --no-cache add curl && sleep 20 && curl -X POST localhost:3500/v1.0/shutdown"] restartPolicy: Never ``` @@ -57,4 +59,4 @@ func main() { defer client.Shutdown() // Job } -``` \ No newline at end of file +``` diff --git a/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-upgrade.md b/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-upgrade.md index 93692faa7..af60f9bdc 100644 --- a/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-upgrade.md +++ b/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-upgrade.md @@ -11,15 +11,15 @@ 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.0 +## Upgrade existing cluster to 1.1.1 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.0: +The example below shows how to upgrade to version 1.1.1: ```bash - dapr upgrade -k --runtime-version=1.1.0 + dapr upgrade -k --runtime-version=1.1.1 ``` You can provide all the available Helm chart configurations using the Dapr CLI. @@ -43,7 +43,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.0 -k` command as above. +Then proceed with the `dapr upgrade --runtime-version 1.1.1 -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 620ba0637..f7fd22ffc 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.0) with: +1. Ensure you are using the latest version of Dapr (v1.1.1) with: ```bash $ dapr --version CLI version: 1.1.0 - Runtime version: 1.1.0 + Runtime version: 1.1.1 ``` diff --git a/daprdocs/content/en/operations/support/support-release-policy.md b/daprdocs/content/en/operations/support/support-release-policy.md index 8766f4db0..1e80b774b 100644 --- a/daprdocs/content/en/operations/support/support-release-policy.md +++ b/daprdocs/content/en/operations/support/support-release-policy.md @@ -33,7 +33,7 @@ The table below shows the versions of Dapr releases that have been tested togeth |--------------------|:--------:|:--------|---------|---------|---------| | Feb 17th 2021 | 1.0.0
| 1.0.0 | Java 1.0.0
Go 1.0.0
PHP 1.0.0
Python 1.0.0
.NET 1.0.0 | 0.6.0 | Supported | | 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 (current) | +| Apr 1st 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) | ## 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 @@ -45,7 +45,7 @@ The table below shows the tested upgrade paths for the Dapr runtime. For example | 0.11 | N/A | 1.0.1 | Use Dapr CLI to upgrade for both self hosted and Kubernetes | | 1.0.1| 1.1.0 | | 1.0-rc1 to 1.0-rc4 | N/A | 1.0.1 | See Dapr 1.0 release notes -| 1.0.0 or 1.0.1 | N/A | 1.1.0 | See Dapr 1.1 release notes +| 1.0.0 or 1.0.1 | N/A | 1.1.1 | See Dapr 1.1 release notes ## Feature and deprecations There is a process for announcing feature deprecations. Deprecations are applied two (2) releases after the release in which they were announced. For example Feature X is announced to be deprecated in the 1.0.0 release notes and will then be removed in 1.2.0. diff --git a/daprdocs/content/en/reference/cli/dapr-upgrade.md b/daprdocs/content/en/reference/cli/dapr-upgrade.md index b2e019762..9ce2ace14 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.0 +dapr upgrade -k --runtime-version 1.1.1 ``` ### Upgrade specified version of Dapr runtime in Kubernetes with value set ```bash -dapr upgrade -k --runtime-version 1.1.0 --set global.logAsJson=true +dapr upgrade -k --runtime-version 1.1.1 --set global.logAsJson=true ``` # Related links From c9f8c8c0bf0a9eca2e9d405b7c7e0458ac82a270 Mon Sep 17 00:00:00 2001 From: Donovan Brown Date: Thu, 8 Apr 2021 10:24:20 -0500 Subject: [PATCH 67/82] Fixed typo Just fixed a simply typo in the docs. --- .../supported-secret-stores/azure-keyvault.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/daprdocs/content/en/operations/components/setup-secret-store/supported-secret-stores/azure-keyvault.md b/daprdocs/content/en/operations/components/setup-secret-store/supported-secret-stores/azure-keyvault.md index db83a3a7d..555df3ea0 100644 --- a/daprdocs/content/en/operations/components/setup-secret-store/supported-secret-stores/azure-keyvault.md +++ b/daprdocs/content/en/operations/components/setup-secret-store/supported-secret-stores/azure-keyvault.md @@ -88,7 +88,7 @@ The above example uses secrets as plain strings. It is recommended to use a loca } ``` - **Save the both the appId and tenant from the output which will be used in the next step** + **Save both the appId and tenant from the output which will be used in the next step** 4. Get the Object Id for [your_service_principal_name] From e45e42ba2aab5d202288f89a372282b522f7848b Mon Sep 17 00:00:00 2001 From: Donovan Brown Date: Thu, 8 Apr 2021 10:30:37 -0500 Subject: [PATCH 68/82] Changing you to your in multiple places In many places 'you' should be 'your'. --- .../azure-keyvault-managed-identity.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/daprdocs/content/en/operations/components/setup-secret-store/supported-secret-stores/azure-keyvault-managed-identity.md b/daprdocs/content/en/operations/components/setup-secret-store/supported-secret-stores/azure-keyvault-managed-identity.md index fa1e015fe..bc792e139 100644 --- a/daprdocs/content/en/operations/components/setup-secret-store/supported-secret-stores/azure-keyvault-managed-identity.md +++ b/daprdocs/content/en/operations/components/setup-secret-store/supported-secret-stores/azure-keyvault-managed-identity.md @@ -70,7 +70,7 @@ The above example uses secrets as plain strings. It is recommended to use a loca This step is required only if the AKS Cluster is provisoned without the flag "--enable-managed-identity". If the cluster is provisioned with manahed identity, than is suggested to use the autogenerated managed identity that is associated to the Resource Group MC_*. ```bash - $identity = az identity create -g [your resource group] -n [you managed identity name] -o json | ConvertFrom-Json + $identity = az identity create -g [your resource group] -n [your managed identity name] -o json | ConvertFrom-Json ``` Below the command to retrieve the managed identity in the autogenerated scenario: @@ -134,19 +134,19 @@ The above example uses secrets as plain strings. It is recommended to use a loca apiVersion: "aadpodidentity.k8s.io/v1" kind: AzureIdentity metadata: - name: [you managed identity name] + name: [your managed identity name] spec: type: 0 - resourceID: [you managed identity id] - clientID: [you managed identity Client ID] + resourceID: [your managed identity id] + clientID: [your managed identity Client ID] --- apiVersion: "aadpodidentity.k8s.io/v1" kind: AzureIdentityBinding metadata: - name: [you managed identity name]-identity-binding + name: [your managed identity name]-identity-binding spec: - azureIdentity: [you managed identity name] - selector: [you managed identity selector] + azureIdentity: [your managed identity name] + selector: [your managed identity selector] ``` 10. Deploy the azure-identity-config.yaml: From d38ea8c5ef4ccfc4183d12a9cf9ed2db3bfc3cde Mon Sep 17 00:00:00 2001 From: Donovan Brown Date: Thu, 8 Apr 2021 10:35:53 -0500 Subject: [PATCH 69/82] Found another typo manahed should be managed --- .../supported-secret-stores/azure-keyvault-managed-identity.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/daprdocs/content/en/operations/components/setup-secret-store/supported-secret-stores/azure-keyvault-managed-identity.md b/daprdocs/content/en/operations/components/setup-secret-store/supported-secret-stores/azure-keyvault-managed-identity.md index bc792e139..21c561f67 100644 --- a/daprdocs/content/en/operations/components/setup-secret-store/supported-secret-stores/azure-keyvault-managed-identity.md +++ b/daprdocs/content/en/operations/components/setup-secret-store/supported-secret-stores/azure-keyvault-managed-identity.md @@ -67,7 +67,7 @@ The above example uses secrets as plain strings. It is recommended to use a loca 3. Create the managed identity(Optional) - This step is required only if the AKS Cluster is provisoned without the flag "--enable-managed-identity". If the cluster is provisioned with manahed identity, than is suggested to use the autogenerated managed identity that is associated to the Resource Group MC_*. + This step is required only if the AKS Cluster is provisoned without the flag "--enable-managed-identity". If the cluster is provisioned with managed identity, than is suggested to use the autogenerated managed identity that is associated to the Resource Group MC_*. ```bash $identity = az identity create -g [your resource group] -n [your managed identity name] -o json | ConvertFrom-Json From 3d5ac4bbb1cc5eaaeec73e79ad0b6b68d9116717 Mon Sep 17 00:00:00 2001 From: Donovan Brown Date: Thu, 8 Apr 2021 10:40:07 -0500 Subject: [PATCH 70/82] Found another error Cleaned up a sentence. --- .../azure-keyvault-managed-identity.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/daprdocs/content/en/operations/components/setup-secret-store/supported-secret-stores/azure-keyvault-managed-identity.md b/daprdocs/content/en/operations/components/setup-secret-store/supported-secret-stores/azure-keyvault-managed-identity.md index 21c561f67..125277aa1 100644 --- a/daprdocs/content/en/operations/components/setup-secret-store/supported-secret-stores/azure-keyvault-managed-identity.md +++ b/daprdocs/content/en/operations/components/setup-secret-store/supported-secret-stores/azure-keyvault-managed-identity.md @@ -67,13 +67,13 @@ The above example uses secrets as plain strings. It is recommended to use a loca 3. Create the managed identity(Optional) - This step is required only if the AKS Cluster is provisoned without the flag "--enable-managed-identity". If the cluster is provisioned with managed identity, than is suggested to use the autogenerated managed identity that is associated to the Resource Group MC_*. + This step is required only if the AKS Cluster is provisoned without the flag "--enable-managed-identity". If the cluster is provisioned with managed identity, than it is suggested to use the autogenerated managed identity that is associated to the Resource Group MC_*. ```bash $identity = az identity create -g [your resource group] -n [your managed identity name] -o json | ConvertFrom-Json ``` - Below the command to retrieve the managed identity in the autogenerated scenario: + Below is the command to retrieve the managed identity in the autogenerated scenario: ```bash az aks show -g -n From 92de55865105819020dd130edb30d8fef6a80262 Mon Sep 17 00:00:00 2001 From: Rodrigo Ipince Date: Thu, 8 Apr 2021 15:34:00 -0700 Subject: [PATCH 71/82] Fix typo in docs --- .../en/operations/hosting/kubernetes/kubernetes-production.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-production.md b/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-production.md index bea7913b2..4d3f1643f 100644 --- a/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-production.md +++ b/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-production.md @@ -55,7 +55,7 @@ Example settings for the dapr sidecar in a production-ready setup: *Note: Since Dapr is intended to do much of the I/O heavy lifting for your app, it's expected that the resources given to Dapr enable you to drastically reduce the resource allocations for the application* -The CPU and memory limits above account for the fact that Dapr is intended to a high number of I/O bound operations. It is strongly recommended that you use a tool monitoring tool to baseline the sidecar (and app) containers and tune these settings based on those baselines. +The CPU and memory limits above account for the fact that Dapr is intended to a high number of I/O bound operations. It is strongly recommended that you use a monitoring tool to baseline the sidecar (and app) containers and tune these settings based on those baselines. ## Highly-available mode From 99bfa2d4dbf556c029f7ce50bbee075b16cefede Mon Sep 17 00:00:00 2001 From: Ori Zohar Date: Fri, 9 Apr 2021 12:06:09 -0700 Subject: [PATCH 72/82] Fixing v1.1.1 refernces in support table --- .../support/support-release-policy.md | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/daprdocs/content/en/operations/support/support-release-policy.md b/daprdocs/content/en/operations/support/support-release-policy.md index 1e80b774b..30c76d10e 100644 --- a/daprdocs/content/en/operations/support/support-release-policy.md +++ b/daprdocs/content/en/operations/support/support-release-policy.md @@ -33,19 +33,23 @@ The table below shows the versions of Dapr releases that have been tested togeth |--------------------|:--------:|:--------|---------|---------|---------| | Feb 17th 2021 | 1.0.0
| 1.0.0 | Java 1.0.0
Go 1.0.0
PHP 1.0.0
Python 1.0.0
.NET 1.0.0 | 0.6.0 | Supported | | 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.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 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) | ## 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 The table below shows the tested upgrade paths for the Dapr runtime. For example you are able to upgrade from 1.0-rc4 to the 1.0 release. Any other combinations of upgrades have not been tested. -| Current Runtime version | Must upgrade through | Target Runtime version | Notes -|--------------------------|-----------------------|------------------------- |------------------------- | -| 0.11 | N/A | 1.0.1 | Use Dapr CLI to upgrade for both self hosted and Kubernetes -| | 1.0.1| 1.1.0 | -| 1.0-rc1 to 1.0-rc4 | N/A | 1.0.1 | See Dapr 1.0 release notes -| 1.0.0 or 1.0.1 | N/A | 1.1.1 | See Dapr 1.1 release notes +General guidance on upgrading can be found for [self hosted mode]({{}}) and [Kubernetes]({{}}) deployments. It is best to review the target version release notes for specific guidance. + +| Current Runtime version | Must upgrade through | Target Runtime version | +|--------------------------|-----------------------|------------------------- | +| 0.11 | N/A | 1.0.1 | +| | 1.0.1 | 1.1.1 | +| 1.0-rc1 to 1.0-rc4 | N/A | 1.0.1 | +| 1.0.0 or 1.0.1 | N/A | 1.1.1 | +| 1.1.0 | N/A | 1.1.1 | ## Feature and deprecations There is a process for announcing feature deprecations. Deprecations are applied two (2) releases after the release in which they were announced. For example Feature X is announced to be deprecated in the 1.0.0 release notes and will then be removed in 1.2.0. From bbd2d18b3af803f036b758e8fa388f24e36f346b Mon Sep 17 00:00:00 2001 From: Aaron Crawfis Date: Fri, 9 Apr 2021 12:56:14 -0700 Subject: [PATCH 73/82] Move component specs into reference section --- .../building-blocks/secrets/howto-secrets.md | 6 +- .../building-blocks/secrets/secrets-scopes.md | 4 +- .../howto-stateful-service.md | 2 +- .../query-state-store/_index.md | 2 +- .../operations/components/component-scopes.md | 2 +- .../components/component-secrets.md | 2 +- .../operations/components/setup-bindings.md | 85 +++++++++++++++++++ .../components/setup-bindings/_index.md | 7 -- .../components/setup-pubsub/_index.md | 49 +++++++++++ .../setup-pubsub/setup-pubsub-overview.md | 55 ------------ ...ores-overview.md => setup-secret-store.md} | 15 ++-- .../components/setup-secret-store/_index.md | 8 -- ...store-overview.md => setup-state-store.md} | 15 +++- .../components/setup-state-store/_index.md | 7 -- .../reference/components-reference/_index.md | 7 ++ .../supported-bindings/_index.md | 6 +- .../supported-bindings/alicloudoss.md | 2 + .../supported-bindings/apns.md | 2 + .../supported-bindings/blobstorage.md | 2 + .../supported-bindings/cosmosdb.md | 2 + .../supported-bindings/cron.md | 2 + .../supported-bindings/dynamodb.md | 2 + .../supported-bindings/eventgrid.md | 2 + .../supported-bindings/eventhubs.md | 2 + .../supported-bindings/gcpbucket.md | 2 + .../supported-bindings/gcppubsub.md | 2 + .../supported-bindings/http.md | 2 + .../supported-bindings/influxdb.md | 2 + .../supported-bindings/kafka.md | 2 + .../supported-bindings/kinesis.md | 2 + .../supported-bindings/kubernetes-binding.md | 2 + .../supported-bindings/localstorage.md | 2 + .../supported-bindings/mqtt.md | 2 + .../supported-bindings/mysql.md | 2 + .../supported-bindings/postgres.md | 2 + .../supported-bindings/postmark.md | 2 + .../supported-bindings/rabbitmq.md | 2 + .../supported-bindings/redis.md | 2 + .../supported-bindings/rethinkdb.md | 2 + .../supported-bindings/s3.md | 2 + .../supported-bindings/sendgrid.md | 2 + .../supported-bindings/servicebusqueues.md | 2 + .../supported-bindings/signalr.md | 2 + .../supported-bindings/smtp.md | 2 + .../supported-bindings/sns.md | 2 + .../supported-bindings/sqs.md | 2 + .../supported-bindings/storagequeues.md | 2 + .../supported-bindings/twilio.md | 2 + .../supported-bindings/twitter.md | 2 + .../supported-pubsub/_index.md | 6 +- .../supported-pubsub/setup-apache-kafka.md | 2 + .../supported-pubsub/setup-aws-snssqs.md | 2 + .../supported-pubsub/setup-azure-eventhubs.md | 2 + .../setup-azure-servicebus.md | 2 + .../supported-pubsub/setup-gcp-pubsub.md | 1 + .../supported-pubsub/setup-hazelcast.md | 2 + .../supported-pubsub/setup-mqtt.md | 2 + .../supported-pubsub/setup-nats-streaming.md | 2 + .../supported-pubsub/setup-pulsar.md | 2 + .../supported-pubsub/setup-rabbitmq.md | 2 + .../supported-pubsub/setup-redis-pubsub.md | 2 + .../supported-secret-stores/_index.md | 6 +- .../aws-parameter-store.md | 4 +- .../aws-secret-manager.md | 4 +- .../azure-keyvault-managed-identity.md | 4 +- .../supported-secret-stores/azure-keyvault.md | 4 +- .../envvar-secret-store.md | 2 + .../file-secret-store.md | 2 + .../gcp-secret-manager.md | 4 +- .../hashicorp-vault.md | 4 +- .../kubernetes-secret-store.md | 2 + .../supported-state-stores/_index.md | 6 +- .../supported-state-stores/setup-aerospike.md | 2 + .../setup-azure-blobstorage.md | 2 + .../setup-azure-cosmosdb.md | 2 + .../setup-azure-tablestorage.md | 2 + .../supported-state-stores/setup-cassandra.md | 2 + .../setup-cloudstate.md | 2 + .../supported-state-stores/setup-consul.md | 2 + .../supported-state-stores/setup-couchbase.md | 2 + .../supported-state-stores/setup-dynamodb.md | 2 + .../supported-state-stores/setup-firestore.md | 2 + .../supported-state-stores/setup-hazelcast.md | 2 + .../supported-state-stores/setup-memcached.md | 2 + .../supported-state-stores/setup-mongodb.md | 2 + .../supported-state-stores/setup-mysql.md | 2 + .../setup-postgresql.md | 2 + .../supported-state-stores/setup-redis.md | 2 + .../supported-state-stores/setup-rethinkdb.md | 2 + .../supported-state-stores/setup-sqlserver.md | 2 + .../supported-state-stores/setup-zookeeper.md | 2 + 91 files changed, 336 insertions(+), 109 deletions(-) create mode 100644 daprdocs/content/en/operations/components/setup-bindings.md delete mode 100644 daprdocs/content/en/operations/components/setup-bindings/_index.md delete mode 100644 daprdocs/content/en/operations/components/setup-pubsub/setup-pubsub-overview.md rename daprdocs/content/en/operations/components/{setup-secret-store/secret-stores-overview.md => setup-secret-store.md} (85%) delete mode 100644 daprdocs/content/en/operations/components/setup-secret-store/_index.md rename daprdocs/content/en/operations/components/{setup-state-store/setup-state-store-overview.md => setup-state-store.md} (74%) delete mode 100644 daprdocs/content/en/operations/components/setup-state-store/_index.md create mode 100644 daprdocs/content/en/reference/components-reference/_index.md rename daprdocs/content/en/{operations/components/setup-bindings => reference/components-reference}/supported-bindings/_index.md (97%) rename daprdocs/content/en/{operations/components/setup-bindings => reference/components-reference}/supported-bindings/alicloudoss.md (97%) rename daprdocs/content/en/{operations/components/setup-bindings => reference/components-reference}/supported-bindings/apns.md (98%) rename daprdocs/content/en/{operations/components/setup-bindings => reference/components-reference}/supported-bindings/blobstorage.md (98%) rename daprdocs/content/en/{operations/components/setup-bindings => reference/components-reference}/supported-bindings/cosmosdb.md (96%) rename daprdocs/content/en/{operations/components/setup-bindings => reference/components-reference}/supported-bindings/cron.md (97%) rename daprdocs/content/en/{operations/components/setup-bindings => reference/components-reference}/supported-bindings/dynamodb.md (96%) rename daprdocs/content/en/{operations/components/setup-bindings => reference/components-reference}/supported-bindings/eventgrid.md (99%) rename daprdocs/content/en/{operations/components/setup-bindings => reference/components-reference}/supported-bindings/eventhubs.md (97%) rename daprdocs/content/en/{operations/components/setup-bindings => reference/components-reference}/supported-bindings/gcpbucket.md (98%) rename daprdocs/content/en/{operations/components/setup-bindings => reference/components-reference}/supported-bindings/gcppubsub.md (97%) rename daprdocs/content/en/{operations/components/setup-bindings => reference/components-reference}/supported-bindings/http.md (98%) rename daprdocs/content/en/{operations/components/setup-bindings => reference/components-reference}/supported-bindings/influxdb.md (95%) rename daprdocs/content/en/{operations/components/setup-bindings => reference/components-reference}/supported-bindings/kafka.md (97%) rename daprdocs/content/en/{operations/components/setup-bindings => reference/components-reference}/supported-bindings/kinesis.md (97%) rename daprdocs/content/en/{operations/components/setup-bindings => reference/components-reference}/supported-bindings/kubernetes-binding.md (97%) rename daprdocs/content/en/{operations/components/setup-bindings => reference/components-reference}/supported-bindings/localstorage.md (98%) rename daprdocs/content/en/{operations/components/setup-bindings => reference/components-reference}/supported-bindings/mqtt.md (95%) rename daprdocs/content/en/{operations/components/setup-bindings => reference/components-reference}/supported-bindings/mysql.md (98%) rename daprdocs/content/en/{operations/components/setup-bindings => reference/components-reference}/supported-bindings/postgres.md (97%) rename daprdocs/content/en/{operations/components/setup-bindings => reference/components-reference}/supported-bindings/postmark.md (97%) rename daprdocs/content/en/{operations/components/setup-bindings => reference/components-reference}/supported-bindings/rabbitmq.md (98%) rename daprdocs/content/en/{operations/components/setup-bindings => reference/components-reference}/supported-bindings/redis.md (98%) rename daprdocs/content/en/{operations/components/setup-bindings => reference/components-reference}/supported-bindings/rethinkdb.md (96%) rename daprdocs/content/en/{operations/components/setup-bindings => reference/components-reference}/supported-bindings/s3.md (98%) rename daprdocs/content/en/{operations/components/setup-bindings => reference/components-reference}/supported-bindings/sendgrid.md (97%) rename daprdocs/content/en/{operations/components/setup-bindings => reference/components-reference}/supported-bindings/servicebusqueues.md (96%) rename daprdocs/content/en/{operations/components/setup-bindings => reference/components-reference}/supported-bindings/signalr.md (97%) rename daprdocs/content/en/{operations/components/setup-bindings => reference/components-reference}/supported-bindings/smtp.md (97%) rename daprdocs/content/en/{operations/components/setup-bindings => reference/components-reference}/supported-bindings/sns.md (96%) rename daprdocs/content/en/{operations/components/setup-bindings => reference/components-reference}/supported-bindings/sqs.md (96%) rename daprdocs/content/en/{operations/components/setup-bindings => reference/components-reference}/supported-bindings/storagequeues.md (96%) rename daprdocs/content/en/{operations/components/setup-bindings => reference/components-reference}/supported-bindings/twilio.md (95%) rename daprdocs/content/en/{operations/components/setup-bindings => reference/components-reference}/supported-bindings/twitter.md (97%) rename daprdocs/content/en/{operations/components/setup-pubsub => reference/components-reference}/supported-pubsub/_index.md (95%) rename daprdocs/content/en/{operations/components/setup-pubsub => reference/components-reference}/supported-pubsub/setup-apache-kafka.md (95%) rename daprdocs/content/en/{operations/components/setup-pubsub => reference/components-reference}/supported-pubsub/setup-aws-snssqs.md (98%) rename daprdocs/content/en/{operations/components/setup-pubsub => reference/components-reference}/supported-pubsub/setup-azure-eventhubs.md (97%) rename daprdocs/content/en/{operations/components/setup-pubsub => reference/components-reference}/supported-pubsub/setup-azure-servicebus.md (97%) rename daprdocs/content/en/{operations/components/setup-pubsub => reference/components-reference}/supported-pubsub/setup-gcp-pubsub.md (96%) rename daprdocs/content/en/{operations/components/setup-pubsub => reference/components-reference}/supported-pubsub/setup-hazelcast.md (94%) rename daprdocs/content/en/{operations/components/setup-pubsub => reference/components-reference}/supported-pubsub/setup-mqtt.md (98%) rename daprdocs/content/en/{operations/components/setup-pubsub => reference/components-reference}/supported-pubsub/setup-nats-streaming.md (98%) rename daprdocs/content/en/{operations/components/setup-pubsub => reference/components-reference}/supported-pubsub/setup-pulsar.md (92%) rename daprdocs/content/en/{operations/components/setup-pubsub => reference/components-reference}/supported-pubsub/setup-rabbitmq.md (97%) rename daprdocs/content/en/{operations/components/setup-pubsub => reference/components-reference}/supported-pubsub/setup-redis-pubsub.md (97%) rename daprdocs/content/en/{operations/components/setup-secret-store => reference/components-reference}/supported-secret-stores/_index.md (95%) rename daprdocs/content/en/{operations/components/setup-secret-store => reference/components-reference}/supported-secret-stores/aws-parameter-store.md (87%) rename daprdocs/content/en/{operations/components/setup-secret-store => reference/components-reference}/supported-secret-stores/aws-secret-manager.md (87%) rename daprdocs/content/en/{operations/components/setup-secret-store => reference/components-reference}/supported-secret-stores/azure-keyvault-managed-identity.md (94%) rename daprdocs/content/en/{operations/components/setup-secret-store => reference/components-reference}/supported-secret-stores/azure-keyvault.md (95%) rename daprdocs/content/en/{operations/components/setup-secret-store => reference/components-reference}/supported-secret-stores/envvar-secret-store.md (86%) rename daprdocs/content/en/{operations/components/setup-secret-store => reference/components-reference}/supported-secret-stores/file-secret-store.md (95%) rename daprdocs/content/en/{operations/components/setup-secret-store => reference/components-reference}/supported-secret-stores/gcp-secret-manager.md (90%) rename daprdocs/content/en/{operations/components/setup-secret-store => reference/components-reference}/supported-secret-stores/hashicorp-vault.md (88%) rename daprdocs/content/en/{operations/components/setup-secret-store => reference/components-reference}/supported-secret-stores/kubernetes-secret-store.md (88%) rename daprdocs/content/en/{operations/components/setup-state-store => reference/components-reference}/supported-state-stores/_index.md (97%) rename daprdocs/content/en/{operations/components/setup-state-store => reference/components-reference}/supported-state-stores/setup-aerospike.md (96%) rename daprdocs/content/en/{operations/components/setup-state-store => reference/components-reference}/supported-state-stores/setup-azure-blobstorage.md (97%) rename daprdocs/content/en/{operations/components/setup-state-store => reference/components-reference}/supported-state-stores/setup-azure-cosmosdb.md (97%) rename daprdocs/content/en/{operations/components/setup-state-store => reference/components-reference}/supported-state-stores/setup-azure-tablestorage.md (97%) rename daprdocs/content/en/{operations/components/setup-state-store => reference/components-reference}/supported-state-stores/setup-cassandra.md (97%) rename daprdocs/content/en/{operations/components/setup-state-store => reference/components-reference}/supported-state-stores/setup-cloudstate.md (98%) rename daprdocs/content/en/{operations/components/setup-state-store => reference/components-reference}/supported-state-stores/setup-consul.md (96%) rename daprdocs/content/en/{operations/components/setup-state-store => reference/components-reference}/supported-state-stores/setup-couchbase.md (96%) rename daprdocs/content/en/{operations/components/setup-state-store => reference/components-reference}/supported-state-stores/setup-dynamodb.md (96%) rename daprdocs/content/en/{operations/components/setup-state-store => reference/components-reference}/supported-state-stores/setup-firestore.md (97%) rename daprdocs/content/en/{operations/components/setup-state-store => reference/components-reference}/supported-state-stores/setup-hazelcast.md (95%) rename daprdocs/content/en/{operations/components/setup-state-store => reference/components-reference}/supported-state-stores/setup-memcached.md (96%) rename daprdocs/content/en/{operations/components/setup-state-store => reference/components-reference}/supported-state-stores/setup-mongodb.md (97%) rename daprdocs/content/en/{operations/components/setup-state-store => reference/components-reference}/supported-state-stores/setup-mysql.md (98%) rename daprdocs/content/en/{operations/components/setup-state-store => reference/components-reference}/supported-state-stores/setup-postgresql.md (96%) rename daprdocs/content/en/{operations/components/setup-state-store => reference/components-reference}/supported-state-stores/setup-redis.md (98%) rename daprdocs/content/en/{operations/components/setup-state-store => reference/components-reference}/supported-state-stores/setup-rethinkdb.md (97%) rename daprdocs/content/en/{operations/components/setup-state-store => reference/components-reference}/supported-state-stores/setup-sqlserver.md (97%) rename daprdocs/content/en/{operations/components/setup-state-store => reference/components-reference}/supported-state-stores/setup-zookeeper.md (96%) diff --git a/daprdocs/content/en/developing-applications/building-blocks/secrets/howto-secrets.md b/daprdocs/content/en/developing-applications/building-blocks/secrets/howto-secrets.md index 964cfdb20..b3c08f27c 100644 --- a/daprdocs/content/en/developing-applications/building-blocks/secrets/howto-secrets.md +++ b/daprdocs/content/en/developing-applications/building-blocks/secrets/howto-secrets.md @@ -42,7 +42,7 @@ spec: Make sure to replace `` with the path to the JSON file you just created. -To configure a different kind of secret store see the guidance on [how to configure a secret store]({{}}) and review [supported secret stores]({{}}) to see specific details required for different secret store solutions. +To configure a different kind of secret store see the guidance on [how to configure a secret store]({{}}) and review [supported secret stores]({{}}) to see specific details required for different secret store solutions. ## Get a secret Now run the Dapr sidecar (with no application) @@ -173,7 +173,7 @@ $app->run(function(\Dapr\SecretManager $secretManager, \Psr\Log\LoggerInterface - [Dapr secrets overview]({{}}) - [Secrets API reference]({{}}) -- [Configure a secret store]({{}}) -- [Supported secrets]({{}}) +- [Configure a secret store]({{}}) +- [Supported secrets]({{}}) - [Using secrets in components]({{}}) - [Secret stores quickstart](https://github.com/dapr/quickstarts/tree/master/secretstore) diff --git a/daprdocs/content/en/developing-applications/building-blocks/secrets/secrets-scopes.md b/daprdocs/content/en/developing-applications/building-blocks/secrets/secrets-scopes.md index a2126d710..d9f2598c4 100644 --- a/daprdocs/content/en/developing-applications/building-blocks/secrets/secrets-scopes.md +++ b/daprdocs/content/en/developing-applications/building-blocks/secrets/secrets-scopes.md @@ -11,7 +11,7 @@ You can read [guidance on setting up secret store components]({{< ref setup-secr To limit the secrets to which the Dapr application has access to, you can can define secret scopes by adding a secret scope policy to the application configuration with restrictive permissions. Follow [these instructions]({{< ref configuration-concept.md >}}) to define an application configuration. -The secret scoping policy applies to any [secret store]({{< ref supported-secret-stores.md >}}), whether that is a local secret store, a Kubernetes secret store or a public cloud secret store. For details on how to set up a [secret stores]({{< ref secret-stores-overview.md >}}) read [How To: Retrieve a secret]({{< ref howto-secrets.md >}}) +The secret scoping policy applies to any [secret store]({{< ref supported-secret-stores.md >}}), whether that is a local secret store, a Kubernetes secret store or a public cloud secret store. For details on how to set up a [secret stores]({{< ref setup-secret-store.md >}}) read [How To: Retrieve a secret]({{< ref howto-secrets.md >}}) Watch this [video](https://youtu.be/j99RN_nxExA?start=2272) for a demo on how to use secret scoping with your application. @@ -95,6 +95,6 @@ Scenarios | defaultAccess | allowedSecrets | deniedSecrets | permission ## Related links * List of [secret stores]({{< ref supported-secret-stores.md >}}) -* Overview of [secret stores]({{< ref secret-stores-overview.md >}}) +* Overview of [secret stores]({{< ref setup-secret-store.md >}}) howto-secrets/ \ No newline at end of file diff --git a/daprdocs/content/en/developing-applications/building-blocks/state-management/howto-stateful-service.md b/daprdocs/content/en/developing-applications/building-blocks/state-management/howto-stateful-service.md index d25b7fbe6..e53a50108 100644 --- a/daprdocs/content/en/developing-applications/building-blocks/state-management/howto-stateful-service.md +++ b/daprdocs/content/en/developing-applications/building-blocks/state-management/howto-stateful-service.md @@ -24,7 +24,7 @@ To change the state store being used, replace the YAML under `/components` with ### Kubernetes -See the instructions [here]({{}}) on how to setup different state stores on Kubernetes. +See the instructions [here]({{}}) on how to setup different state stores on Kubernetes. ## Strong and Eventual consistency diff --git a/daprdocs/content/en/developing-applications/building-blocks/state-management/query-state-store/_index.md b/daprdocs/content/en/developing-applications/building-blocks/state-management/query-state-store/_index.md index 489c77675..665334824 100644 --- a/daprdocs/content/en/developing-applications/building-blocks/state-management/query-state-store/_index.md +++ b/daprdocs/content/en/developing-applications/building-blocks/state-management/query-state-store/_index.md @@ -6,4 +6,4 @@ weight: 500 description: "Guides for working with specific backend states stores" --- -Explore the **Operations** section to see a list of [supported state stores]({{}}) and how to setup [state store components]({{}}). \ No newline at end of file +Explore the **Operations** section to see a list of [supported state stores]({{}}) and how to setup [state store components]({{}}). \ No newline at end of file diff --git a/daprdocs/content/en/operations/components/component-scopes.md b/daprdocs/content/en/operations/components/component-scopes.md index 0e82cba04..4dc36243d 100644 --- a/daprdocs/content/en/operations/components/component-scopes.md +++ b/daprdocs/content/en/operations/components/component-scopes.md @@ -1,7 +1,7 @@ --- type: docs title: "How-To: Scope components to one or more applications" -linkTitle: "How-To: Set component scopes" +linkTitle: "Scope access to components" weight: 300 description: "Limit component access to particular Dapr instances" --- diff --git a/daprdocs/content/en/operations/components/component-secrets.md b/daprdocs/content/en/operations/components/component-secrets.md index f494b89bd..00e3c763d 100644 --- a/daprdocs/content/en/operations/components/component-secrets.md +++ b/daprdocs/content/en/operations/components/component-secrets.md @@ -1,7 +1,7 @@ --- type: docs title: "How-To: Reference secrets in components" -linkTitle: "How-To: Reference secrets" +linkTitle: "Reference secrets in components" weight: 400 description: "How to securly reference secrets from a component definition" --- diff --git a/daprdocs/content/en/operations/components/setup-bindings.md b/daprdocs/content/en/operations/components/setup-bindings.md new file mode 100644 index 000000000..0e6c88a51 --- /dev/null +++ b/daprdocs/content/en/operations/components/setup-bindings.md @@ -0,0 +1,85 @@ +--- +type: docs +title: "Bindings components" +linkTitle: "Bindings" +description: "Guidance on setting up Dapr bindings components" +weight: 4000 +--- + +Dapr integrates with external resources to allow apps to both be triggered by external events and interact with the resources. Each binding component has a name and this name is used when interacting with the resource. + +As with other building block components, binding components are extensible and can be found in the [components-contrib repo](https://github.com/dapr/components-contrib). + +A binding in Dapr is described using a `Component` file with the following fields: + +```yaml +apiVersion: dapr.io/v1alpha1 +kind: Component +metadata: + name: + namespace: +spec: + type: bindings. + version: v1 + metadata: + - name: + value: + - name: + value: +... +``` + +The type of binding is determined by the `type` field, and things like connection strings and other metadata are put in the `.metadata` section. + +Different [supported bindings]({{< ref supported-bindings >}}) will have different specific fields that would need to be configured. For example, when configuring a binding for [Azure Blob Storage]({{< ref blobstorage>}}), the file would look like this: + +```yaml +apiVersion: dapr.io/v1alpha1 +kind: Component +metadata: + name: + namespace: +spec: + type: bindings.azure.blobstorage + version: v1 + metadata: + - name: storageAccount + value: myStorageAccountName + - name: storageAccessKey + value: *********** + - name: container + value: container1 + - name: decodeBase64 + value: + - name: getBlobRetryCount + value: +``` + +## Apply the configuration + +Once you have created the component's YAML file, follow these instructions to apply it based on your hosting environment: + + +{{< tabs "Self-Hosted" "Kubernetes" >}} + +{{% codetab %}} +To run locally, create a `components` dir containing the YAML file and provide the path to the `dapr run` command with the flag `--components-path`. +{{% /codetab %}} + +{{% codetab %}} +To deploy in Kubernetes, assuming your component file is named `mybinding.yaml`, run: + +```bash +kubectl apply -f mybinding.yaml +``` +{{% /codetab %}} + +{{< /tabs >}} + +## Supported bindings + +Visit the [bindings reference]({{< ref supported-bindings >}}) for a full list of supported resources. + +## Related links +- [Bindings building block]({{< ref bindings >}}) +- [Supported bindings]({{}}) \ No newline at end of file diff --git a/daprdocs/content/en/operations/components/setup-bindings/_index.md b/daprdocs/content/en/operations/components/setup-bindings/_index.md deleted file mode 100644 index ad369a646..000000000 --- a/daprdocs/content/en/operations/components/setup-bindings/_index.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -type: docs -title: "Bindings components" -linkTitle: "Bindings" -description: "Guidance on setting up Dapr bindings components" -weight: 4000 ---- \ No newline at end of file diff --git a/daprdocs/content/en/operations/components/setup-pubsub/_index.md b/daprdocs/content/en/operations/components/setup-pubsub/_index.md index 502d39d8c..c7fbe3188 100644 --- a/daprdocs/content/en/operations/components/setup-pubsub/_index.md +++ b/daprdocs/content/en/operations/components/setup-pubsub/_index.md @@ -4,4 +4,53 @@ title: "Pub/Sub brokers" linkTitle: "Pub/sub brokers" description: "Guidance on setting up different message brokers for Dapr Pub/Sub" weight: 2000 +aliases: + - "/operations/components/setup-pubsub/setup-pubsub-overview/" --- + +Dapr integrates with pub/sub message buses to provide applications with the ability to create event-driven, loosely coupled architectures where producers send events to consumers via topics. + +Dapr supports the configuration of multiple, named, pub/sub components *per application*. Each pub/sub component has a name and this name is used when publishing a message topic. Read the [API reference]({{< ref pubsub_api.md >}}) for details on how to publish and subscribe to topics. + +Pub/sub components are extensible. A list of support pub/sub components is [here]({{< ref supported-pubsub >}}) and the implementations can be found in the [components-contrib repo](https://github.com/dapr/components-contrib). + +## Component files + +A pub/sub is described using a `Component` file: + +```yaml +apiVersion: dapr.io/v1alpha1 +kind: Component +metadata: + name: pubsub + namespace: default +spec: + type: pubsub. + version: v1 + metadata: + - name: + value: + - name: + value: +... +``` + +The type of pub/sub is determined by the `type` field, and properties such as connection strings and other metadata are put in the `.metadata` section. +Even though metadata values can contain secrets in plain text, it is recommended you use a [secret store]({{< ref component-secrets.md >}}) using a `secretKeyRef`. + +{{% alert title="Topic creation" color="primary" %}} +Depending on the pub/sub message bus you are using and how it is configured, topics may be created automatically. Even if the message bus supports automatic topic creation, it is a common governance practice to disable it in production environments. You may still need to use a CLI, admin console, or request form to manually create the topics required by your application. +{{% /alert %}} + +Visit [this guide]({{< ref "howto-publish-subscribe.md#step-3-publish-a-topic" >}}) for instructions on configuring and using pub/sub components. + +## Related links + +- Overview of the Dapr [Pub/Sub building block]({{< ref pubsub-overview.md >}}) +- Try the [Pub/Sub quickstart sample](https://github.com/dapr/quickstarts/tree/master/pub-sub) +- Read the [guide on publishing and subscribing]({{< ref howto-publish-subscribe.md >}}) +- Learn about [topic scoping]({{< ref pubsub-scopes.md >}}) +- Learn about [message time-to-live]({{< ref pubsub-message-ttl.md >}}) +- Learn [how to configure Pub/Sub components with multiple namespaces]({{< ref pubsub-namespaces.md >}}) +- List of [pub/sub components]({{< ref supported-pubsub >}}) +- Read the [API reference]({{< ref pubsub_api.md >}}) diff --git a/daprdocs/content/en/operations/components/setup-pubsub/setup-pubsub-overview.md b/daprdocs/content/en/operations/components/setup-pubsub/setup-pubsub-overview.md deleted file mode 100644 index 6447140e5..000000000 --- a/daprdocs/content/en/operations/components/setup-pubsub/setup-pubsub-overview.md +++ /dev/null @@ -1,55 +0,0 @@ ---- -type: docs -title: "Overview" -linkTitle: "Overview" -description: "Overview on setting up of pub/sub components for Dapr" -weight: 10000 -type: docs ---- - -Dapr integrates with pub/sub message buses to provide applications with the ability to create event-driven, loosely coupled architectures where producers send events to consumers via topics. - -Dapr supports the configuration of multiple, named, pub/sub components *per application*. Each pub/sub component has a name and this name is used when publishing a message topic. Read the [API reference]({{< ref pubsub_api.md >}}) for details on how to publish and subscribe to topics. - -Pub/sub components are extensible. A list of support pub/sub components is [here]({{< ref supported-pubsub >}}) and the implementations can be found in the [components-contrib repo](https://github.com/dapr/components-contrib). - -## Component files - -A pub/sub is described using a `Component` file: - -```yaml -apiVersion: dapr.io/v1alpha1 -kind: Component -metadata: - name: pubsub - namespace: default -spec: - type: pubsub. - version: v1 - metadata: - - name: - value: - - name: - value: -... -``` - -The type of pub/sub is determined by the `type` field, and properties such as connection strings and other metadata are put in the `.metadata` section. -Even though metadata values can contain secrets in plain text, it is recommended you use a [secret store]({{< ref component-secrets.md >}}) using a `secretKeyRef`. - -{{% alert title="Topic creation" color="primary" %}} -Depending on the pub/sub message bus you are using and how it is configured, topics may be created automatically. Even if the message bus supports automatic topic creation, it is a common governance practice to disable it in production environments. You may still need to use a CLI, admin console, or request form to manually create the topics required by your application. -{{% /alert %}} - -Visit [this guide]({{< ref "howto-publish-subscribe.md#step-3-publish-a-topic" >}}) for instructions on configuring and using pub/sub components. - -## Related links - -- Overview of the Dapr [Pub/Sub building block]({{< ref pubsub-overview.md >}}) -- Try the [Pub/Sub quickstart sample](https://github.com/dapr/quickstarts/tree/master/pub-sub) -- Read the [guide on publishing and subscribing]({{< ref howto-publish-subscribe.md >}}) -- Learn about [topic scoping]({{< ref pubsub-scopes.md >}}) -- Learn about [message time-to-live]({{< ref pubsub-message-ttl.md >}}) -- Learn [how to configure Pub/Sub components with multiple namespaces]({{< ref pubsub-namespaces.md >}}) -- List of [pub/sub components]({{< ref supported-pubsub >}}) -- Read the [API reference]({{< ref pubsub_api.md >}}) diff --git a/daprdocs/content/en/operations/components/setup-secret-store/secret-stores-overview.md b/daprdocs/content/en/operations/components/setup-secret-store.md similarity index 85% rename from daprdocs/content/en/operations/components/setup-secret-store/secret-stores-overview.md rename to daprdocs/content/en/operations/components/setup-secret-store.md index 5822ff211..5c22efe73 100644 --- a/daprdocs/content/en/operations/components/setup-secret-store/secret-stores-overview.md +++ b/daprdocs/content/en/operations/components/setup-secret-store.md @@ -1,10 +1,11 @@ --- type: docs -title: "Overview" -linkTitle: "Overview" -description: "General overview on set up of secret stores for Dapr" -weight: 10000 -type: docs +title: "Secret store components" +linkTitle: "Secret stores" +description: "Guidance on setting up different secret store components" +weight: 3000 +aliases: + - "/operations/components/setup-state-store/secret-stores-overview/" --- Dapr integrates with secret stores to provide apps and other components with secure storage and access to secrets such as access keys and passwords. Each secret store component has a name and this name is used when accessing a secret. @@ -75,6 +76,10 @@ kubectl apply -f secret-store.yaml {{< /tabs >}} +## Supported secret stores + +Visit the [secret stores reference]({{< ref supported-secret-stores >}}) for a full list of supported secret stores. + ## Related links diff --git a/daprdocs/content/en/operations/components/setup-secret-store/_index.md b/daprdocs/content/en/operations/components/setup-secret-store/_index.md deleted file mode 100644 index e603b0126..000000000 --- a/daprdocs/content/en/operations/components/setup-secret-store/_index.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -type: docs -title: "Secret store components" -linkTitle: "Secret stores" -description: "Guidance on setting up different secret store components" -weight: 3000 -type: docs ---- diff --git a/daprdocs/content/en/operations/components/setup-state-store/setup-state-store-overview.md b/daprdocs/content/en/operations/components/setup-state-store.md similarity index 74% rename from daprdocs/content/en/operations/components/setup-state-store/setup-state-store-overview.md rename to daprdocs/content/en/operations/components/setup-state-store.md index 35d8fc1c6..5f3f2308c 100644 --- a/daprdocs/content/en/operations/components/setup-state-store/setup-state-store-overview.md +++ b/daprdocs/content/en/operations/components/setup-state-store.md @@ -1,9 +1,11 @@ --- type: docs -title: "Overview" -linkTitle: "Overview" -description: "Guidance on set up for state management components" -weight: 10000 +title: "State stores components" +linkTitle: "State stores" +description: "Guidance on setting up different state stores for Dapr state management" +weight: 1000 +aliases: + - "/operations/components/setup-state-store/setup-state-store-overview/" --- Dapr integrates with existing databases to provide apps with state management capabilities for CRUD operations, transactions and more. It also supports the configuration of multiple, named, state store components *per application*. @@ -34,7 +36,12 @@ Even though metadata values can contain secrets in plain text, it is recommended Visit [this guide]({{< ref "howto-get-save-state.md#step-1-setup-a-state-store" >}}) on how to configure a state store component. +## Supported state stores + +Visit [this reference]({{< ref supported-state-stores >}}) to see all of the supported state stores in Dapr. + ## Related topics - [Component concept]({{< ref components-concept.md >}}) - [State management overview]({{< ref state-management >}}) - [State management API specification]({{< ref state_api.md >}}) +- [Supported state stores]({{< ref supported-state-stores >}}) diff --git a/daprdocs/content/en/operations/components/setup-state-store/_index.md b/daprdocs/content/en/operations/components/setup-state-store/_index.md deleted file mode 100644 index d86cfa777..000000000 --- a/daprdocs/content/en/operations/components/setup-state-store/_index.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -type: docs -title: "State stores components" -linkTitle: "State stores" -description: "Guidance on setting up different state stores for Dapr state management" -weight: 1000 ---- \ No newline at end of file diff --git a/daprdocs/content/en/reference/components-reference/_index.md b/daprdocs/content/en/reference/components-reference/_index.md new file mode 100644 index 000000000..5456f4324 --- /dev/null +++ b/daprdocs/content/en/reference/components-reference/_index.md @@ -0,0 +1,7 @@ +--- +type: docs +title: "Dapr components reference" +linkTitle: "Component specs" +description: "Detailed information and specifications on Dapr components" +weight: 400 +--- diff --git a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/_index.md b/daprdocs/content/en/reference/components-reference/supported-bindings/_index.md similarity index 97% rename from daprdocs/content/en/operations/components/setup-bindings/supported-bindings/_index.md rename to daprdocs/content/en/reference/components-reference/supported-bindings/_index.md index 692149ac5..77536ca47 100644 --- a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/_index.md +++ b/daprdocs/content/en/reference/components-reference/supported-bindings/_index.md @@ -1,9 +1,11 @@ --- type: docs title: "Supported external bindings" -linkTitle: "Supported bindings" -weight: 200 +linkTitle: "Bindings" +weight: 3000 description: The supported external bindings that interface with Dapr +aliases: + - "/operations/components/setup-bindings/supported-bindings/" no_list: true --- diff --git a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/alicloudoss.md b/daprdocs/content/en/reference/components-reference/supported-bindings/alicloudoss.md similarity index 97% rename from daprdocs/content/en/operations/components/setup-bindings/supported-bindings/alicloudoss.md rename to daprdocs/content/en/reference/components-reference/supported-bindings/alicloudoss.md index af106dea8..0318c6d19 100644 --- a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/alicloudoss.md +++ b/daprdocs/content/en/reference/components-reference/supported-bindings/alicloudoss.md @@ -3,6 +3,8 @@ type: docs title: "Alibaba Cloud Object Storage Service binding spec" linkTitle: "Alibaba Cloud Object Storage" description: "Detailed documentation on the Alibaba Cloud Object Storage binding component" +aliases: + - "/operations/components/setup-bindings/supported-bindings/alicloudoss/" --- ## Component format diff --git a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/apns.md b/daprdocs/content/en/reference/components-reference/supported-bindings/apns.md similarity index 98% rename from daprdocs/content/en/operations/components/setup-bindings/supported-bindings/apns.md rename to daprdocs/content/en/reference/components-reference/supported-bindings/apns.md index 625551acc..3a33ba187 100644 --- a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/apns.md +++ b/daprdocs/content/en/reference/components-reference/supported-bindings/apns.md @@ -3,6 +3,8 @@ type: docs title: "Apple Push Notification Service binding spec" linkTitle: "Apple Push Notification Service" description: "Detailed documentation on the Apple Push Notification Service binding component" +aliases: + - "/operations/components/setup-bindings/supported-bindings/apns/" --- ## Component format diff --git a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/blobstorage.md b/daprdocs/content/en/reference/components-reference/supported-bindings/blobstorage.md similarity index 98% rename from daprdocs/content/en/operations/components/setup-bindings/supported-bindings/blobstorage.md rename to daprdocs/content/en/reference/components-reference/supported-bindings/blobstorage.md index 409f8efe0..6eb4529bc 100644 --- a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/blobstorage.md +++ b/daprdocs/content/en/reference/components-reference/supported-bindings/blobstorage.md @@ -3,6 +3,8 @@ type: docs title: "Azure Blob Storage binding spec" linkTitle: "Azure Blob Storage" description: "Detailed documentation on the Azure Blob Storage binding component" +aliases: + - "/operations/components/setup-bindings/supported-bindings/blobstorage/" --- ## Component format diff --git a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/cosmosdb.md b/daprdocs/content/en/reference/components-reference/supported-bindings/cosmosdb.md similarity index 96% rename from daprdocs/content/en/operations/components/setup-bindings/supported-bindings/cosmosdb.md rename to daprdocs/content/en/reference/components-reference/supported-bindings/cosmosdb.md index d7749960e..dd793db11 100644 --- a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/cosmosdb.md +++ b/daprdocs/content/en/reference/components-reference/supported-bindings/cosmosdb.md @@ -3,6 +3,8 @@ type: docs title: "Azure CosmosDB binding spec" linkTitle: "Azure CosmosDB" description: "Detailed documentation on the Azure CosmosDB binding component" +aliases: + - "/operations/components/setup-bindings/supported-bindings/cosmosdb/" --- ## Component format diff --git a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/cron.md b/daprdocs/content/en/reference/components-reference/supported-bindings/cron.md similarity index 97% rename from daprdocs/content/en/operations/components/setup-bindings/supported-bindings/cron.md rename to daprdocs/content/en/reference/components-reference/supported-bindings/cron.md index afc22a070..9d07e146a 100644 --- a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/cron.md +++ b/daprdocs/content/en/reference/components-reference/supported-bindings/cron.md @@ -3,6 +3,8 @@ type: docs title: "Cron binding spec" linkTitle: "Cron" description: "Detailed documentation on the cron binding component" +aliases: + - "/operations/components/setup-bindings/supported-bindings/cron/" --- ## Component format diff --git a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/dynamodb.md b/daprdocs/content/en/reference/components-reference/supported-bindings/dynamodb.md similarity index 96% rename from daprdocs/content/en/operations/components/setup-bindings/supported-bindings/dynamodb.md rename to daprdocs/content/en/reference/components-reference/supported-bindings/dynamodb.md index 86e28b457..dae8c1f8a 100644 --- a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/dynamodb.md +++ b/daprdocs/content/en/reference/components-reference/supported-bindings/dynamodb.md @@ -3,6 +3,8 @@ type: docs title: "AWS DynamoDB binding spec" linkTitle: "AWS DynamoDB" description: "Detailed documentation on the AWS DynamoDB binding component" +aliases: + - "/operations/components/setup-bindings/supported-bindings/dynamodb/" --- ## Component format diff --git a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/eventgrid.md b/daprdocs/content/en/reference/components-reference/supported-bindings/eventgrid.md similarity index 99% rename from daprdocs/content/en/operations/components/setup-bindings/supported-bindings/eventgrid.md rename to daprdocs/content/en/reference/components-reference/supported-bindings/eventgrid.md index 426ad7d59..efa8f3bc7 100644 --- a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/eventgrid.md +++ b/daprdocs/content/en/reference/components-reference/supported-bindings/eventgrid.md @@ -3,6 +3,8 @@ type: docs title: "Azure Event Grid binding spec" linkTitle: "Azure Event Grid" description: "Detailed documentation on the Azure Event Grid binding component" +aliases: + - "/operations/components/setup-bindings/supported-bindings/eventgrid/" --- ## Component format diff --git a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/eventhubs.md b/daprdocs/content/en/reference/components-reference/supported-bindings/eventhubs.md similarity index 97% rename from daprdocs/content/en/operations/components/setup-bindings/supported-bindings/eventhubs.md rename to daprdocs/content/en/reference/components-reference/supported-bindings/eventhubs.md index 7105347ea..5ae7949f3 100644 --- a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/eventhubs.md +++ b/daprdocs/content/en/reference/components-reference/supported-bindings/eventhubs.md @@ -3,6 +3,8 @@ type: docs title: "Azure Event Hubs binding spec" linkTitle: "Azure Event Hubs" description: "Detailed documentation on the Azure Event Hubs binding component" +aliases: + - "/operations/components/setup-bindings/supported-bindings/eventhubs/" --- ## Component format diff --git a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/gcpbucket.md b/daprdocs/content/en/reference/components-reference/supported-bindings/gcpbucket.md similarity index 98% rename from daprdocs/content/en/operations/components/setup-bindings/supported-bindings/gcpbucket.md rename to daprdocs/content/en/reference/components-reference/supported-bindings/gcpbucket.md index b00f19822..84b91edec 100644 --- a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/gcpbucket.md +++ b/daprdocs/content/en/reference/components-reference/supported-bindings/gcpbucket.md @@ -3,6 +3,8 @@ type: docs title: "GCP Storage Bucket binding spec" linkTitle: "GCP Storage Bucket" description: "Detailed documentation on the GCP Storage Bucket binding component" +aliases: + - "/operations/components/setup-bindings/supported-bindings/gcpbucket/" --- ## Component format diff --git a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/gcppubsub.md b/daprdocs/content/en/reference/components-reference/supported-bindings/gcppubsub.md similarity index 97% rename from daprdocs/content/en/operations/components/setup-bindings/supported-bindings/gcppubsub.md rename to daprdocs/content/en/reference/components-reference/supported-bindings/gcppubsub.md index 9def7fe7c..d9bab5e81 100644 --- a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/gcppubsub.md +++ b/daprdocs/content/en/reference/components-reference/supported-bindings/gcppubsub.md @@ -3,6 +3,8 @@ type: docs title: "GCP Pub/Sub binding spec" linkTitle: "GCP Pub/Sub" description: "Detailed documentation on the GCP Pub/Sub binding component" +aliases: + - "/operations/components/setup-bindings/supported-bindings/gcppubsub/" --- ## Component format diff --git a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/http.md b/daprdocs/content/en/reference/components-reference/supported-bindings/http.md similarity index 98% rename from daprdocs/content/en/operations/components/setup-bindings/supported-bindings/http.md rename to daprdocs/content/en/reference/components-reference/supported-bindings/http.md index 0cc0fdf88..46cc781e4 100644 --- a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/http.md +++ b/daprdocs/content/en/reference/components-reference/supported-bindings/http.md @@ -3,6 +3,8 @@ type: docs title: "HTTP binding spec" linkTitle: "HTTP" description: "Detailed documentation on the HTTP binding component" +aliases: + - "/operations/components/setup-bindings/supported-bindings/http/" --- ## Setup Dapr component diff --git a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/influxdb.md b/daprdocs/content/en/reference/components-reference/supported-bindings/influxdb.md similarity index 95% rename from daprdocs/content/en/operations/components/setup-bindings/supported-bindings/influxdb.md rename to daprdocs/content/en/reference/components-reference/supported-bindings/influxdb.md index dcb4f130a..88e22cfba 100644 --- a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/influxdb.md +++ b/daprdocs/content/en/reference/components-reference/supported-bindings/influxdb.md @@ -3,6 +3,8 @@ type: docs title: "InfluxDB binding spec" linkTitle: "InfluxDB" description: "Detailed documentation on the InfluxDB binding component" +aliases: + - "/operations/components/setup-bindings/supported-bindings/influxdb/" --- ## Component format diff --git a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/kafka.md b/daprdocs/content/en/reference/components-reference/supported-bindings/kafka.md similarity index 97% rename from daprdocs/content/en/operations/components/setup-bindings/supported-bindings/kafka.md rename to daprdocs/content/en/reference/components-reference/supported-bindings/kafka.md index ddbb142e6..f9b508d9d 100644 --- a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/kafka.md +++ b/daprdocs/content/en/reference/components-reference/supported-bindings/kafka.md @@ -3,6 +3,8 @@ type: docs title: "Kafka binding spec" linkTitle: "Kafka" description: "Detailed documentation on the Kafka binding component" +aliases: + - "/operations/components/setup-bindings/supported-bindings/kafka/" --- ## Component format diff --git a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/kinesis.md b/daprdocs/content/en/reference/components-reference/supported-bindings/kinesis.md similarity index 97% rename from daprdocs/content/en/operations/components/setup-bindings/supported-bindings/kinesis.md rename to daprdocs/content/en/reference/components-reference/supported-bindings/kinesis.md index 1f6c375fb..cc0914486 100644 --- a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/kinesis.md +++ b/daprdocs/content/en/reference/components-reference/supported-bindings/kinesis.md @@ -3,6 +3,8 @@ type: docs title: "AWS Kinesis binding spec" linkTitle: "AWS Kinesis" description: "Detailed documentation on the AWS Kinesis binding component" +aliases: + - "/operations/components/setup-bindings/supported-bindings/kinesis/" --- ## Component format diff --git a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/kubernetes-binding.md b/daprdocs/content/en/reference/components-reference/supported-bindings/kubernetes-binding.md similarity index 97% rename from daprdocs/content/en/operations/components/setup-bindings/supported-bindings/kubernetes-binding.md rename to daprdocs/content/en/reference/components-reference/supported-bindings/kubernetes-binding.md index 3ccfd0b0f..706ea8a07 100644 --- a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/kubernetes-binding.md +++ b/daprdocs/content/en/reference/components-reference/supported-bindings/kubernetes-binding.md @@ -3,6 +3,8 @@ type: docs title: "Kubernetes Events binding spec" linkTitle: "Kubernetes Events" description: "Detailed documentation on the Kubernetes Events binding component" +aliases: + - "/operations/components/setup-bindings/supported-bindings/kubernetes-binding/" --- ## Component format diff --git a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/localstorage.md b/daprdocs/content/en/reference/components-reference/supported-bindings/localstorage.md similarity index 98% rename from daprdocs/content/en/operations/components/setup-bindings/supported-bindings/localstorage.md rename to daprdocs/content/en/reference/components-reference/supported-bindings/localstorage.md index 7268b2bd9..a698d86d1 100644 --- a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/localstorage.md +++ b/daprdocs/content/en/reference/components-reference/supported-bindings/localstorage.md @@ -3,6 +3,8 @@ type: docs title: "Local Storage binding spec" linkTitle: "Local Storage" description: "Detailed documentation on the Local Storage binding component" +aliases: + - "/operations/components/setup-bindings/supported-bindings/localstorage/" --- ## Component format diff --git a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/mqtt.md b/daprdocs/content/en/reference/components-reference/supported-bindings/mqtt.md similarity index 95% rename from daprdocs/content/en/operations/components/setup-bindings/supported-bindings/mqtt.md rename to daprdocs/content/en/reference/components-reference/supported-bindings/mqtt.md index 236eb22a8..270381a52 100644 --- a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/mqtt.md +++ b/daprdocs/content/en/reference/components-reference/supported-bindings/mqtt.md @@ -3,6 +3,8 @@ type: docs title: "MQTT binding spec" linkTitle: "MQTT" description: "Detailed documentation on the MQTT binding component" +aliases: + - "/operations/components/setup-bindings/supported-bindings/mqtt/" --- ## Component format diff --git a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/mysql.md b/daprdocs/content/en/reference/components-reference/supported-bindings/mysql.md similarity index 98% rename from daprdocs/content/en/operations/components/setup-bindings/supported-bindings/mysql.md rename to daprdocs/content/en/reference/components-reference/supported-bindings/mysql.md index 94cc51c08..79863e41d 100644 --- a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/mysql.md +++ b/daprdocs/content/en/reference/components-reference/supported-bindings/mysql.md @@ -3,6 +3,8 @@ type: docs title: "MySQL binding spec" linkTitle: "MySQL" description: "Detailed documentation on the MySQL binding component" +aliases: + - "/operations/components/setup-bindings/supported-bindings/mysql/" --- ## Component format diff --git a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/postgres.md b/daprdocs/content/en/reference/components-reference/supported-bindings/postgres.md similarity index 97% rename from daprdocs/content/en/operations/components/setup-bindings/supported-bindings/postgres.md rename to daprdocs/content/en/reference/components-reference/supported-bindings/postgres.md index 13606d2da..ad891833d 100644 --- a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/postgres.md +++ b/daprdocs/content/en/reference/components-reference/supported-bindings/postgres.md @@ -3,6 +3,8 @@ type: docs title: "PostgreSQL binding spec" linkTitle: "PostgreSQL" description: "Detailed documentation on the PostgreSQL binding component" +aliases: + - "/operations/components/setup-bindings/supported-bindings/postgres/" --- ## Component format diff --git a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/postmark.md b/daprdocs/content/en/reference/components-reference/supported-bindings/postmark.md similarity index 97% rename from daprdocs/content/en/operations/components/setup-bindings/supported-bindings/postmark.md rename to daprdocs/content/en/reference/components-reference/supported-bindings/postmark.md index f5a4032c0..41c08b1c8 100644 --- a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/postmark.md +++ b/daprdocs/content/en/reference/components-reference/supported-bindings/postmark.md @@ -3,6 +3,8 @@ type: docs title: "Postmark binding spec" linkTitle: "Postmark" description: "Detailed documentation on the Postmark binding component" +aliases: + - "/operations/components/setup-bindings/supported-bindings/postmark/" --- ## Component format diff --git a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/rabbitmq.md b/daprdocs/content/en/reference/components-reference/supported-bindings/rabbitmq.md similarity index 98% rename from daprdocs/content/en/operations/components/setup-bindings/supported-bindings/rabbitmq.md rename to daprdocs/content/en/reference/components-reference/supported-bindings/rabbitmq.md index 9c57c2e36..ebc46d396 100644 --- a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/rabbitmq.md +++ b/daprdocs/content/en/reference/components-reference/supported-bindings/rabbitmq.md @@ -3,6 +3,8 @@ type: docs title: "RabbitMQ binding spec" linkTitle: "RabbitMQ" description: "Detailed documentation on the RabbitMQ binding component" +aliases: + - "/operations/components/setup-bindings/supported-bindings/rabbitmq/" --- ## Component format diff --git a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/redis.md b/daprdocs/content/en/reference/components-reference/supported-bindings/redis.md similarity index 98% rename from daprdocs/content/en/operations/components/setup-bindings/supported-bindings/redis.md rename to daprdocs/content/en/reference/components-reference/supported-bindings/redis.md index 9ca98ae0c..22b0445ef 100644 --- a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/redis.md +++ b/daprdocs/content/en/reference/components-reference/supported-bindings/redis.md @@ -3,6 +3,8 @@ type: docs title: "Redis binding spec" linkTitle: "Redis" description: "Detailed documentation on the Redis binding component" +aliases: + - "/operations/components/setup-bindings/supported-bindings/redis/" --- ## Component format diff --git a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/rethinkdb.md b/daprdocs/content/en/reference/components-reference/supported-bindings/rethinkdb.md similarity index 96% rename from daprdocs/content/en/operations/components/setup-bindings/supported-bindings/rethinkdb.md rename to daprdocs/content/en/reference/components-reference/supported-bindings/rethinkdb.md index b71817c85..6a62df3c5 100644 --- a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/rethinkdb.md +++ b/daprdocs/content/en/reference/components-reference/supported-bindings/rethinkdb.md @@ -3,6 +3,8 @@ type: docs title: "RethinkDB binding spec" linkTitle: "RethinkDB" description: "Detailed documentation on the RethinkDB binding component" +aliases: + - "/operations/components/setup-bindings/supported-bindings/rethinkdb/" --- ## Component format diff --git a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/s3.md b/daprdocs/content/en/reference/components-reference/supported-bindings/s3.md similarity index 98% rename from daprdocs/content/en/operations/components/setup-bindings/supported-bindings/s3.md rename to daprdocs/content/en/reference/components-reference/supported-bindings/s3.md index e38dc221d..8b3fb158a 100644 --- a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/s3.md +++ b/daprdocs/content/en/reference/components-reference/supported-bindings/s3.md @@ -3,6 +3,8 @@ type: docs title: "AWS S3 binding spec" linkTitle: "AWS S3" description: "Detailed documentation on the AWS S3 binding component" +aliases: + - "/operations/components/setup-bindings/supported-bindings/s3/" --- ## Component format diff --git a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/sendgrid.md b/daprdocs/content/en/reference/components-reference/supported-bindings/sendgrid.md similarity index 97% rename from daprdocs/content/en/operations/components/setup-bindings/supported-bindings/sendgrid.md rename to daprdocs/content/en/reference/components-reference/supported-bindings/sendgrid.md index 6c1d88ee0..215397cd7 100644 --- a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/sendgrid.md +++ b/daprdocs/content/en/reference/components-reference/supported-bindings/sendgrid.md @@ -3,6 +3,8 @@ type: docs title: "Twilio SendGrid binding spec" linkTitle: "Twilio SendGrid" description: "Detailed documentation on the Twilio SendGrid binding component" +aliases: + - "/operations/components/setup-bindings/supported-bindings/sendgrid/" --- ## Component format diff --git a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/servicebusqueues.md b/daprdocs/content/en/reference/components-reference/supported-bindings/servicebusqueues.md similarity index 96% rename from daprdocs/content/en/operations/components/setup-bindings/supported-bindings/servicebusqueues.md rename to daprdocs/content/en/reference/components-reference/supported-bindings/servicebusqueues.md index 1de6a27c7..880e209d7 100644 --- a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/servicebusqueues.md +++ b/daprdocs/content/en/reference/components-reference/supported-bindings/servicebusqueues.md @@ -3,6 +3,8 @@ type: docs title: "Azure Service Bus Queues binding spec" linkTitle: "Azure Service Bus Queues" description: "Detailed documentation on the Azure Service Bus Queues binding component" +aliases: + - "/operations/components/setup-bindings/supported-bindings/servicebusqueues/" --- ## Component format diff --git a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/signalr.md b/daprdocs/content/en/reference/components-reference/supported-bindings/signalr.md similarity index 97% rename from daprdocs/content/en/operations/components/setup-bindings/supported-bindings/signalr.md rename to daprdocs/content/en/reference/components-reference/supported-bindings/signalr.md index 508ae7d2f..0878fd9ae 100644 --- a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/signalr.md +++ b/daprdocs/content/en/reference/components-reference/supported-bindings/signalr.md @@ -3,6 +3,8 @@ type: docs title: "Azure SignalR binding spec" linkTitle: "Azure SignalR" description: "Detailed documentation on the Azure SignalR binding component" +aliases: + - "/operations/components/setup-bindings/supported-bindings/signalr/" --- ## Component format diff --git a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/smtp.md b/daprdocs/content/en/reference/components-reference/supported-bindings/smtp.md similarity index 97% rename from daprdocs/content/en/operations/components/setup-bindings/supported-bindings/smtp.md rename to daprdocs/content/en/reference/components-reference/supported-bindings/smtp.md index 7bd2b58ab..31bfa1e11 100644 --- a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/smtp.md +++ b/daprdocs/content/en/reference/components-reference/supported-bindings/smtp.md @@ -3,6 +3,8 @@ type: docs title: "SMTP binding spec" linkTitle: "SMTP" description: "Detailed documentation on the SMTP binding component" +aliases: + - "/operations/components/setup-bindings/supported-bindings/smtp/" --- ## Component format diff --git a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/sns.md b/daprdocs/content/en/reference/components-reference/supported-bindings/sns.md similarity index 96% rename from daprdocs/content/en/operations/components/setup-bindings/supported-bindings/sns.md rename to daprdocs/content/en/reference/components-reference/supported-bindings/sns.md index 5f45d1c41..29a87bc3a 100644 --- a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/sns.md +++ b/daprdocs/content/en/reference/components-reference/supported-bindings/sns.md @@ -3,6 +3,8 @@ type: docs title: "AWS SNS binding spec" linkTitle: "AWS SNS" description: "Detailed documentation on the AWS SNS binding component" +aliases: + - "/operations/components/setup-bindings/supported-bindings/sns/" --- ## Component format diff --git a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/sqs.md b/daprdocs/content/en/reference/components-reference/supported-bindings/sqs.md similarity index 96% rename from daprdocs/content/en/operations/components/setup-bindings/supported-bindings/sqs.md rename to daprdocs/content/en/reference/components-reference/supported-bindings/sqs.md index e229f1ad1..0e97802d0 100644 --- a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/sqs.md +++ b/daprdocs/content/en/reference/components-reference/supported-bindings/sqs.md @@ -3,6 +3,8 @@ type: docs title: "AWS SQS binding spec" linkTitle: "AWS SQS" description: "Detailed documentation on the AWS SQS binding component" +aliases: + - "/operations/components/setup-bindings/supported-bindings/sqs/" --- ## Component format diff --git a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/storagequeues.md b/daprdocs/content/en/reference/components-reference/supported-bindings/storagequeues.md similarity index 96% rename from daprdocs/content/en/operations/components/setup-bindings/supported-bindings/storagequeues.md rename to daprdocs/content/en/reference/components-reference/supported-bindings/storagequeues.md index c075031cb..a4814664c 100644 --- a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/storagequeues.md +++ b/daprdocs/content/en/reference/components-reference/supported-bindings/storagequeues.md @@ -3,6 +3,8 @@ type: docs title: "Azure Storage Queues binding spec" linkTitle: "Azure Storage Queues" description: "Detailed documentation on the Azure Storage Queues binding component" +aliases: + - "/operations/components/setup-bindings/supported-bindings/storagequeues/" --- ## Component format diff --git a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/twilio.md b/daprdocs/content/en/reference/components-reference/supported-bindings/twilio.md similarity index 95% rename from daprdocs/content/en/operations/components/setup-bindings/supported-bindings/twilio.md rename to daprdocs/content/en/reference/components-reference/supported-bindings/twilio.md index df5994b36..9d158e72d 100644 --- a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/twilio.md +++ b/daprdocs/content/en/reference/components-reference/supported-bindings/twilio.md @@ -3,6 +3,8 @@ type: docs title: "Twilio SMS binding spec" linkTitle: "Twilio SMS" description: "Detailed documentation on the Twilio SMS binding component" +aliases: + - "/operations/components/setup-bindings/supported-bindings/twilio/" --- ## Component format diff --git a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/twitter.md b/daprdocs/content/en/reference/components-reference/supported-bindings/twitter.md similarity index 97% rename from daprdocs/content/en/operations/components/setup-bindings/supported-bindings/twitter.md rename to daprdocs/content/en/reference/components-reference/supported-bindings/twitter.md index 81f4ff654..66511892a 100644 --- a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/twitter.md +++ b/daprdocs/content/en/reference/components-reference/supported-bindings/twitter.md @@ -3,6 +3,8 @@ type: docs title: "Twitter binding spec" linkTitle: "Twitter" description: "Detailed documentation on the Twitter binding component" +aliases: + - "/operations/components/setup-bindings/supported-bindings/twitter/" --- ## Component format diff --git a/daprdocs/content/en/operations/components/setup-pubsub/supported-pubsub/_index.md b/daprdocs/content/en/reference/components-reference/supported-pubsub/_index.md similarity index 95% rename from daprdocs/content/en/operations/components/setup-pubsub/supported-pubsub/_index.md rename to daprdocs/content/en/reference/components-reference/supported-pubsub/_index.md index ef1fc71c6..15f1a4b57 100644 --- a/daprdocs/content/en/operations/components/setup-pubsub/supported-pubsub/_index.md +++ b/daprdocs/content/en/reference/components-reference/supported-pubsub/_index.md @@ -1,9 +1,11 @@ --- type: docs title: "Supported pub/sub brokers" -linkTitle: "Supported pub/sub brokers" -weight: 30000 +linkTitle: "Pub/sub brokers" +weight: 2000 description: The supported pub/sub brokers that interface with Dapr +aliases: + - "/operations/components/setup-pubsub/supported-pubsub/" no_list: true --- diff --git a/daprdocs/content/en/operations/components/setup-pubsub/supported-pubsub/setup-apache-kafka.md b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-apache-kafka.md similarity index 95% rename from daprdocs/content/en/operations/components/setup-pubsub/supported-pubsub/setup-apache-kafka.md rename to daprdocs/content/en/reference/components-reference/supported-pubsub/setup-apache-kafka.md index e2907b6ce..32381b2f6 100644 --- a/daprdocs/content/en/operations/components/setup-pubsub/supported-pubsub/setup-apache-kafka.md +++ b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-apache-kafka.md @@ -3,6 +3,8 @@ type: docs title: "Apache Kafka" linkTitle: "Apache Kafka" description: "Detailed documentation on the Apache Kafka pubsub component" +aliases: + - "/operations/components/setup-pubsub/supported-pubsub/setup-apache-kafka/" --- ## Component format diff --git a/daprdocs/content/en/operations/components/setup-pubsub/supported-pubsub/setup-aws-snssqs.md b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-aws-snssqs.md similarity index 98% rename from daprdocs/content/en/operations/components/setup-pubsub/supported-pubsub/setup-aws-snssqs.md rename to daprdocs/content/en/reference/components-reference/supported-pubsub/setup-aws-snssqs.md index 3941e586c..cca8de9b9 100644 --- a/daprdocs/content/en/operations/components/setup-pubsub/supported-pubsub/setup-aws-snssqs.md +++ b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-aws-snssqs.md @@ -3,6 +3,8 @@ type: docs title: "AWS SNS/SQS" linkTitle: "AWS SNS/SQS" description: "Detailed documentation on the AWS SNS/SQS pubsub component" +aliases: + - "/operations/components/setup-pubsub/supported-pubsub/setup-aws-snssqs/" --- ## Component format diff --git a/daprdocs/content/en/operations/components/setup-pubsub/supported-pubsub/setup-azure-eventhubs.md b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-azure-eventhubs.md similarity index 97% rename from daprdocs/content/en/operations/components/setup-pubsub/supported-pubsub/setup-azure-eventhubs.md rename to daprdocs/content/en/reference/components-reference/supported-pubsub/setup-azure-eventhubs.md index ef16efc35..7539b9c0e 100644 --- a/daprdocs/content/en/operations/components/setup-pubsub/supported-pubsub/setup-azure-eventhubs.md +++ b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-azure-eventhubs.md @@ -3,6 +3,8 @@ type: docs title: "Azure Events Hub" linkTitle: "Azure Events Hub" description: "Detailed documentation on the Azure Event Hubs pubsub component" +aliases: + - "/operations/components/setup-pubsub/supported-pubsub/setup-azure-eventhubs/" --- ## Component format diff --git a/daprdocs/content/en/operations/components/setup-pubsub/supported-pubsub/setup-azure-servicebus.md b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-azure-servicebus.md similarity index 97% rename from daprdocs/content/en/operations/components/setup-pubsub/supported-pubsub/setup-azure-servicebus.md rename to daprdocs/content/en/reference/components-reference/supported-pubsub/setup-azure-servicebus.md index c43196cc9..584151831 100644 --- a/daprdocs/content/en/operations/components/setup-pubsub/supported-pubsub/setup-azure-servicebus.md +++ b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-azure-servicebus.md @@ -3,6 +3,8 @@ type: docs title: "Azure Service Bus" linkTitle: "Azure Service Bus" description: "Detailed documentation on the Azure Service Bus pubsub component" +aliases: + - "/operations/components/setup-pubsub/supported-pubsub/setup-azure-servicebus/" --- ## Component format diff --git a/daprdocs/content/en/operations/components/setup-pubsub/supported-pubsub/setup-gcp-pubsub.md b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-gcp-pubsub.md similarity index 96% rename from daprdocs/content/en/operations/components/setup-pubsub/supported-pubsub/setup-gcp-pubsub.md rename to daprdocs/content/en/reference/components-reference/supported-pubsub/setup-gcp-pubsub.md index 07767d8da..d99d1c13f 100644 --- a/daprdocs/content/en/operations/components/setup-pubsub/supported-pubsub/setup-gcp-pubsub.md +++ b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-gcp-pubsub.md @@ -5,6 +5,7 @@ linkTitle: "GCP Pub/Sub" description: "Detailed documentation on the GCP Pub/Sub component" aliases: - "/operations/components/setup-pubsub/supported-pubsub/setup-gcp/" + - "/operations/components/setup-pubsub/supported-pubsub/setup-gcp-pubsub/" --- ## Create a Dapr component diff --git a/daprdocs/content/en/operations/components/setup-pubsub/supported-pubsub/setup-hazelcast.md b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-hazelcast.md similarity index 94% rename from daprdocs/content/en/operations/components/setup-pubsub/supported-pubsub/setup-hazelcast.md rename to daprdocs/content/en/reference/components-reference/supported-pubsub/setup-hazelcast.md index 093042659..1518dffb9 100644 --- a/daprdocs/content/en/operations/components/setup-pubsub/supported-pubsub/setup-hazelcast.md +++ b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-hazelcast.md @@ -3,6 +3,8 @@ type: docs title: "Hazelcast" linkTitle: "Hazelcast" description: "Detailed documentation on the Hazelcast pubsub component" +aliases: + - "/operations/components/setup-pubsub/supported-pubsub/setup-hazelcast/" --- ## Component format diff --git a/daprdocs/content/en/operations/components/setup-pubsub/supported-pubsub/setup-mqtt.md b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-mqtt.md similarity index 98% rename from daprdocs/content/en/operations/components/setup-pubsub/supported-pubsub/setup-mqtt.md rename to daprdocs/content/en/reference/components-reference/supported-pubsub/setup-mqtt.md index 6d039d9ce..aed40cb0b 100644 --- a/daprdocs/content/en/operations/components/setup-pubsub/supported-pubsub/setup-mqtt.md +++ b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-mqtt.md @@ -3,6 +3,8 @@ type: docs title: "MQTT" linkTitle: "MQTT" description: "Detailed documentation on the MQTT pubsub component" +aliases: + - "/operations/components/setup-pubsub/supported-pubsub/setup-mqtt/" --- ## Component format diff --git a/daprdocs/content/en/operations/components/setup-pubsub/supported-pubsub/setup-nats-streaming.md b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-nats-streaming.md similarity index 98% rename from daprdocs/content/en/operations/components/setup-pubsub/supported-pubsub/setup-nats-streaming.md rename to daprdocs/content/en/reference/components-reference/supported-pubsub/setup-nats-streaming.md index e8fb5d5a5..1f691139f 100644 --- a/daprdocs/content/en/operations/components/setup-pubsub/supported-pubsub/setup-nats-streaming.md +++ b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-nats-streaming.md @@ -3,6 +3,8 @@ type: docs title: "NATS Streaming" linkTitle: "NATS Streaming" description: "Detailed documentation on the NATS Streaming pubsub component" +aliases: + - "/operations/components/setup-pubsub/supported-pubsub/setup-nats-streaming/" --- ## Component format diff --git a/daprdocs/content/en/operations/components/setup-pubsub/supported-pubsub/setup-pulsar.md b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-pulsar.md similarity index 92% rename from daprdocs/content/en/operations/components/setup-pubsub/supported-pubsub/setup-pulsar.md rename to daprdocs/content/en/reference/components-reference/supported-pubsub/setup-pulsar.md index 199e5e0f2..cfa6eb7c9 100644 --- a/daprdocs/content/en/operations/components/setup-pubsub/supported-pubsub/setup-pulsar.md +++ b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-pulsar.md @@ -3,6 +3,8 @@ type: docs title: "Pulsar" linkTitle: "Pulsar" description: "Detailed documentation on the Pulsar pubsub component" +aliases: + - "/operations/components/setup-pubsub/supported-pubsub/setup-pulsar/" --- ## Component format diff --git a/daprdocs/content/en/operations/components/setup-pubsub/supported-pubsub/setup-rabbitmq.md b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-rabbitmq.md similarity index 97% rename from daprdocs/content/en/operations/components/setup-pubsub/supported-pubsub/setup-rabbitmq.md rename to daprdocs/content/en/reference/components-reference/supported-pubsub/setup-rabbitmq.md index 855251a94..f00eefd37 100644 --- a/daprdocs/content/en/operations/components/setup-pubsub/supported-pubsub/setup-rabbitmq.md +++ b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-rabbitmq.md @@ -3,6 +3,8 @@ type: docs title: "RabbitMQ" linkTitle: "RabbitMQ" description: "Detailed documentation on the RabbitMQ pubsub component" +aliases: + - "/operations/components/setup-pubsub/supported-pubsub/setup-rabbitmq/" --- ## Component format diff --git a/daprdocs/content/en/operations/components/setup-pubsub/supported-pubsub/setup-redis-pubsub.md b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-redis-pubsub.md similarity index 97% rename from daprdocs/content/en/operations/components/setup-pubsub/supported-pubsub/setup-redis-pubsub.md rename to daprdocs/content/en/reference/components-reference/supported-pubsub/setup-redis-pubsub.md index 173952b2b..417cb5561 100644 --- a/daprdocs/content/en/operations/components/setup-pubsub/supported-pubsub/setup-redis-pubsub.md +++ b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-redis-pubsub.md @@ -3,6 +3,8 @@ type: docs title: "Redis Streams" linkTitle: "Redis Streams" description: "Detailed documentation on the Redis Streams pubsub component" +aliases: + - "/operations/components/setup-pubsub/supported-pubsub/setup-redis-pubsub/" --- ## Component format diff --git a/daprdocs/content/en/operations/components/setup-secret-store/supported-secret-stores/_index.md b/daprdocs/content/en/reference/components-reference/supported-secret-stores/_index.md similarity index 95% rename from daprdocs/content/en/operations/components/setup-secret-store/supported-secret-stores/_index.md rename to daprdocs/content/en/reference/components-reference/supported-secret-stores/_index.md index ee5692974..88010446d 100644 --- a/daprdocs/content/en/operations/components/setup-secret-store/supported-secret-stores/_index.md +++ b/daprdocs/content/en/reference/components-reference/supported-secret-stores/_index.md @@ -1,9 +1,11 @@ --- type: docs title: "Supported secret stores" -linkTitle: "Supported secret stores" -weight: 30000 +linkTitle: "Secret stores" +weight: 4000 description: The supported secret stores that interface with Dapr +aliases: + - "/operations/components/setup-secret-store/supported-secret-stores/" no_list: true --- diff --git a/daprdocs/content/en/operations/components/setup-secret-store/supported-secret-stores/aws-parameter-store.md b/daprdocs/content/en/reference/components-reference/supported-secret-stores/aws-parameter-store.md similarity index 87% rename from daprdocs/content/en/operations/components/setup-secret-store/supported-secret-stores/aws-parameter-store.md rename to daprdocs/content/en/reference/components-reference/supported-secret-stores/aws-parameter-store.md index 2aa797c2d..58a076196 100644 --- a/daprdocs/content/en/operations/components/setup-secret-store/supported-secret-stores/aws-parameter-store.md +++ b/daprdocs/content/en/reference/components-reference/supported-secret-stores/aws-parameter-store.md @@ -3,11 +3,13 @@ type: docs title: "AWS SSM Parameter Store" linkTitle: "AWS SSM Parameter Store" description: Detailed information on the AWS SSM Parameter Store - secret store component +aliases: + - "/operations/components/setup-secret-store/supported-secret-stores/aws-parameter-store/" --- ## Component format -To setup AWS SSM Parameter Store secret store create a component of type `secretstores.aws.parameterstore`. See [this guide]({{< ref "secret-stores-overview.md#apply-the-configuration" >}}) on how to create and apply a secretstore configuration. See this guide on [referencing secrets]({{< ref component-secrets.md >}}) to retrieve and use the secret with Dapr components. +To setup AWS SSM Parameter Store secret store create a component of type `secretstores.aws.parameterstore`. See [this guide]({{< ref "setup-secret-store.md#apply-the-configuration" >}}) on how to create and apply a secretstore configuration. See this guide on [referencing secrets]({{< ref component-secrets.md >}}) to retrieve and use the secret with Dapr components. See [Authenticating to AWS]({{< ref authenticating-aws.md >}}) for information about authentication-related attributes. diff --git a/daprdocs/content/en/operations/components/setup-secret-store/supported-secret-stores/aws-secret-manager.md b/daprdocs/content/en/reference/components-reference/supported-secret-stores/aws-secret-manager.md similarity index 87% rename from daprdocs/content/en/operations/components/setup-secret-store/supported-secret-stores/aws-secret-manager.md rename to daprdocs/content/en/reference/components-reference/supported-secret-stores/aws-secret-manager.md index 686958735..b2a2099f8 100644 --- a/daprdocs/content/en/operations/components/setup-secret-store/supported-secret-stores/aws-secret-manager.md +++ b/daprdocs/content/en/reference/components-reference/supported-secret-stores/aws-secret-manager.md @@ -3,11 +3,13 @@ type: docs title: "AWS Secrets Manager" linkTitle: "AWS Secrets Manager" description: Detailed information on the decret store component +aliases: + - "/operations/components/setup-secret-store/supported-secret-stores/aws-secret-manager/" --- ## Component format -To setup AWS Secrets Manager secret store create a component of type `secretstores.aws.secretmanager`. See [this guide]({{< ref "secret-stores-overview.md#apply-the-configuration" >}}) on how to create and apply a secretstore configuration. See this guide on [referencing secrets]({{< ref component-secrets.md >}}) to retrieve and use the secret with Dapr components. +To setup AWS Secrets Manager secret store create a component of type `secretstores.aws.secretmanager`. See [this guide]({{< ref "setup-secret-store.md#apply-the-configuration" >}}) on how to create and apply a secretstore configuration. See this guide on [referencing secrets]({{< ref component-secrets.md >}}) to retrieve and use the secret with Dapr components. See [Authenticating to AWS]({{< ref authenticating-aws.md >}}) for information about authentication-related attributes. diff --git a/daprdocs/content/en/operations/components/setup-secret-store/supported-secret-stores/azure-keyvault-managed-identity.md b/daprdocs/content/en/reference/components-reference/supported-secret-stores/azure-keyvault-managed-identity.md similarity index 94% rename from daprdocs/content/en/operations/components/setup-secret-store/supported-secret-stores/azure-keyvault-managed-identity.md rename to daprdocs/content/en/reference/components-reference/supported-secret-stores/azure-keyvault-managed-identity.md index 125277aa1..f42d83594 100644 --- a/daprdocs/content/en/operations/components/setup-secret-store/supported-secret-stores/azure-keyvault-managed-identity.md +++ b/daprdocs/content/en/reference/components-reference/supported-secret-stores/azure-keyvault-managed-identity.md @@ -3,11 +3,13 @@ type: docs title: "Azure Key Vault with Managed Identities on Kubernetes" linkTitle: "Azure Key Vault w/ Managed Identity" description: How to configure Azure Key Vault and Kubernetes to use Azure Managed Identities to access secrets +aliases: + - "/operations/components/setup-secret-store/supported-secret-stores/azure-keyvault-managed-identity/" --- ## Component format -To setup Azure Key Vault secret store with Managed Identies create a component of type `secretstores.azure.keyvault`. See [this guide]({{< ref "secret-stores-overview.md#apply-the-configuration" >}}) on how to create and apply a secretstore configuration. See this guide on [referencing secrets]({{< ref component-secrets.md >}}) to retrieve and use the secret with Dapr components. +To setup Azure Key Vault secret store with Managed Identies create a component of type `secretstores.azure.keyvault`. See [this guide]({{< ref "setup-secret-store.md#apply-the-configuration" >}}) on how to create and apply a secretstore configuration. See this guide on [referencing secrets]({{< ref component-secrets.md >}}) to retrieve and use the secret with Dapr components. In Kubernetes mode, you store the certificate for the service principal into the Kubernetes Secret Store and then enable Azure Key Vault secret store with this certificate in Kubernetes secretstore. diff --git a/daprdocs/content/en/operations/components/setup-secret-store/supported-secret-stores/azure-keyvault.md b/daprdocs/content/en/reference/components-reference/supported-secret-stores/azure-keyvault.md similarity index 95% rename from daprdocs/content/en/operations/components/setup-secret-store/supported-secret-stores/azure-keyvault.md rename to daprdocs/content/en/reference/components-reference/supported-secret-stores/azure-keyvault.md index 555df3ea0..77480839d 100644 --- a/daprdocs/content/en/operations/components/setup-secret-store/supported-secret-stores/azure-keyvault.md +++ b/daprdocs/content/en/reference/components-reference/supported-secret-stores/azure-keyvault.md @@ -3,6 +3,8 @@ type: docs title: "Azure Key Vault secret store" linkTitle: "Azure Key Vault" description: Detailed information on the Azure Key Vault secret store component +aliases: + - "/operations/components/setup-secret-store/supported-secret-stores/azure-keyvault/" --- {{% alert title="Note" color="primary" %}} @@ -11,7 +13,7 @@ Azure Managed Identity can be used for Azure Key Vault access on Kubernetes. Ins ## Component format -To setup Azure Key Vault secret store create a component of type `secretstores.azure.keyvault`. See [this guide]({{< ref "secret-stores-overview.md#apply-the-configuration" >}}) on how to create and apply a secretstore configuration. See this guide on [referencing secrets]({{< ref component-secrets.md >}}) to retrieve and use the secret with Dapr components. +To setup Azure Key Vault secret store create a component of type `secretstores.azure.keyvault`. See [this guide]({{< ref "setup-secret-store.md#apply-the-configuration" >}}) on how to create and apply a secretstore configuration. See this guide on [referencing secrets]({{< ref component-secrets.md >}}) to retrieve and use the secret with Dapr components. See also [configure the component](#configure-the-component) guide in this page. diff --git a/daprdocs/content/en/operations/components/setup-secret-store/supported-secret-stores/envvar-secret-store.md b/daprdocs/content/en/reference/components-reference/supported-secret-stores/envvar-secret-store.md similarity index 86% rename from daprdocs/content/en/operations/components/setup-secret-store/supported-secret-stores/envvar-secret-store.md rename to daprdocs/content/en/reference/components-reference/supported-secret-stores/envvar-secret-store.md index e1c2550b9..7a336472a 100644 --- a/daprdocs/content/en/operations/components/setup-secret-store/supported-secret-stores/envvar-secret-store.md +++ b/daprdocs/content/en/reference/components-reference/supported-secret-stores/envvar-secret-store.md @@ -3,6 +3,8 @@ type: docs title: "Local environment variables (for Development)" linkTitle: "Local environment variables" description: Detailed information on the local environment secret store component +aliases: + - "/operations/components/setup-secret-store/supported-secret-stores/envvar-secret-store/" --- This Dapr secret store component uses locally defined environment variable and does not use authentication. diff --git a/daprdocs/content/en/operations/components/setup-secret-store/supported-secret-stores/file-secret-store.md b/daprdocs/content/en/reference/components-reference/supported-secret-stores/file-secret-store.md similarity index 95% rename from daprdocs/content/en/operations/components/setup-secret-store/supported-secret-stores/file-secret-store.md rename to daprdocs/content/en/reference/components-reference/supported-secret-stores/file-secret-store.md index 56acee2db..a0ae0350a 100644 --- a/daprdocs/content/en/operations/components/setup-secret-store/supported-secret-stores/file-secret-store.md +++ b/daprdocs/content/en/reference/components-reference/supported-secret-stores/file-secret-store.md @@ -3,6 +3,8 @@ type: docs title: "Local file (for Development)" linkTitle: "Local file" description: Detailed information on the local file secret store component +aliases: + - "/operations/components/setup-secret-store/supported-secret-stores/file-secret-store/" --- This Dapr secret store component reads plain text JSON from a given file and does not use authentication. diff --git a/daprdocs/content/en/operations/components/setup-secret-store/supported-secret-stores/gcp-secret-manager.md b/daprdocs/content/en/reference/components-reference/supported-secret-stores/gcp-secret-manager.md similarity index 90% rename from daprdocs/content/en/operations/components/setup-secret-store/supported-secret-stores/gcp-secret-manager.md rename to daprdocs/content/en/reference/components-reference/supported-secret-stores/gcp-secret-manager.md index 5f67cadf5..0a82bca84 100644 --- a/daprdocs/content/en/operations/components/setup-secret-store/supported-secret-stores/gcp-secret-manager.md +++ b/daprdocs/content/en/reference/components-reference/supported-secret-stores/gcp-secret-manager.md @@ -3,11 +3,13 @@ type: docs title: "GCP Secret Manager" linkTitle: "GCP Secret Manager" description: Detailed information on the GCP Secret Manager secret store component +aliases: + - "/operations/components/setup-secret-store/supported-secret-stores/gcp-secret-manager/" --- ## Component format -To setup GCP Secret Manager secret store create a component of type `secretstores.gcp.secretmanager`. See [this guide]({{< ref "secret-stores-overview.md#apply-the-configuration" >}}) on how to create and apply a secretstore configuration. See this guide on [referencing secrets]({{< ref component-secrets.md >}}) to retrieve and use the secret with Dapr components. +To setup GCP Secret Manager secret store create a component of type `secretstores.gcp.secretmanager`. See [this guide]({{< ref "setup-secret-store#apply-the-configuration" >}}) on how to create and apply a secretstore configuration. See this guide on [referencing secrets]({{< ref component-secrets.md >}}) to retrieve and use the secret with Dapr components. ```yaml apiVersion: dapr.io/v1alpha1 diff --git a/daprdocs/content/en/operations/components/setup-secret-store/supported-secret-stores/hashicorp-vault.md b/daprdocs/content/en/reference/components-reference/supported-secret-stores/hashicorp-vault.md similarity index 88% rename from daprdocs/content/en/operations/components/setup-secret-store/supported-secret-stores/hashicorp-vault.md rename to daprdocs/content/en/reference/components-reference/supported-secret-stores/hashicorp-vault.md index 583f80780..2463f0e2f 100644 --- a/daprdocs/content/en/operations/components/setup-secret-store/supported-secret-stores/hashicorp-vault.md +++ b/daprdocs/content/en/reference/components-reference/supported-secret-stores/hashicorp-vault.md @@ -3,11 +3,13 @@ type: docs title: "HashiCorp Vault" linkTitle: "HashiCorp Vault" description: Detailed information on the HashiCorp Vault secret store component +aliases: + - "/operations/components/setup-secret-store/supported-secret-stores/hashicorp-vault/" --- ## Create the Vault component -To setup HashiCorp Vault secret store create a component of type `secretstores.hashicorp.vault`. See [this guide]({{< ref "secret-stores-overview.md#apply-the-configuration" >}}) on how to create and apply a secretstore configuration. See this guide on [referencing secrets]({{< ref component-secrets.md >}}) to retrieve and use the secret with Dapr components. +To setup HashiCorp Vault secret store create a component of type `secretstores.hashicorp.vault`. See [this guide]({{< ref "setup-secret-store.md#apply-the-configuration" >}}) on how to create and apply a secretstore configuration. See this guide on [referencing secrets]({{< ref component-secrets.md >}}) to retrieve and use the secret with Dapr components. ```yaml apiVersion: dapr.io/v1alpha1 diff --git a/daprdocs/content/en/operations/components/setup-secret-store/supported-secret-stores/kubernetes-secret-store.md b/daprdocs/content/en/reference/components-reference/supported-secret-stores/kubernetes-secret-store.md similarity index 88% rename from daprdocs/content/en/operations/components/setup-secret-store/supported-secret-stores/kubernetes-secret-store.md rename to daprdocs/content/en/reference/components-reference/supported-secret-stores/kubernetes-secret-store.md index 540694ee0..7fba210fa 100644 --- a/daprdocs/content/en/operations/components/setup-secret-store/supported-secret-stores/kubernetes-secret-store.md +++ b/daprdocs/content/en/reference/components-reference/supported-secret-stores/kubernetes-secret-store.md @@ -3,6 +3,8 @@ type: docs title: "Kubernetes secrets" linkTitle: "Kubernetes secrets" description: Detailed information on the Kubernetes secret store component +aliases: + - "/operations/components/setup-secret-store/supported-secret-stores/kubernetes-secret-store/" --- ## Summary diff --git a/daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/_index.md b/daprdocs/content/en/reference/components-reference/supported-state-stores/_index.md similarity index 97% rename from daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/_index.md rename to daprdocs/content/en/reference/components-reference/supported-state-stores/_index.md index d7da25534..358e5e203 100644 --- a/daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/_index.md +++ b/daprdocs/content/en/reference/components-reference/supported-state-stores/_index.md @@ -1,9 +1,11 @@ --- type: docs title: "Supported state stores" -linkTitle: "Supported state stores" +linkTitle: "State stores" description: "The supported state stores that interface with Dapr" -weight: 20000 +weight: 1000 +aliases: + - "/operations/components/setup-state-store/supported-state-stores/" no_list: true --- diff --git a/daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-aerospike.md b/daprdocs/content/en/reference/components-reference/supported-state-stores/setup-aerospike.md similarity index 96% rename from daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-aerospike.md rename to daprdocs/content/en/reference/components-reference/supported-state-stores/setup-aerospike.md index 24bfb08c4..ea1b30dd7 100644 --- a/daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-aerospike.md +++ b/daprdocs/content/en/reference/components-reference/supported-state-stores/setup-aerospike.md @@ -3,6 +3,8 @@ type: docs title: "Aerospike" linkTitle: "Aerospike" description: Detailed information on the Aerospike state store component +aliases: + - "/operations/components/setup-state-store/supported-state-stores/setup-aerospike/" --- ## Component format diff --git a/daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-azure-blobstorage.md b/daprdocs/content/en/reference/components-reference/supported-state-stores/setup-azure-blobstorage.md similarity index 97% rename from daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-azure-blobstorage.md rename to daprdocs/content/en/reference/components-reference/supported-state-stores/setup-azure-blobstorage.md index 7318b016d..5ab7d53f9 100644 --- a/daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-azure-blobstorage.md +++ b/daprdocs/content/en/reference/components-reference/supported-state-stores/setup-azure-blobstorage.md @@ -3,6 +3,8 @@ type: docs title: "Azure Blob Storage" linkTitle: "Azure Blob Storage" description: Detailed information on the Azure Blob Store state store component +aliases: + - "/operations/components/setup-state-store/supported-state-stores/setup-azure-blobstorage/" --- ## Component format diff --git a/daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-azure-cosmosdb.md b/daprdocs/content/en/reference/components-reference/supported-state-stores/setup-azure-cosmosdb.md similarity index 97% rename from daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-azure-cosmosdb.md rename to daprdocs/content/en/reference/components-reference/supported-state-stores/setup-azure-cosmosdb.md index 8ed86ffe6..9992f8711 100644 --- a/daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-azure-cosmosdb.md +++ b/daprdocs/content/en/reference/components-reference/supported-state-stores/setup-azure-cosmosdb.md @@ -3,6 +3,8 @@ type: docs title: "Azure Cosmos DB" linkTitle: "Azure Cosmos DB" description: Detailed information on the Azure CosmosDB state store component +aliases: + - "/operations/components/setup-state-store/supported-state-stores/setup-azure-cosmosdb/" --- ## Component format diff --git a/daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-azure-tablestorage.md b/daprdocs/content/en/reference/components-reference/supported-state-stores/setup-azure-tablestorage.md similarity index 97% rename from daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-azure-tablestorage.md rename to daprdocs/content/en/reference/components-reference/supported-state-stores/setup-azure-tablestorage.md index d7cb3b9bc..c2a472689 100644 --- a/daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-azure-tablestorage.md +++ b/daprdocs/content/en/reference/components-reference/supported-state-stores/setup-azure-tablestorage.md @@ -3,6 +3,8 @@ type: docs title: "Azure Table Storage " linkTitle: "Azure Table Storage " description: Detailed information on the Azure Table Storage state store component +aliases: + - "/operations/components/setup-state-store/supported-state-stores/setup-azure-tablestorage/" --- ## Component format diff --git a/daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-cassandra.md b/daprdocs/content/en/reference/components-reference/supported-state-stores/setup-cassandra.md similarity index 97% rename from daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-cassandra.md rename to daprdocs/content/en/reference/components-reference/supported-state-stores/setup-cassandra.md index f010aa401..e7d267dda 100644 --- a/daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-cassandra.md +++ b/daprdocs/content/en/reference/components-reference/supported-state-stores/setup-cassandra.md @@ -3,6 +3,8 @@ type: docs title: "Cassandra" linkTitle: "Cassandra" description: Detailed information on the Cassandra state store component +aliases: + - "/operations/components/setup-state-store/supported-state-stores/setup-cassandra/" --- ## Component format diff --git a/daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-cloudstate.md b/daprdocs/content/en/reference/components-reference/supported-state-stores/setup-cloudstate.md similarity index 98% rename from daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-cloudstate.md rename to daprdocs/content/en/reference/components-reference/supported-state-stores/setup-cloudstate.md index 7f56bf636..a246a7859 100644 --- a/daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-cloudstate.md +++ b/daprdocs/content/en/reference/components-reference/supported-state-stores/setup-cloudstate.md @@ -3,6 +3,8 @@ type: docs title: "Cloudstate" linkTitle: "Cloudstate" description: Detailed information on the Cloudstate state store component +aliases: + - "/operations/components/setup-state-store/supported-state-stores/setup-cloudstate/" --- ## Component format diff --git a/daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-consul.md b/daprdocs/content/en/reference/components-reference/supported-state-stores/setup-consul.md similarity index 96% rename from daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-consul.md rename to daprdocs/content/en/reference/components-reference/supported-state-stores/setup-consul.md index 7ef6b9d6f..6f3511391 100644 --- a/daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-consul.md +++ b/daprdocs/content/en/reference/components-reference/supported-state-stores/setup-consul.md @@ -3,6 +3,8 @@ type: docs title: "HashiCorp Consul" linkTitle: "HashiCorp Consul" description: Detailed information on the HashiCorp Consul state store component +aliases: + - "/operations/components/setup-state-store/supported-state-stores/setup-consul/" --- ## Component format diff --git a/daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-couchbase.md b/daprdocs/content/en/reference/components-reference/supported-state-stores/setup-couchbase.md similarity index 96% rename from daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-couchbase.md rename to daprdocs/content/en/reference/components-reference/supported-state-stores/setup-couchbase.md index 489744403..170ac7c33 100644 --- a/daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-couchbase.md +++ b/daprdocs/content/en/reference/components-reference/supported-state-stores/setup-couchbase.md @@ -3,6 +3,8 @@ type: docs title: "Couchbase" linkTitle: "Couchbase" description: Detailed information on the Couchbase state store component +aliases: + - "/operations/components/setup-state-store/supported-state-stores/setup-couchbase/" --- ## Component format diff --git a/daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-dynamodb.md b/daprdocs/content/en/reference/components-reference/supported-state-stores/setup-dynamodb.md similarity index 96% rename from daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-dynamodb.md rename to daprdocs/content/en/reference/components-reference/supported-state-stores/setup-dynamodb.md index fa1fcf9d9..3aa120d6a 100644 --- a/daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-dynamodb.md +++ b/daprdocs/content/en/reference/components-reference/supported-state-stores/setup-dynamodb.md @@ -3,6 +3,8 @@ type: docs title: "AWS DynamoDB" linkTitle: "AWS DynamoDB" description: Detailed information on the AWS DynamoDB state store component +aliases: + - "/operations/components/setup-state-store/supported-state-stores/setup-dynamodb/" --- ## Component format diff --git a/daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-firestore.md b/daprdocs/content/en/reference/components-reference/supported-state-stores/setup-firestore.md similarity index 97% rename from daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-firestore.md rename to daprdocs/content/en/reference/components-reference/supported-state-stores/setup-firestore.md index de42cc4f1..9898b5c39 100644 --- a/daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-firestore.md +++ b/daprdocs/content/en/reference/components-reference/supported-state-stores/setup-firestore.md @@ -3,6 +3,8 @@ type: docs title: "GCP Firestore (Datastore mode)" linkTitle: "GCP Firestore" description: Detailed information on the GCP Firestore state store component +aliases: + - "/operations/components/setup-state-store/supported-state-stores/setup-firestore/" --- ## Component format diff --git a/daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-hazelcast.md b/daprdocs/content/en/reference/components-reference/supported-state-stores/setup-hazelcast.md similarity index 95% rename from daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-hazelcast.md rename to daprdocs/content/en/reference/components-reference/supported-state-stores/setup-hazelcast.md index 742f2e1e3..6d02e8131 100644 --- a/daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-hazelcast.md +++ b/daprdocs/content/en/reference/components-reference/supported-state-stores/setup-hazelcast.md @@ -3,6 +3,8 @@ type: docs title: "Hazelcast" linkTitle: "Hazelcast" description: Detailed information on the Hazelcast state store component +aliases: + - "/operations/components/setup-state-store/supported-state-stores/setup-hazelcast/" --- ## Create a Dapr component diff --git a/daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-memcached.md b/daprdocs/content/en/reference/components-reference/supported-state-stores/setup-memcached.md similarity index 96% rename from daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-memcached.md rename to daprdocs/content/en/reference/components-reference/supported-state-stores/setup-memcached.md index 109bec178..d2df204d5 100644 --- a/daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-memcached.md +++ b/daprdocs/content/en/reference/components-reference/supported-state-stores/setup-memcached.md @@ -3,6 +3,8 @@ type: docs title: "Memcached" linkTitle: "Memcached" description: Detailed information on the Memcached state store component +aliases: + - "/operations/components/setup-state-store/supported-state-stores/setup-memcached/" --- ## Component format diff --git a/daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-mongodb.md b/daprdocs/content/en/reference/components-reference/supported-state-stores/setup-mongodb.md similarity index 97% rename from daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-mongodb.md rename to daprdocs/content/en/reference/components-reference/supported-state-stores/setup-mongodb.md index d0d48d46f..9184b166d 100644 --- a/daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-mongodb.md +++ b/daprdocs/content/en/reference/components-reference/supported-state-stores/setup-mongodb.md @@ -3,6 +3,8 @@ type: docs title: "MongoDB" linkTitle: "MongoDB" description: Detailed information on the MongoDB state store component +aliases: + - "/operations/components/setup-state-store/supported-state-stores/setup-mongodb/" --- ## Component format diff --git a/daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-mysql.md b/daprdocs/content/en/reference/components-reference/supported-state-stores/setup-mysql.md similarity index 98% rename from daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-mysql.md rename to daprdocs/content/en/reference/components-reference/supported-state-stores/setup-mysql.md index 434a7bf8f..c5986ded2 100644 --- a/daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-mysql.md +++ b/daprdocs/content/en/reference/components-reference/supported-state-stores/setup-mysql.md @@ -3,6 +3,8 @@ type: docs title: "MySQL" linkTitle: "MySQL" description: Detailed information on the MySQL state store component +aliases: + - "/operations/components/setup-state-store/supported-state-stores/setup-mysql/" --- ## Component format diff --git a/daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-postgresql.md b/daprdocs/content/en/reference/components-reference/supported-state-stores/setup-postgresql.md similarity index 96% rename from daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-postgresql.md rename to daprdocs/content/en/reference/components-reference/supported-state-stores/setup-postgresql.md index adc4c789e..3bc0c1fc4 100644 --- a/daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-postgresql.md +++ b/daprdocs/content/en/reference/components-reference/supported-state-stores/setup-postgresql.md @@ -3,6 +3,8 @@ type: docs title: "PostgreSQL" linkTitle: "PostgreSQL" description: Detailed information on the PostgreSQL state store component +aliases: + - "/operations/components/setup-state-store/supported-state-stores/setup-postgresql/" --- ## Create a Dapr component diff --git a/daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-redis.md b/daprdocs/content/en/reference/components-reference/supported-state-stores/setup-redis.md similarity index 98% rename from daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-redis.md rename to daprdocs/content/en/reference/components-reference/supported-state-stores/setup-redis.md index bfdd6f94a..55cb0d114 100644 --- a/daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-redis.md +++ b/daprdocs/content/en/reference/components-reference/supported-state-stores/setup-redis.md @@ -3,6 +3,8 @@ type: docs title: "Redis" linkTitle: "Redis" description: Detailed information on the Redis state store component +aliases: + - "/operations/components/setup-state-store/supported-state-stores/setup-redis/" --- ## Component format diff --git a/daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-rethinkdb.md b/daprdocs/content/en/reference/components-reference/supported-state-stores/setup-rethinkdb.md similarity index 97% rename from daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-rethinkdb.md rename to daprdocs/content/en/reference/components-reference/supported-state-stores/setup-rethinkdb.md index 57f08508b..8302dc3fa 100644 --- a/daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-rethinkdb.md +++ b/daprdocs/content/en/reference/components-reference/supported-state-stores/setup-rethinkdb.md @@ -3,6 +3,8 @@ type: docs title: "RethinkDB" linkTitle: "RethinkDB" description: Detailed information on the RethinkDB state store component +aliases: + - "/operations/components/setup-state-store/supported-state-stores/setup-rethinkdb/" --- ## Component format diff --git a/daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-sqlserver.md b/daprdocs/content/en/reference/components-reference/supported-state-stores/setup-sqlserver.md similarity index 97% rename from daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-sqlserver.md rename to daprdocs/content/en/reference/components-reference/supported-state-stores/setup-sqlserver.md index 01faf8555..bf0c52c0c 100644 --- a/daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-sqlserver.md +++ b/daprdocs/content/en/reference/components-reference/supported-state-stores/setup-sqlserver.md @@ -3,6 +3,8 @@ type: docs title: "SQL Server" linkTitle: "SQL Server" description: Detailed information on the SQL Server state store component +aliases: + - "/operations/components/setup-state-store/supported-state-stores/setup-sqlserver/" --- ## Component format diff --git a/daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-zookeeper.md b/daprdocs/content/en/reference/components-reference/supported-state-stores/setup-zookeeper.md similarity index 96% rename from daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-zookeeper.md rename to daprdocs/content/en/reference/components-reference/supported-state-stores/setup-zookeeper.md index aaee44354..91107848a 100644 --- a/daprdocs/content/en/operations/components/setup-state-store/supported-state-stores/setup-zookeeper.md +++ b/daprdocs/content/en/reference/components-reference/supported-state-stores/setup-zookeeper.md @@ -3,6 +3,8 @@ type: docs title: "Zookeeper" linkTitle: "Zookeeper" description: Detailed information on the Zookeeper state store component +aliases: + - "/operations/components/setup-state-store/supported-state-stores/setup-zookeeper/" --- ## Component format From d3b9eaba77def945ab84a8b52e94d3e0c2d0e881 Mon Sep 17 00:00:00 2001 From: Aaron Crawfis Date: Fri, 9 Apr 2021 13:44:17 -0700 Subject: [PATCH 74/82] Update titles to put component type first --- .../reference/components-reference/supported-bindings/_index.md | 2 +- .../reference/components-reference/supported-pubsub/_index.md | 2 +- .../components-reference/supported-secret-stores/_index.md | 2 +- .../components-reference/supported-state-stores/_index.md | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/daprdocs/content/en/reference/components-reference/supported-bindings/_index.md b/daprdocs/content/en/reference/components-reference/supported-bindings/_index.md index 77536ca47..1f80e7bc4 100644 --- a/daprdocs/content/en/reference/components-reference/supported-bindings/_index.md +++ b/daprdocs/content/en/reference/components-reference/supported-bindings/_index.md @@ -1,6 +1,6 @@ --- type: docs -title: "Supported external bindings" +title: "External bindings component specs" linkTitle: "Bindings" weight: 3000 description: The supported external bindings that interface with Dapr diff --git a/daprdocs/content/en/reference/components-reference/supported-pubsub/_index.md b/daprdocs/content/en/reference/components-reference/supported-pubsub/_index.md index 15f1a4b57..5fdc1a994 100644 --- a/daprdocs/content/en/reference/components-reference/supported-pubsub/_index.md +++ b/daprdocs/content/en/reference/components-reference/supported-pubsub/_index.md @@ -1,6 +1,6 @@ --- type: docs -title: "Supported pub/sub brokers" +title: "Pub/sub brokers component specs" linkTitle: "Pub/sub brokers" weight: 2000 description: The supported pub/sub brokers that interface with Dapr diff --git a/daprdocs/content/en/reference/components-reference/supported-secret-stores/_index.md b/daprdocs/content/en/reference/components-reference/supported-secret-stores/_index.md index 88010446d..c6c43b74e 100644 --- a/daprdocs/content/en/reference/components-reference/supported-secret-stores/_index.md +++ b/daprdocs/content/en/reference/components-reference/supported-secret-stores/_index.md @@ -1,6 +1,6 @@ --- type: docs -title: "Supported secret stores" +title: "Secret store component specs" linkTitle: "Secret stores" weight: 4000 description: The supported secret stores that interface with Dapr diff --git a/daprdocs/content/en/reference/components-reference/supported-state-stores/_index.md b/daprdocs/content/en/reference/components-reference/supported-state-stores/_index.md index 358e5e203..0dcdcd65a 100644 --- a/daprdocs/content/en/reference/components-reference/supported-state-stores/_index.md +++ b/daprdocs/content/en/reference/components-reference/supported-state-stores/_index.md @@ -1,6 +1,6 @@ --- type: docs -title: "Supported state stores" +title: "State store component specs" linkTitle: "State stores" description: "The supported state stores that interface with Dapr" weight: 1000 From 436d10a4942f2ca8f3ef84f294f0325cac52f581 Mon Sep 17 00:00:00 2001 From: Aaron Crawfis Date: Fri, 9 Apr 2021 13:45:17 -0700 Subject: [PATCH 75/82] Update bindings title --- .../reference/components-reference/supported-bindings/_index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/daprdocs/content/en/reference/components-reference/supported-bindings/_index.md b/daprdocs/content/en/reference/components-reference/supported-bindings/_index.md index 1f80e7bc4..0a69a3732 100644 --- a/daprdocs/content/en/reference/components-reference/supported-bindings/_index.md +++ b/daprdocs/content/en/reference/components-reference/supported-bindings/_index.md @@ -1,6 +1,6 @@ --- type: docs -title: "External bindings component specs" +title: "Bindings component specs" linkTitle: "Bindings" weight: 3000 description: The supported external bindings that interface with Dapr From 2383f01a4bd04844304e31bc36e3658e7e8d9dd2 Mon Sep 17 00:00:00 2001 From: Trond Hindenes Date: Fri, 9 Apr 2021 23:56:28 +0200 Subject: [PATCH 76/82] updated gcp pubsub with v1.1 options --- .../supported-pubsub/setup-gcp-pubsub.md | 43 +++++++++++-------- 1 file changed, 24 insertions(+), 19 deletions(-) diff --git a/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-gcp-pubsub.md b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-gcp-pubsub.md index d99d1c13f..01792d99e 100644 --- a/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-gcp-pubsub.md +++ b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-gcp-pubsub.md @@ -24,23 +24,25 @@ spec: metadata: - name: type value: service_account - - name: project_id + - name: projectId value: # replace - - name: private_key_id + - name: identityProjectId + value: # replace + - name: privateKeyId value: #replace - - name: client_email + - name: clientEmail value: #replace - - name: client_id + - name: clientId value: # replace - - name: auth_uri + - name: authUri value: https://accounts.google.com/o/oauth2/auth - - name: token_uri + - name: tokenUri value: https://oauth2.googleapis.com/token - - name: auth_provider_x509_cert_url + - name: authProviderX509CertUrl value: https://www.googleapis.com/oauth2/v1/certs - - name: client_x509_cert_url + - name: clientX509CertUrl value: https://www.googleapis.com/robot/v1/metadata/x509/.iam.gserviceaccount.com #replace PROJECT_NAME - - name: private_key + - name: privateKey value: # replace x509 cert - name: disableEntityManagement value: "false" @@ -53,19 +55,22 @@ The above example uses secrets as plain strings. It is recommended to use a secr | Field | Required | Details | Example | |--------------------|:--------:|---------|---------| -| type | Y | GCP credentials type | `service_account` -| project_id | Y | GCP project id| `projectId` -| private_key_id | Y | GCP private key id | `"privateKeyId"` -| private_key | Y | GCP credentials private key. Replace with x509 cert | `12345-12345` -| client_email | Y | GCP client email | `"client@email.com"` -| client_id | Y | GCP client id | `0123456789-0123456789` -| auth_uri | Y | Google account OAuth endpoint | `https://accounts.google.com/o/oauth2/auth` -| token_uri | Y | Google account token uri | `https://oauth2.googleapis.com/token` -| auth_provider_x509_cert_url | Y | GCP credentials cert url | `https://www.googleapis.com/oauth2/v1/certs` -| client_x509_cert_url | Y | GCP credentials project x509 cert url | `https://www.googleapis.com/robot/v1/metadata/x509/.iam.gserviceaccount.com` +| type | N | GCP credentials type. Only `service_account` is supported. Defaults to `service_account` | `service_account` +| projectId | Y | GCP project id| `myproject-123` +| identityProjectId | N | If the GCP pubsub project is different from the identity project, specify the identity project using this attribute | `"myproject-123"` +| privateKeyId | N | If using explicit credentials, this field should contain the `private_key_id` field from the service account json document | `"my-proviate-key"` + +| privateKey | N | If using explicit credentials, this field should contain the `private_key` field from the service account json | `-----BEGIN PRIVATE KEY-----` +| clientEmail | N | If using explicit credentials, this field should contain the `client_email` field from the service account json | `"myservice@myproject-123.iam.gserviceaccount.com"` +| clientId | N | If using explicit credentials, this field should contain the `client_id` field from the service account json | `106234234234` +| authUri | N | If using explicit credentials, this field should contain the `auth_uri` field from the service account json | `https://accounts.google.com/o/oauth2/auth` +| tokenUri | N | If using explicit credentials, this field should contain the `token_uri` field from the service account json | `https://oauth2.googleapis.com/token` +| authProviderX509CertUrl | N | If using explicit credentials, this field should contain the `auth_provider_x509_cert_url` field from the service account json | `https://www.googleapis.com/oauth2/v1/certs` +| clientX509CertUrl | N | If using explicit credentials, this field should contain the `client_x509_cert_url` field from the service account json | `https://www.googleapis.com/robot/v1/metadata/x509/myserviceaccount%40myproject.iam.gserviceaccount.com` | disableEntityManagement | N | When set to `"true"`, topics and subscriptions do not get created automatically. Default: `"false"` | `"true"`, `"false"` ## Create a GCP Pub/Sub +You can use either "explicit" or "implicit" credentials to configure access to your GCP pubsub instance. If using explicit, most fields are required. Implicit relies on dapr running under a Kubernetes service acccount (KSA) mapped to a Google service account (GSA) which has the necessary permissions to access pubsub. In implicit mode, only the `projectId` attribute is needed, all other are optional. Follow the instructions [here](https://cloud.google.com/pubsub/docs/quickstart-console) on setting up Google Cloud Pub/Sub system. From 9012ca09af5acd09e7fb6c8456f8503c0ca876ce Mon Sep 17 00:00:00 2001 From: Trond Hindenes Date: Sat, 10 Apr 2021 00:00:42 +0200 Subject: [PATCH 77/82] Fix table formatting --- .../components-reference/supported-pubsub/setup-gcp-pubsub.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-gcp-pubsub.md b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-gcp-pubsub.md index 01792d99e..01e4bb5df 100644 --- a/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-gcp-pubsub.md +++ b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-gcp-pubsub.md @@ -58,8 +58,7 @@ The above example uses secrets as plain strings. It is recommended to use a secr | type | N | GCP credentials type. Only `service_account` is supported. Defaults to `service_account` | `service_account` | projectId | Y | GCP project id| `myproject-123` | identityProjectId | N | If the GCP pubsub project is different from the identity project, specify the identity project using this attribute | `"myproject-123"` -| privateKeyId | N | If using explicit credentials, this field should contain the `private_key_id` field from the service account json document | `"my-proviate-key"` - +| privateKeyId | N | If using explicit credentials, this field should contain the `private_key_id` field from the service account json document | `"my-private-key"` | privateKey | N | If using explicit credentials, this field should contain the `private_key` field from the service account json | `-----BEGIN PRIVATE KEY-----` | clientEmail | N | If using explicit credentials, this field should contain the `client_email` field from the service account json | `"myservice@myproject-123.iam.gserviceaccount.com"` | clientId | N | If using explicit credentials, this field should contain the `client_id` field from the service account json | `106234234234` From 98d0d307d3184549306514708d7e7bd4b74889d4 Mon Sep 17 00:00:00 2001 From: Trond Hindenes Date: Sat, 10 Apr 2021 00:04:52 +0200 Subject: [PATCH 78/82] Added a bit more of a cert string to show intended use --- .../components-reference/supported-pubsub/setup-gcp-pubsub.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-gcp-pubsub.md b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-gcp-pubsub.md index 01e4bb5df..8827bc9ff 100644 --- a/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-gcp-pubsub.md +++ b/daprdocs/content/en/reference/components-reference/supported-pubsub/setup-gcp-pubsub.md @@ -59,7 +59,7 @@ The above example uses secrets as plain strings. It is recommended to use a secr | projectId | Y | GCP project id| `myproject-123` | identityProjectId | N | If the GCP pubsub project is different from the identity project, specify the identity project using this attribute | `"myproject-123"` | privateKeyId | N | If using explicit credentials, this field should contain the `private_key_id` field from the service account json document | `"my-private-key"` -| privateKey | N | If using explicit credentials, this field should contain the `private_key` field from the service account json | `-----BEGIN PRIVATE KEY-----` +| privateKey | N | If using explicit credentials, this field should contain the `private_key` field from the service account json | `-----BEGIN PRIVATE KEY-----MIIBVgIBADANBgkqhkiG9w0B` | clientEmail | N | If using explicit credentials, this field should contain the `client_email` field from the service account json | `"myservice@myproject-123.iam.gserviceaccount.com"` | clientId | N | If using explicit credentials, this field should contain the `client_id` field from the service account json | `106234234234` | authUri | N | If using explicit credentials, this field should contain the `auth_uri` field from the service account json | `https://accounts.google.com/o/oauth2/auth` From db86e59f565b38503cb0b6e34d96fc403359d18d Mon Sep 17 00:00:00 2001 From: fabistb <63794579+fabistb@users.noreply.github.com> Date: Sun, 11 Apr 2021 20:54:10 +0200 Subject: [PATCH 79/82] add delete operation to azure blob storage --- .../supported-bindings/blobstorage.md | 77 +++++++++++++++++++ 1 file changed, 77 insertions(+) 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..7b9ffe813 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). From 80786d1c3347fb3fbfb714e4bf900f0668d580b7 Mon Sep 17 00:00:00 2001 From: fabistb <63794579+fabistb@users.noreply.github.com> Date: Tue, 13 Apr 2021 23:32:17 +0200 Subject: [PATCH 80/82] add missing space --- .../components-reference/supported-bindings/blobstorage.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 7b9ffe813..9dffb5133 100644 --- a/daprdocs/content/en/reference/components-reference/supported-bindings/blobstorage.md +++ b/daprdocs/content/en/reference/components-reference/supported-bindings/blobstorage.md @@ -54,7 +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) +- `delete` : [Delete blob](#delete-blob) ### Create blob From e49dd06c775407bde0ac789029e57dac8cf3e843 Mon Sep 17 00:00:00 2001 From: newbe36524 Date: Wed, 14 Apr 2021 21:02:41 +0800 Subject: [PATCH 81/82] update zh-hans content --- translations/docs-zh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/translations/docs-zh b/translations/docs-zh index 1ab6c6133..e86abb5f4 160000 --- a/translations/docs-zh +++ b/translations/docs-zh @@ -1 +1 @@ -Subproject commit 1ab6c613330f14da5af23f44053a7bba8da91052 +Subproject commit e86abb5f4cecb77fb9e08ca9dd02832e312b04a8 From ce23a2511b7b5ad9ae2f9018b11806e67c910871 Mon Sep 17 00:00:00 2001 From: fabistb <63794579+fabistb@users.noreply.github.com> Date: Wed, 14 Apr 2021 20:16:45 +0200 Subject: [PATCH 82/82] change Delete Blob to Delete blob --- .../components-reference/supported-bindings/blobstorage.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 9dffb5133..b48a0747b 100644 --- a/daprdocs/content/en/reference/components-reference/supported-bindings/blobstorage.md +++ b/daprdocs/content/en/reference/components-reference/supported-bindings/blobstorage.md @@ -202,7 +202,7 @@ 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 +### Delete blob To perform a delete blob operation, invoke the Azure Blob Storage binding with a `POST` method and the following JSON body: