From f0d8999c3506a2b153b76463c4db11d87cbb77ea Mon Sep 17 00:00:00 2001 From: Mark Chmarny Date: Tue, 15 Dec 2020 10:13:41 -0800 Subject: [PATCH 01/30] Clarifies consumer groups and multiple instances (#1012) --- .../building-blocks/pubsub/pubsub-overview.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/daprdocs/content/en/developing-applications/building-blocks/pubsub/pubsub-overview.md b/daprdocs/content/en/developing-applications/building-blocks/pubsub/pubsub-overview.md index 78f98e01f..bd1047038 100644 --- a/daprdocs/content/en/developing-applications/building-blocks/pubsub/pubsub-overview.md +++ b/daprdocs/content/en/developing-applications/building-blocks/pubsub/pubsub-overview.md @@ -27,9 +27,10 @@ That means that when an application publishes a message to a topic using the Pub ### Consumer groups and multiple instances -The burden of dealing with concepts like consumer groups and multiple instances inside consumer groups is all catered for by Dapr. +The burden of dealing with concepts like consumer groups and multiple instances inside consumer groups is all handled autoamtically by Dapr: -When multiple instances of the same application ID subscribe to a topic, Dapr will make sure to deliver the message to only one instance. If two different applications with different IDs subscribe to a topic, at least one instance in each application receives a copy of the same message. +* When multiple instances of the same application (same IDs) subscribe to a topic, Dapr will deliver each message to only one instance of that application. +* If two different applications (different IDs) subscribe to the same topic, Dapr will deliver each message to only one instance of each application. ### Cloud events @@ -65,4 +66,4 @@ Limit which topics applications are able to publish/subscibe to in order to limi ## Next steps - Read the How-To guide on [publishing and subscribing]({{< ref howto-publish-subscribe.md >}}) -- Learn about [Pub/Sub scopes]({{< ref pubsub-scopes.md >}}) \ No newline at end of file +- Learn about [Pub/Sub scopes]({{< ref pubsub-scopes.md >}}) From 288091c10a33333ba70358420653c4ff6fd68040 Mon Sep 17 00:00:00 2001 From: Ally Parker Date: Wed, 16 Dec 2020 13:35:30 +0000 Subject: [PATCH 02/30] Fix typo --- daprdocs/content/en/operations/components/component-scopes.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/daprdocs/content/en/operations/components/component-scopes.md b/daprdocs/content/en/operations/components/component-scopes.md index 8a1b45ebd..8153f7765 100644 --- a/daprdocs/content/en/operations/components/component-scopes.md +++ b/daprdocs/content/en/operations/components/component-scopes.md @@ -30,7 +30,7 @@ spec: In this example, the Redis component is only accessible to Dapr instances running inside the `production` namespace. -### Example of component namsespacing in self-hosted mode +### Example of component namespacing in self-hosted mode In self hosted mode, a developer can specify the namespace to a Dapr instance by setting the `NAMESPACE` environment variable. If the `NAMESPACE` environment variable is set, Dapr will not load any component that does not specify the same namespace in its metadata. @@ -81,4 +81,4 @@ scopes: ## Example - \ No newline at end of file + From ac44c299097a70f4b63bda0b2cda16b582c9f0b3 Mon Sep 17 00:00:00 2001 From: Aaron Crawfis Date: Wed, 16 Dec 2020 17:21:28 -0800 Subject: [PATCH 03/30] Update pull_request_template.md --- .github/pull_request_template.md | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 1c4b36b52..5abcc9a8b 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -1,8 +1,13 @@ Thank you for helping make the Dapr documentation better! -If you are a new contributor, please see the [this contribution guidance](https://github.com/dapr/docs/blob/master/contributing/README.md) which helps keep the Dapr documentation readable, consistent and useful for Dapr users. +**Please follow this checklist before submitting:** -If you are contributing a new authored "How To" article, [this template](https://github.com/dapr/docs/blob/master/contributing/howto-template.md) was created to assist you. +- [ ] [Read the contribution guide](https://docs.dapr.io/contributing/contributing-docs/) +- [ ] Commands include options for Linux, MacOS, and Windows within codetabs +- [ ] New file and folder names are globally unique +- [ ] Page references use shortcodes instead of markdown or URL links +- [ ] Images use HTML style and have alternative text +- [ ] Places where multiple code/command options are given have codetabs In addition, please fill out the following to help reviewers understand this pull request: From d306fe82f4f39f9f6da25efe5d0106182f9ee386 Mon Sep 17 00:00:00 2001 From: Aaron Crawfis Date: Thu, 17 Dec 2020 10:21:25 -0800 Subject: [PATCH 04/30] Update version back to 0.11 --- .../content/en/getting-started/install-dapr-cli.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/daprdocs/content/en/getting-started/install-dapr-cli.md b/daprdocs/content/en/getting-started/install-dapr-cli.md index 97939601f..aacf10d0f 100644 --- a/daprdocs/content/en/getting-started/install-dapr-cli.md +++ b/daprdocs/content/en/getting-started/install-dapr-cli.md @@ -11,7 +11,7 @@ description: "Install the Dapr CLI to get started with Dapr" Begin by downloading and installing the Dapr CLI for v1.0.0-rc.3. This is used to initialize your environment on your desired platform. {{% alert title="Note" color="warning" %}} -This command downloads and install Dapr CLI v1.0-rc.3. To install v0.11, the latest release prior to the release candidates for the [upcoming v1.0 release](https://blog.dapr.io/posts/2020/10/20/the-path-to-v.1.0-production-ready-dapr/), please visit the [v0.11 docs](https://docs.dapr.io). +This command downloads and install Dapr CLI v0.11. To install v1.0-rc2, our latest preview release prior to the release of the [upcoming v1.0 release](https://blog.dapr.io/posts/2020/10/20/the-path-to-v.1.0-production-ready-dapr/), please visit the [v1.0-rc1 docs](https://v1-rc1.docs.dapr.io). {{% /alert %}} {{< tabs Linux Windows MacOS Binaries>}} @@ -19,14 +19,14 @@ This command downloads and install Dapr CLI v1.0-rc.3. To install v0.11, the lat {{% codetab %}} This command installs the latest linux Dapr CLI to `/usr/local/bin`: ```bash -wget -q https://raw.githubusercontent.com/dapr/cli/master/install/install.sh -O - | /bin/bash -s 1.0.0-rc.3 +wget -q https://raw.githubusercontent.com/dapr/cli/master/install/install.sh -O - | /bin/bash ``` {{% /codetab %}} {{% codetab %}} This command installs the latest windows Dapr cli to `C:\dapr` and add this directory to User PATH environment variable. Run in Command Prompt: ```powershell -powershell -Command "$script=iwr -useb https://raw.githubusercontent.com/dapr/cli/master/install/install.ps1; $block=[ScriptBlock]::Create($script); invoke-command -ScriptBlock $block -ArgumentList 1.0.0-rc.3" +powershell -Command "iwr -useb https://raw.githubusercontent.com/dapr/cli/master/install/install.ps1 | iex" ``` Verify by opening Explorer and entering `C:\dapr` into the address bar. You should see folders for bin, components, and a config file. {{% /codetab %}} @@ -34,12 +34,12 @@ Verify by opening Explorer and entering `C:\dapr` into the address bar. You shou {{% codetab %}} This command installs the latest darwin Dapr CLI to `/usr/local/bin`: ```bash -curl -fsSL https://raw.githubusercontent.com/dapr/cli/master/install/install.sh | /bin/bash -s 1.0.0-rc.3 +curl -fsSL https://raw.githubusercontent.com/dapr/cli/master/install/install.sh | /bin/bash ``` Or you can install via [Homebrew](https://brew.sh): ```bash -brew install dapr/tap/dapr-cli@1.0.0-rc.3 +brew install dapr/tap/dapr-cli ``` {{% /codetab %}} From 6a236a4c258afb0e983ef071499ba5171ec33d90 Mon Sep 17 00:00:00 2001 From: Mark Chmarny Date: Thu, 17 Dec 2020 10:24:14 -0800 Subject: [PATCH 05/30] Points to latest version of CLI to avoid CLI vs Core RC releases --- .../operations/hosting/kubernetes/kubernetes-production.md | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-production.md b/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-production.md index d64c896ba..00e736da2 100644 --- a/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-production.md +++ b/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-production.md @@ -76,10 +76,7 @@ Dapr supports zero downtime upgrades. The upgrade path includes the following st ### Upgrading the CLI -To upgrade the Dapr CLI, [download a release version](https://github.com/dapr/cli/releases) of the CLI that matches the Dapr runtime version. -For example, if upgrading to Dapr 1.0.0-rc.x, download a CLI version of 1.0.0-rc.x. - -After you downloaded the binary, it's recommended you put the CLI binary in your path. +To upgrade the Dapr CLI, [download the latest version](https://github.com/dapr/cli/releases) of the CLI. After you downloaded the binary, it's recommended you put the CLI binary in your path. ### Updating the control plane From c6da32eae0262b2150ca3be0ec52ed2b0901abea Mon Sep 17 00:00:00 2001 From: Aaron Crawfis Date: Thu, 17 Dec 2020 10:25:42 -0800 Subject: [PATCH 06/30] Update version --- .../getting-started/install-dapr-kubernetes.md | 14 +++++++------- .../getting-started/install-dapr-selfhost.md | 12 ++++++------ .../content/en/getting-started/quickstarts.md | 18 +++++++++--------- 3 files changed, 22 insertions(+), 22 deletions(-) diff --git a/daprdocs/content/en/getting-started/install-dapr-kubernetes.md b/daprdocs/content/en/getting-started/install-dapr-kubernetes.md index c18a614f5..b3caf2653 100644 --- a/daprdocs/content/en/getting-started/install-dapr-kubernetes.md +++ b/daprdocs/content/en/getting-started/install-dapr-kubernetes.md @@ -40,7 +40,7 @@ Both the Dapr CLI and the Dapr Helm chart automatically deploy with affinity for You can install Dapr to a Kubernetes cluster using the [Dapr CLI]({{< ref install-dapr-cli.md >}}). {{% alert title="Release candidate" color="warning" %}} -This command downloads and install Dapr runtime v1.0-rc.2. To install v0.11, the latest release prior to the release candidates for the [upcoming v1.0 release](https://blog.dapr.io/posts/2020/10/20/the-path-to-v.1.0-production-ready-dapr/), please visit the [v0.11 docs](https://docs.dapr.io). +This command downloads and install Dapr runtime v0.11. To install v1.0-rc1, the latest release prior to the release candidates for the [upcoming v1.0 release](https://blog.dapr.io/posts/2020/10/20/the-path-to-v.1.0-production-ready-dapr/), please visit the [v1.0-rc1 docs](https://v1-rc1.docs.dapr.io). {{% /alert %}} ### Install Dapr @@ -51,10 +51,10 @@ The `-k` flag initializes Dapr on the Kubernetes cluster in your current context Make sure the correct "target" cluster is set. Check `kubectl context (kubectl config kubectl config get-contexts)` to verify. You can set a different context using `kubectl config use-context `. {{% /alert %}} -Run `dapr init -k --runtime-version 1.0.0-rc.2` on your local machine: +Run `dapr init -k` on your local machine: ```bash -$ dapr init -k --runtime-version 1.0.0-rc.2 +$ dapr init -k ⌛ Making the jump to hyperspace... ℹ️ Note: To install Dapr using Helm, see here: https://github.com/dapr/docs/blob/master/getting-started/environment-setup.md#using-helm-advanced @@ -68,7 +68,7 @@ $ dapr init -k --runtime-version 1.0.0-rc.2 The default namespace when initializing Dapr is `dapr-system`. You can override this with the `-n` flag. ``` -dapr init -k -n mynamespace --runtime-version 1.0.0-rc.2 +dapr init -k -n mynamespace ``` @@ -77,7 +77,7 @@ dapr init -k -n mynamespace --runtime-version 1.0.0-rc.2 You can run Dapr with 3 replicas of each control plane pod with the exception of the Placement pod in the dapr-system namespace for [production scenarios]({{< ref kubernetes-production.md >}}). ``` -dapr init -k --enable-ha=true --runtime-version 1.0.0-rc.2 +dapr init -k --enable-ha=true ``` ### Disable mTLS @@ -85,7 +85,7 @@ dapr init -k --enable-ha=true --runtime-version 1.0.0-rc.2 Dapr is initialized by default with [mTLS]({{< ref "security-concept.md#sidecar-to-sidecar-communication" >}}). You can disable it with: ``` -dapr init -k --enable-mtls=false --runtime-version 1.0.0-rc.2 +dapr init -k --enable-mtls=false ``` ### Uninstall Dapr on Kubernetes with CLI @@ -122,7 +122,7 @@ The latest Dapr helm chart no longer supports Helm v2. Please migrate from helm 4. Install the Dapr chart on your cluster in the `dapr-system` namespace. ```bash - helm install dapr dapr/dapr --namespace dapr-system --version 1.0.0-rc.2 + helm install dapr dapr/dapr --namespace dapr-system ``` ### Verify installation diff --git a/daprdocs/content/en/getting-started/install-dapr-selfhost.md b/daprdocs/content/en/getting-started/install-dapr-selfhost.md index cc9dab393..85af57f06 100644 --- a/daprdocs/content/en/getting-started/install-dapr-selfhost.md +++ b/daprdocs/content/en/getting-started/install-dapr-selfhost.md @@ -23,7 +23,7 @@ This step installs the latest Dapr Docker containers and setup a developer envir - For Windows Dapr is initialized to `%USERPROFILE%\.dapr\` {{% alert title="Note" color="warning" %}} -This command downloads and installs Dapr runtime v1.0-rc.2. To install v0.11, the latest release prior to the release candidates for the [upcoming v1.0 release](https://blog.dapr.io/posts/2020/10/20/the-path-to-v.1.0-production-ready-dapr/), please visit the [v0.11 docs](https://docs.dapr.io). +This command downloads and installs Dapr runtime v0.11. To install v1.0-rc1, the release candidates for the [upcoming v1.0 release](https://blog.dapr.io/posts/2020/10/20/the-path-to-v.1.0-production-ready-dapr/), please visit the [v1.0-rc1 docs](https://v1-rc1.docs.dapr.io). {{% /alert %}} 1. Ensure you are in an elevated terminal: @@ -40,12 +40,12 @@ This command downloads and installs Dapr runtime v1.0-rc.2. To install v0.11, th {{< /tabs >}} -1. Run `dapr init --runtime-version 1.0.0-rc.2`: +1. Run `dapr init`: You can install or upgrade to a specific version of the Dapr runtime using `dapr init --runtime-version`. You can find the list of versions in [Dapr Release](https://github.com/dapr/dapr/releases) ```bash - $ dapr init --runtime-version 1.0.0-rc.2 + $ dapr init ⌛ Making the jump to hyperspace... Downloading binaries and setting up components ✅ Success! Dapr is up and running. To get started, go here: https://aka.ms/dapr-getting-started @@ -55,8 +55,8 @@ This command downloads and installs Dapr runtime v1.0-rc.2. To install v0.11, th ```bash $ dapr --version - CLI version: 1.0.0-rc.3 - Runtime version: 1.0.0-rc.2 + CLI version: 0.11 + Runtime version: 0.11 ``` 1. Verify Dapr containers are running with `docker ps`: @@ -68,7 +68,7 @@ This command downloads and installs Dapr runtime v1.0-rc.2. To install v0.11, th CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 0dda6684dc2e openzipkin/zipkin "/busybox/sh run.sh" 2 minutes ago Up 2 minutes 9410/tcp, 0.0.0.0:9411->9411/tcp dapr_zipkin 9bf6ef339f50 redis "docker-entrypoint.s…" 2 minutes ago Up 2 minutes 0.0.0.0:6379->6379/tcp dapr_redis - 8d993e514150 daprio/dapr:1.0.0-rc.2 "./placement" 2 minutes ago Up 2 minutes 0.0.0.0:6050->50005/tcp dapr_placement + 8d993e514150 daprio/dapr "./placement" 2 minutes ago Up 2 minutes 0.0.0.0:6050->50005/tcp dapr_placement ``` 1. Verify Dapr directory has been initialized diff --git a/daprdocs/content/en/getting-started/quickstarts.md b/daprdocs/content/en/getting-started/quickstarts.md index 479523295..832469541 100644 --- a/daprdocs/content/en/getting-started/quickstarts.md +++ b/daprdocs/content/en/getting-started/quickstarts.md @@ -6,7 +6,7 @@ weight: 60 description: "Tutorials with code samples that are aimed to get you started quickly with Dapr" --- -The [Dapr Quickstarts](https://github.com/dapr/quickstarts/tree/v1.0.0-rc.2) are a collection of tutorials with code samples that are aimed to get you started quickly with Dapr, each highlighting a different Dapr capability. +The [Dapr Quickstarts](https://github.com/dapr/quickstarts/tree/release-0.11) are a collection of tutorials with code samples that are aimed to get you started quickly with Dapr, each highlighting a different Dapr capability. - A good place to start is the hello-world quickstart, it demonstrates how to run Dapr in standalone mode locally on your machine and demonstrates state management and service invocation in a simple application. - Next, if you are familiar with Kubernetes and want to see how to run the same application in a Kubernetes environment, look for the hello-kubernetes quickstart. Other quickstarts such as pub-sub, bindings and the distributed-calculator quickstart explore different Dapr capabilities include instructions for running both locally and on Kubernetes and can be completed in any order. A full list of the quickstarts can be found below. @@ -17,11 +17,11 @@ The [Dapr Quickstarts](https://github.com/dapr/quickstarts/tree/v1.0.0-rc.2) are | Quickstart | Description | |--------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| [Hello World](https://github.com/dapr/quickstarts/tree/v1.0.0-rc.2/hello-world) | Demonstrates how to run Dapr locally. Highlights service invocation and state management. | -| [Hello Kubernetes](https://github.com/dapr/quickstarts/tree/v1.0.0-rc.2/hello-kubernetes) | Demonstrates how to run Dapr in Kubernetes. Highlights service invocation and state management. | -| [Distributed Calculator](https://github.com/dapr/quickstarts/tree/v1.0.0-rc.2/distributed-calculator) | Demonstrates a distributed calculator application that uses Dapr services to power a React web app. Highlights polyglot (multi-language) programming, service invocation and state management. | -| [Pub/Sub](https://github.com/dapr/quickstarts/tree/v1.0.0-rc.2/pub-sub) | Demonstrates how to use Dapr to enable pub-sub applications. Uses Redis as a pub-sub component. | -| [Bindings](https://github.com/dapr/quickstarts/tree/v1.0.0-rc.2/bindings) | Demonstrates how to use Dapr to create input and output bindings to other components. Uses bindings to Kafka. | -| [Middleware](https://github.com/dapr/quickstarts/tree/v1.0.0-rc.2/middleware) | Demonstrates use of Dapr middleware to enable OAuth 2.0 authorization. | -| [Observability](https://github.com/dapr/quickstarts/tree/v1.0.0-rc.2/observability) | Demonstrates Dapr tracing capabilities. Uses Zipkin as a tracing component. | -| [Secret Store](https://github.com/dapr/quickstarts/tree/v1.0.0-rc.2/secretstore) | Demonstrates the use of Dapr Secrets API to access secret stores. | +| [Hello World](https://github.com/dapr/quickstarts/tree/release-0.11/hello-world) | Demonstrates how to run Dapr locally. Highlights service invocation and state management. | +| [Hello Kubernetes](https://github.com/dapr/quickstarts/tree/release-0.11/hello-kubernetes) | Demonstrates how to run Dapr in Kubernetes. Highlights service invocation and state management. | +| [Distributed Calculator](https://github.com/dapr/quickstarts/tree/release-0.11/distributed-calculator) | Demonstrates a distributed calculator application that uses Dapr services to power a React web app. Highlights polyglot (multi-language) programming, service invocation and state management. | +| [Pub/Sub](https://github.com/dapr/quickstarts/tree/release-0.11/pub-sub) | Demonstrates how to use Dapr to enable pub-sub applications. Uses Redis as a pub-sub component. | +| [Bindings](https://github.com/dapr/quickstarts/tree/release-0.11/bindings) | Demonstrates how to use Dapr to create input and output bindings to other components. Uses bindings to Kafka. | +| [Middleware](https://github.com/dapr/quickstarts/tree/release-0.11/middleware) | Demonstrates use of Dapr middleware to enable OAuth 2.0 authorization. | +| [Observability](https://github.com/dapr/quickstarts/tree/release-0.11/observability) | Demonstrates Dapr tracing capabilities. Uses Zipkin as a tracing component. | +| [Secret Store](https://github.com/dapr/quickstarts/tree/release-0.11/secretstore) | Demonstrates the use of Dapr Secrets API to access secret stores. | From 198d7c0652965327e6ef5b1c7ae7d056b0da1275 Mon Sep 17 00:00:00 2001 From: Aaron Crawfis Date: Thu, 17 Dec 2020 10:31:16 -0800 Subject: [PATCH 07/30] Add CLI changes --- .../content/en/reference/cli/cli-overview.md | 56 +++++++++---------- 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/daprdocs/content/en/reference/cli/cli-overview.md b/daprdocs/content/en/reference/cli/cli-overview.md index 3b4d1b3a8..38c97bd8f 100644 --- a/daprdocs/content/en/reference/cli/cli-overview.md +++ b/daprdocs/content/en/reference/cli/cli-overview.md @@ -1,47 +1,47 @@ --- type: docs -title: "Dapr command line (CLI) reference" +title: "Dapr command line interface (CLI) reference" linkTitle: "Overview" -description: "Detailed information on the dapr CLI" +description: "Detailed information on the Dapr CLI" weight: 10 --- The Dapr CLI allows you to setup Dapr on your local dev machine or on a Kubernetes cluster, provides debugging support, and launches and manages Dapr instances. ```bash - __ + ____/ /___ _____ _____ / __ / __ '/ __ \/ ___/ - / /_/ / /_/ / /_/ / / - \__,_/\__,_/ .___/_/ - /_/ - -====================================================== -A serverless runtime for hyperscale, distributed systems + / /_/ / /_/ / /_/ / / + \__,_/\__,_/ .___/_/ + /_/ + +=============================== +Distributed Application Runtime Usage: dapr [command] Available Commands: - components List all Dapr components - configurations List all Dapr configurations + completion Generates shell completion scripts + components List all Dapr components. Supported platforms: Kubernetes + configurations List all Dapr configurations. Supported platforms: Kubernetes + dashboard Start Dapr dashboard. Supported platforms: Kubernetes and self-hosted help Help about any command - init Setup dapr in Kubernetes or Standalone modes - invoke Invokes a Dapr app with an optional payload (deprecated, use invokePost) - invokeGet Issue HTTP GET to Dapr app - invokePost Issue HTTP POST to Dapr app with an optional payload - list List all Dapr instances - logs Gets Dapr sidecar logs for an app in Kubernetes - mtls Check if mTLS is enabled in a Kubernetes cluster - publish Publish an event to multiple consumers - run Launches Dapr and (optionally) your app side by side - status Shows the Dapr system services (control plane) health status. - stop Stops multiple running Dapr instances and their associated apps - uninstall Removes a Dapr installation + init Install Dapr on supported hosting platforms. Supported platforms: Kubernetes and self-hosted + invoke Invoke a method on a given Dapr application. Supported platforms: Self-hosted + list List all Dapr instances. Supported platforms: Kubernetes and self-hosted + logs Get Dapr sidecar logs for an application. Supported platforms: Kubernetes + mtls Check if mTLS is enabled. Supported platforms: Kubernetes + publish Publish a pub-sub event. Supported platforms: Self-hosted + run Run Dapr and (optionally) your application side by side. Supported platforms: Self-hosted + status Show the health status of Dapr services. Supported platforms: Kubernetes + stop Stop Dapr instances and their associated apps. . Supported platforms: Self-hosted + uninstall Uninstall Dapr runtime. Supported platforms: Kubernetes and self-hosted Flags: - -h, --help help for Dapr - --version version for Dapr + -h, --help help for dapr + --version version for dapr Use "dapr [command] --help" for more information about a command. ``` @@ -50,16 +50,16 @@ Use "dapr [command] --help" for more information about a command. You can learn more about each Dapr command from the links below. + - [`dapr completion`]({{< ref dapr-completion.md >}}) - [`dapr components`]({{< ref dapr-components.md >}}) - [`dapr configurations`]({{< ref dapr-configurations.md >}}) + - [`dapr dashboard`]({{< ref dapr-dashboard.md >}}) - [`dapr help`]({{< ref dapr-help.md >}}) - [`dapr init`]({{< ref dapr-init.md >}}) - [`dapr invoke`]({{< ref dapr-invoke.md >}}) - - [`dapr invokeGet`]({{< ref dapr-invokeGet.md >}}) - - [`dapr invokePost`]({{< ref dapr-invokePost.md >}}) - [`dapr list`]({{< ref dapr-list.md >}}) - [`dapr logs`]({{< ref dapr-logs.md >}}) - - [`dapr mtls`]({{< ref dapr-mtls.md >}}) + - [`dapr mtls`]({{< ref dapr-mtls >}}) - [`dapr publish`]({{< ref dapr-publish.md >}}) - [`dapr run`]({{< ref dapr-run.md >}}) - [`dapr status`]({{< ref dapr-status.md >}}) From 1930453e093a4ad109ff932f7b3c2c0c829ec341 Mon Sep 17 00:00:00 2001 From: Aaron Crawfis Date: Thu, 17 Dec 2020 10:46:29 -0800 Subject: [PATCH 08/30] Fix rc reference --- daprdocs/content/en/getting-started/install-dapr-cli.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/daprdocs/content/en/getting-started/install-dapr-cli.md b/daprdocs/content/en/getting-started/install-dapr-cli.md index aacf10d0f..c9813720b 100644 --- a/daprdocs/content/en/getting-started/install-dapr-cli.md +++ b/daprdocs/content/en/getting-started/install-dapr-cli.md @@ -8,7 +8,7 @@ description: "Install the Dapr CLI to get started with Dapr" ## Dapr CLI installation scripts -Begin by downloading and installing the Dapr CLI for v1.0.0-rc.3. This is used to initialize your environment on your desired platform. +Begin by downloading and installing the Dapr CLI for v0.11. This is used to initialize your environment on your desired platform. {{% alert title="Note" color="warning" %}} This command downloads and install Dapr CLI v0.11. To install v1.0-rc2, our latest preview release prior to the release of the [upcoming v1.0 release](https://blog.dapr.io/posts/2020/10/20/the-path-to-v.1.0-production-ready-dapr/), please visit the [v1.0-rc1 docs](https://v1-rc1.docs.dapr.io). From 6d2646cfe9d4e8e64ef73963207c6d3250c35def Mon Sep 17 00:00:00 2001 From: Mark Chmarny Date: Thu, 17 Dec 2020 11:07:05 -0800 Subject: [PATCH 09/30] Upgrade command/how-to updates --- .../hosting/kubernetes/kubernetes-production.md | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-production.md b/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-production.md index 00e736da2..04a5333ed 100644 --- a/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-production.md +++ b/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-production.md @@ -138,12 +138,19 @@ NAME CHART VERSION APP VERSION DESCRIPTION dapr/dapr 1.0.0-rc.1 1.0.0-rc.1 A Helm chart for Dapr on Kubernetes ``` -The APP VERSION column tells us which Dapr runtime version is installed by the chart. +The APP VERSION column tells us which Dapr runtime version is installed by the chart. Now, use the following command to upgrade Dapr to your desired runtime version providing a path to the certificate files you saved before: -Use the following command to upgrade Dapr to your desired runtime version providing a path to the certificate files you saved: +> Remove the `--set global.ha.enabled=true` if your current Dapr installation has not been deployed is HA mode. ```bash -helm upgrade dapr dapr/dapr --version --namespace dapr-system --reset-values --set-file dapr_sentry.tls.root.certPEM=ca.crt --set-file dapr_sentry.tls.issuer.certPEM=issuer.crt --set-file dapr_sentry.tls.issuer.keyPEM=issuer.key +helm upgrade dapr dapr/dapr \ + --version \ + --namespace dapr-system \ + --reset-values \ + --set-file dapr_sentry.tls.root.certPEM=certs/ca.crt \ + --set-file dapr_sentry.tls.issuer.certPEM=certs/issuer.crt \ + --set-file dapr_sentry.tls.issuer.keyPEM=certs/issuer.key \ + --set global.ha.enabled=true ``` Kubernetes now performs a rolling update. Wait until all the new pods appear as running: From 0b77c43c4f3fde0b01e5878317ebac651bdf9c9a Mon Sep 17 00:00:00 2001 From: Mukundan Sundararajan Date: Thu, 17 Dec 2020 11:14:48 -0800 Subject: [PATCH 10/30] Add api-token-secret annotation for k8s --- .../operations/hosting/kubernetes/kubernetes-annotations.md | 1 + daprdocs/content/en/operations/security/api-token.md | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-annotations.md b/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-annotations.md index 39dcef64f..32dfdb6aa 100644 --- a/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-annotations.md +++ b/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-annotations.md @@ -17,6 +17,7 @@ The following table shows all the supported pod Spec annotations supported by Da | `dapr.io/config` | Tells Dapr which Configuration CRD to use | `dapr.io/log-as-json` | Setting this parameter to `true` outputs logs in JSON format. Default is `false` | `dapr.io/enable-profiling` | Setting this paramater to `true` starts the Dapr profiling server on port `7777`. Default is `false` +| `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`. diff --git a/daprdocs/content/en/operations/security/api-token.md b/daprdocs/content/en/operations/security/api-token.md index e6d03c2d7..008ca4217 100644 --- a/daprdocs/content/en/operations/security/api-token.md +++ b/daprdocs/content/en/operations/security/api-token.md @@ -1,6 +1,6 @@ --- type: docs -title: "Enable API token based authentication" +title: "Enable token based API authentication" linkTitle: "API token auth" weight: 3000 description: "Require every incoming API request to include an authentication token before allowing that request to pass through" @@ -14,7 +14,7 @@ Dapr uses [JWT](https://jwt.io/) tokens for API authentication. > Note, while Dapr itself is actually not the JWT token issuer in this implementation, being explicit about the use of JWT standard enables federated implementations in the future (e.g. OAuth2). -To configure APIs authentication, start by generating your token using any JWT token compatible tool (e.g. https://jwt.io/) and your secret. +To configure API authentication, start by generating your token using any JWT token compatible tool (e.g. https://jwt.io/) and your secret. > Note, that secret is only necessary to generate the token, and Dapr doesn't need to know about or store it From 97be510fe701a3450de942fc306f362de6fe9c3e Mon Sep 17 00:00:00 2001 From: Mark Chmarny Date: Thu, 17 Dec 2020 11:17:06 -0800 Subject: [PATCH 11/30] Grammar --- .../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 04a5333ed..1ddd47b72 100644 --- a/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-production.md +++ b/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-production.md @@ -140,7 +140,7 @@ dapr/dapr 1.0.0-rc.1 1.0.0-rc.1 A Helm chart for Dapr on Kubernetes The APP VERSION column tells us which Dapr runtime version is installed by the chart. Now, use the following command to upgrade Dapr to your desired runtime version providing a path to the certificate files you saved before: -> Remove the `--set global.ha.enabled=true` if your current Dapr installation has not been deployed is HA mode. +> Remove `--set global.ha.enabled=true` if current Dapr installation has not been deployed is HA mode. ```bash helm upgrade dapr dapr/dapr \ From a0df800d909b536873effd1d49a4791796c838fd Mon Sep 17 00:00:00 2001 From: Hal Spang Date: Thu, 17 Dec 2020 11:28:42 -0800 Subject: [PATCH 12/30] Fix typo in Azure Blob Storage create blob binding https://github.com/dapr/docs/issues/903 --- .../components/setup-bindings/supported-bindings/blobstorage.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/blobstorage.md b/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/blobstorage.md index 49af5d23a..02a38eac2 100644 --- a/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/blobstorage.md +++ b/daprdocs/content/en/operations/components/setup-bindings/supported-bindings/blobstorage.md @@ -38,7 +38,7 @@ The above example uses secrets as plain strings. It is recommended to use a secr ### Create Blob -To perform a get blob operation, invoke the Azure Blob Storage binding with a `POST` method and the following JSON body: +To perform a create blob operation, invoke the Azure Blob Storage binding with a `POST` method and the following JSON body: ```json { From 66fa5faaf70c383fd4542b22cc728840c01e98f6 Mon Sep 17 00:00:00 2001 From: Aaron Crawfis Date: Thu, 17 Dec 2020 11:29:30 -0800 Subject: [PATCH 13/30] Grammer --- .../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 1ddd47b72..caaa85424 100644 --- a/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-production.md +++ b/daprdocs/content/en/operations/hosting/kubernetes/kubernetes-production.md @@ -140,7 +140,7 @@ dapr/dapr 1.0.0-rc.1 1.0.0-rc.1 A Helm chart for Dapr on Kubernetes The APP VERSION column tells us which Dapr runtime version is installed by the chart. Now, use the following command to upgrade Dapr to your desired runtime version providing a path to the certificate files you saved before: -> Remove `--set global.ha.enabled=true` if current Dapr installation has not been deployed is HA mode. +> Remove `--set global.ha.enabled=true` if current Dapr installation has not been deployed in HA mode. ```bash helm upgrade dapr dapr/dapr \ From 28ec13d777063340d9024c885ce0eb8f9be7dee0 Mon Sep 17 00:00:00 2001 From: Ori Zohar Date: Thu, 17 Dec 2020 11:42:15 -0800 Subject: [PATCH 14/30] Updating notes for rc.2 --- daprdocs/content/en/_index.md | 4 ++-- daprdocs/content/en/getting-started/install-dapr-cli.md | 2 +- daprdocs/content/en/getting-started/install-dapr-selfhost.md | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/daprdocs/content/en/_index.md b/daprdocs/content/en/_index.md index 5489ad9b6..daa65ab4c 100644 --- a/daprdocs/content/en/_index.md +++ b/daprdocs/content/en/_index.md @@ -6,6 +6,6 @@ type: docs Welcome to the Dapr documentation site! -{{% alert title="New Release Candidate" color="primary" %}} -[v1.0-rc.1 is now available](https://github.com/dapr/dapr/releases/tag/v1.0.0-rc.1) to download and test as part of our upcoming v1.0 release. Visit the [v1.0-rc.1 docs](https://v1-rc1.docs.dapr.io/getting-started/install-dapr/#install-the-dapr-cli) to upgrade and try it out. +{{% alert title="New release candidate" color="primary" %}} +v1.0-rc.2 preview is now available to download and test as part of the upcoming Dapr v1.0 release. Visit the [v1.0-rc.2 version of the docs](https://v1-rc2.docs.dapr.io) if you would like to upgrade and use the latest preview version. {{% /alert %}} diff --git a/daprdocs/content/en/getting-started/install-dapr-cli.md b/daprdocs/content/en/getting-started/install-dapr-cli.md index c9813720b..27c8a8887 100644 --- a/daprdocs/content/en/getting-started/install-dapr-cli.md +++ b/daprdocs/content/en/getting-started/install-dapr-cli.md @@ -11,7 +11,7 @@ description: "Install the Dapr CLI to get started with Dapr" Begin by downloading and installing the Dapr CLI for v0.11. This is used to initialize your environment on your desired platform. {{% alert title="Note" color="warning" %}} -This command downloads and install Dapr CLI v0.11. To install v1.0-rc2, our latest preview release prior to the release of the [upcoming v1.0 release](https://blog.dapr.io/posts/2020/10/20/the-path-to-v.1.0-production-ready-dapr/), please visit the [v1.0-rc1 docs](https://v1-rc1.docs.dapr.io). +This command downloads and install Dapr CLI v0.11. To install the latest preview release, please visit the [v1.0-rc2 version of this page](https://v1-rc2.docs.dapr.io/getting-started/install-dapr-cli/). {{% /alert %}} {{< tabs Linux Windows MacOS Binaries>}} diff --git a/daprdocs/content/en/getting-started/install-dapr-selfhost.md b/daprdocs/content/en/getting-started/install-dapr-selfhost.md index 85af57f06..4a4736d48 100644 --- a/daprdocs/content/en/getting-started/install-dapr-selfhost.md +++ b/daprdocs/content/en/getting-started/install-dapr-selfhost.md @@ -23,7 +23,7 @@ This step installs the latest Dapr Docker containers and setup a developer envir - For Windows Dapr is initialized to `%USERPROFILE%\.dapr\` {{% alert title="Note" color="warning" %}} -This command downloads and installs Dapr runtime v0.11. To install v1.0-rc1, the release candidates for the [upcoming v1.0 release](https://blog.dapr.io/posts/2020/10/20/the-path-to-v.1.0-production-ready-dapr/), please visit the [v1.0-rc1 docs](https://v1-rc1.docs.dapr.io). +This command downloads and installs Dapr runtime v0.11. To install v1.0-rc2 preview, the release candidate for the upcoming v1.0 release please visit the [v1.0-rc2 docs version of this page](https://v1-rc1.docs.dapr.io/getting-started/install-dapr-selfhost/). Note you will need to ensure you are also using the preview version of the CLI (instructions to install the latest preview CLI can be found [here](https://v1-rc2.docs.dapr.io/getting-started/install-dapr-cli/)). {{% /alert %}} 1. Ensure you are in an elevated terminal: From 639bc00a2b7b9f99b040e31a3720d7e56686ed7d Mon Sep 17 00:00:00 2001 From: Ori Zohar Date: Thu, 17 Dec 2020 11:55:16 -0800 Subject: [PATCH 15/30] Adding k8s getting started note --- daprdocs/content/en/getting-started/install-dapr-kubernetes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/daprdocs/content/en/getting-started/install-dapr-kubernetes.md b/daprdocs/content/en/getting-started/install-dapr-kubernetes.md index b3caf2653..790833b6d 100644 --- a/daprdocs/content/en/getting-started/install-dapr-kubernetes.md +++ b/daprdocs/content/en/getting-started/install-dapr-kubernetes.md @@ -40,7 +40,7 @@ Both the Dapr CLI and the Dapr Helm chart automatically deploy with affinity for You can install Dapr to a Kubernetes cluster using the [Dapr CLI]({{< ref install-dapr-cli.md >}}). {{% alert title="Release candidate" color="warning" %}} -This command downloads and install Dapr runtime v0.11. To install v1.0-rc1, the latest release prior to the release candidates for the [upcoming v1.0 release](https://blog.dapr.io/posts/2020/10/20/the-path-to-v.1.0-production-ready-dapr/), please visit the [v1.0-rc1 docs](https://v1-rc1.docs.dapr.io). +This command downloads and installs Dapr runtime v0.11. To install v1.0-rc2 preview, the release candidate for the upcoming v1.0 release please visit the [v1.0-rc2 docs version of this page](https://v1-rc1.docs.dapr.io/getting-started/install-dapr-kubernetes/). Note you will need to ensure you are also using the preview version of the CLI (instructions to install the latest preview CLI can be found [here](https://v1-rc2.docs.dapr.io/getting-started/install-dapr-cli/)). {{% /alert %}} ### Install Dapr From f3d5fe2ccdd799af6941d0a2405249aeaa1c4d05 Mon Sep 17 00:00:00 2001 From: Nghia Tran Date: Thu, 17 Dec 2020 12:19:33 -0800 Subject: [PATCH 16/30] Fix dapr home directory --- daprdocs/content/en/operations/monitoring/zipkin.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/daprdocs/content/en/operations/monitoring/zipkin.md b/daprdocs/content/en/operations/monitoring/zipkin.md index 5939661e5..9221d44f0 100644 --- a/daprdocs/content/en/operations/monitoring/zipkin.md +++ b/daprdocs/content/en/operations/monitoring/zipkin.md @@ -11,7 +11,7 @@ type: docs For self hosted mode, on running `dapr init`: -1. The following YAML file is created by default in `$HOME/dapr/config.yaml` (on Linux/Mac) or `%USERPROFILE%\dapr\config.yaml` (on Windows) and it is referenced by default on `dapr run` calls unless otherwise overridden `: +1. The following YAML file is created by default in `$HOME/.dapr/config.yaml` (on Linux/Mac) or `%USERPROFILE%\.dapr\config.yaml` (on Windows) and it is referenced by default on `dapr run` calls unless otherwise overridden `: * config.yaml @@ -24,7 +24,7 @@ metadata: spec: tracing: samplingRate: "1" - zipkin: + zipkin: endpointAddress: "http://localhost:9411/api/v2/spans" ``` @@ -36,7 +36,7 @@ Launch Zipkin using Docker: docker run -d -p 9411:9411 openzipkin/zipkin ``` -3. The applications launched with `dapr run` will by default reference the config file in `$HOME/dapr/config.yaml` or `%USERPROFILE%\dapr\config.yaml` and can be overridden with the Dapr CLI using the `--config` param: +3. The applications launched with `dapr run` will by default reference the config file in `$HOME/.dapr/config.yaml` or `%USERPROFILE%\.dapr\config.yaml` and can be overridden with the Dapr CLI using the `--config` param: ```bash dapr run --app-id mynode --app-port 3000 node app.js From 8b74120e5e05e62a1ce3e53b4786e9139bad65a6 Mon Sep 17 00:00:00 2001 From: Nghia Tran Date: Thu, 17 Dec 2020 12:20:16 -0800 Subject: [PATCH 17/30] Tab -> spaces --- daprdocs/content/en/operations/monitoring/zipkin.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/daprdocs/content/en/operations/monitoring/zipkin.md b/daprdocs/content/en/operations/monitoring/zipkin.md index 9221d44f0..cd92af512 100644 --- a/daprdocs/content/en/operations/monitoring/zipkin.md +++ b/daprdocs/content/en/operations/monitoring/zipkin.md @@ -25,7 +25,7 @@ spec: tracing: samplingRate: "1" zipkin: - endpointAddress: "http://localhost:9411/api/v2/spans" + endpointAddress: "http://localhost:9411/api/v2/spans" ``` 2. The [openzipkin/zipkin](https://hub.docker.com/r/openzipkin/zipkin/) docker container is launched on running `dapr init` or it can be launched with the following code. From c35ea4edef1dc4f109a9b300e5ab06cc9c076293 Mon Sep 17 00:00:00 2001 From: Hal Spang Date: Thu, 17 Dec 2020 13:24:32 -0800 Subject: [PATCH 18/30] Fix link in get How To: Retrieve a secret Link was referencing old github file structure instead of using the hugo link method. https://github.com/dapr/docs/issues/957 --- .../building-blocks/secrets/howto-secrets.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 512704261..21e679fec 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 @@ -36,7 +36,7 @@ Watch this [video](https://www.youtube.com/watch?v=OtbYCBt9C34&feature=youtu.be& Now that the secret store is set up, you can call Dapr to get the secrets for a given key for a specific secret store. -For a full API reference, go [here](https://github.com/dapr/docs/blob/master/reference/api/secrets_api.md). +For a full API reference, go [here]({{< ref "/operations/components/setup-bindings/supported-bindings/blobstorage.md" >}}). Here are a few examples in different programming languages: From 016d9854f9526c0a78f7fe9abd55966b4d5566a4 Mon Sep 17 00:00:00 2001 From: Mark Chmarny Date: Thu, 17 Dec 2020 13:33:35 -0800 Subject: [PATCH 19/30] Clarifies pub/sub concepts, more doc links --- .../building-blocks/pubsub/pubsub-overview.md | 54 +++++++++---------- 1 file changed, 27 insertions(+), 27 deletions(-) diff --git a/daprdocs/content/en/developing-applications/building-blocks/pubsub/pubsub-overview.md b/daprdocs/content/en/developing-applications/building-blocks/pubsub/pubsub-overview.md index 09112ba7f..0d116e9f7 100644 --- a/daprdocs/content/en/developing-applications/building-blocks/pubsub/pubsub-overview.md +++ b/daprdocs/content/en/developing-applications/building-blocks/pubsub/pubsub-overview.md @@ -8,44 +8,30 @@ description: "Overview of the Dapr Pub/Sub building block" ## Introduction -The [publish/subscribe pattern](https://en.wikipedia.org/wiki/Publish%E2%80%93subscribe_pattern) allows your microservices to communicate with each other purely by sending messages. In this system, the **producer** of a message sends it to a **topic**, with no knowledge of what service will receive the message. A messages can even be sent if there's no consumer for it. +The [publish/subscribe pattern](https://en.wikipedia.org/wiki/Publish%E2%80%93subscribe_pattern) allows microservices to communicate with each other using messages. The **producer** sends messages to a **topic** without knowledge of what application will receive them. Similarly, a **consumer** will subscribe to the topic and receive its messages without any knowledge of what application producerd these messages. This pattern is especially useful when you need to decouple microservices from one another. -Similarly, a **consumer** will receive messages from a topic without knowledge of what producer sent it. This pattern is especially useful when you need to decouple microservices from one another. - -Dapr provides a publish/subscribe API that provides at-least-once guarantees and integrates with various message brokers implementations. These implementations are pluggable, and developed outside of the Dapr runtime in [components-contrib](https://github.com/dapr/components-contrib/tree/master/pubsub). +The publish/subscribe API in Dapr provides at-least-once guarantee and integrates with various message brokers and queing systems. The specific implementation to your application is pluggable and configured externally at runtime. This approach removes dependancy from your application and, as a result, makes your application more portable. The complete list of available publish/subscribe implementations is available in [components-contrib](https://github.com/dapr/components-contrib/tree/master/pubsub) repository. ## Features ### Publish/Subscribe API -The API for Publish/Subscribe can be found in the [spec repo]({{< ref pubsub_api.md >}}). +The publish/subscribe API is located in the [spec repo]({{< ref pubsub_api.md >}}). -### At-Least-Once guarantee +### Message Format -Dapr guarantees At-Least-Once semantics for message delivery. -That means that when an application publishes a message to a topic using the Publish/Subscribe API, it can assume the message is delivered at least once to any subscriber when the response status code from that endpoint is `200`, or returns no error if using the gRPC client. +To enable message routing and to provide additonal context with each message Dapr uses the [CloudEvents 1.0 specification](https://github.com/cloudevents/spec/tree/v1.0) as its message format. Any message sent by an paylication to a topic using Dapr will autoamtically be "wrapped" in Cloud Events envelope, using `Content-Type` header value for `datacontenttype` attribute. -### Consumer groups and multiple instances +Dapr implements the following Cloud Events fields: -The burden of dealing with concepts like consumer groups and multiple instances inside consumer groups is all handled autoamtically by Dapr: - -* When multiple instances of the same application (same IDs) subscribe to a topic, Dapr will deliver each message to only one instance of that application. -* If two different applications (different IDs) subscribe to the same topic, Dapr will deliver each message to only one instance of each application. - -### Cloud events - -Dapr follows the [CloudEvents 1.0 Spec](https://github.com/cloudevents/spec/tree/v1.0) and wraps any payload sent to a topic inside a Cloud Events envelope, using `Content-Type` header value for `datacontenttype` attribute. - -The following fields from the Cloud Events spec are implemented with Dapr: -- `id` -- `source` -- `specversion` -- `type` -- `datacontenttype` (Optional) - -> Starting with Dapr v0.9, Dapr no longer wraps published content into CloudEvent if the published payload itself is already in CloudEvent format. +* `id` +* `source` +* `specversion` +* `type` +* `datacontenttype` (Optional) The following example shows an XML content in CloudEvent v1.0 serialized as JSON: + ```json { "specversion" : "1.0", @@ -59,9 +45,23 @@ The following example shows an XML content in CloudEvent v1.0 serialized as JSON } ``` +> Starting with v0.9 release, Dapr no longer wraps published content into CloudEvent if the published payload is already in the CloudEvent format. + +### Message Delivery + +In principle, Dapr considers message sucessfully delivered when the subscriber does not respond with an error after processing the message. For more granular control, Dapr's publish/subscribe API also provides explicit statuses, defined in the respons paylaod, which the subscriber can use to indicate the specific handling instructions to Dapr (e.g. `RETRY` or `DROP`). For more information message routing see [Dapr publish/subscribe API documentation] (https://docs.dapr.io/reference/api/pubsub_api/#provide-routes-for-dapr-to-deliver-topic-events) + +### At-Least-Once guarantee + +Dapr guarantees at-least-once semantics for message delivery. That means that when an application publishes a message to a topic using the publish/subscribe API, Dapr ensures that this message will be delivered at least once to every subscriber. + +### Consumer groups and multiple instances + +The burden of dealing with concepts like consumer groups and multiple application instances using single consumer group is all handled autoamtically by Dapr. When multiple instances of the same application (same IDs) subscribe to a topic, Dapr delivers each message to only one instance of that application. Similarly, if two different applications (different IDs) subscribe to the same topic, Dapr will deliver each message to only one instance of each application. + ### Topic scoping -Limit which topics applications are able to publish/subscibe to in order to limit access to potentially sensitive data streams. Read [Pub/Sub scoping]({{< ref pubsub-scopes.md >}}) for more information. +By default, all topics backing the Dapr publish/subscribe component (e.g. Kafka, Redis, RabbitMQ) are available to every applicatoin configured with that component. To limit which application can publish or subscibe to which topic, Dapr provides topic scopping. See [publish/subscribe topic scoping]({{< ref pubsub-scopes.md >}}) for more information. ## Next steps From eba2997c30e6a7145105a8bb75c444cb2847d3dd Mon Sep 17 00:00:00 2001 From: Mukundan Sundararajan Date: Thu, 17 Dec 2020 13:33:19 -0800 Subject: [PATCH 20/30] Update referencing secrets document --- .../components/component-secrets.md | 87 +++++++++++-------- 1 file changed, 49 insertions(+), 38 deletions(-) diff --git a/daprdocs/content/en/operations/components/component-secrets.md b/daprdocs/content/en/operations/components/component-secrets.md index 074b691b0..171161457 100644 --- a/daprdocs/content/en/operations/components/component-secrets.md +++ b/daprdocs/content/en/operations/components/component-secrets.md @@ -1,6 +1,6 @@ --- type: docs -title: "How-To: Reference secret stores in components" +title: "How-To: Reference secrets in components" linkTitle: "How-To: Reference secrets" weight: 200 description: "How to securly reference secrets from a component definition" @@ -18,40 +18,9 @@ When running in Kubernetes, if the `auth.secretStore` is empty, the Kubernetes s Go to [this]({{< ref "howto-secrets.md" >}}) link to see all the secret stores supported by Dapr, along with information on how to configure and use them. -## Non default namespaces - -If your Dapr enabled apps are using components that fetch secrets from non-default namespaces, apply the following resources to the namespace: - -```yaml ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: Role -metadata: - name: secret-reader - namespace: -rules: -- apiGroups: [""] - resources: ["secrets"] - verbs: ["get"] ---- - -kind: RoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: dapr-secret-reader - namespace: -subjects: -- kind: ServiceAccount - name: default -roleRef: - kind: Role - name: secret-reader - apiGroup: rbac.authorization.k8s.io -``` - ## Examples -Using plain text: +Using plain text secrets (not recommended for production): ```yml apiVersion: dapr.io/v1alpha1 @@ -69,7 +38,7 @@ spec: value: MyPassword ``` -Using a Kubernetes secret: +Referencing secret from a secret store: ```yml apiVersion: dapr.io/v1alpha1 @@ -88,12 +57,14 @@ spec: name: redis-secret key: redis-password auth: - secretStore: kubernetes + secretStore: ``` -The above example tells Dapr to use the `kubernetes` secret store, extract a secret named `redis-secret` and assign the value of the `redis-password` key in the secret to the `redisPassword` field in the Component. +When running in Kubernetes and using a Kubernetes secret store, either the field `auth.SecretStore` can be empty (as it is assumed to be Kubernetes secret store) or it needs to be `kubernetes`. For all other secret store, the `SECRET_STORE_NAME` is the name of the configured secret store component. -### Creating a secret and referencing it in a Component +The above example tells Dapr to extract a secret named `redis-secret` from the defined secret store and assign the value of the `redis-password` key in the secret to the `redisPassword` field in the Component. + +### Creating a Kubernetes secret and referencing it in a Component The following example shows you how to create a Kubernetes secret to hold the connection string for an Event Hubs binding. @@ -126,5 +97,45 @@ Finally, apply the component to the Kubernetes cluster: ```bash kubectl apply -f ./eventhubs.yaml ``` +## Kubernetes -All done! +### Default namespace + +When running in Kubernetes, Dapr, during installtion, defines default Role and RoleBinding for secrets access from Kubernetes secret store in the `default` namespace. For Dapr enabled apps that fetch secrets from `default` namespace, a secret can be defined and referenced in components as shown in the example above. + +### Non default namespaces + +If your Dapr enabled apps are using components that fetch secrets from non-default namespaces, apply the following resources to that namespace: + +```yaml +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + name: secret-reader + namespace: +rules: +- apiGroups: [""] + resources: ["secrets"] + verbs: ["get"] +--- + +kind: RoleBinding +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: dapr-secret-reader + namespace: +subjects: +- kind: ServiceAccount + name: default +roleRef: + kind: Role + name: secret-reader + apiGroup: rbac.authorization.k8s.io +``` + +These resources grant Dapr permissions to get secrets from the Kubernetes secret store for the namespace defined in the Role and RoleBinding. + +{{% alert title="Note" color="warning" %}} +In production scenario to limit Dapr's access to certain secret resources alone, you can use the `resourceNames` field. See this [link](https://kubernetes.io/docs/reference/access-authn-authz/rbac/#referring-to-resources) for further explanation. +{{% /alert %}} From 21d14f956b868e7744082f6f94dc87b1e0660457 Mon Sep 17 00:00:00 2001 From: Mark Chmarny Date: Thu, 17 Dec 2020 13:43:49 -0800 Subject: [PATCH 21/30] Adds declarative subscription --- .../building-blocks/pubsub/pubsub-overview.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/daprdocs/content/en/developing-applications/building-blocks/pubsub/pubsub-overview.md b/daprdocs/content/en/developing-applications/building-blocks/pubsub/pubsub-overview.md index 0d116e9f7..8ea4b9902 100644 --- a/daprdocs/content/en/developing-applications/building-blocks/pubsub/pubsub-overview.md +++ b/daprdocs/content/en/developing-applications/building-blocks/pubsub/pubsub-overview.md @@ -47,7 +47,11 @@ The following example shows an XML content in CloudEvent v1.0 serialized as JSON > Starting with v0.9 release, Dapr no longer wraps published content into CloudEvent if the published payload is already in the CloudEvent format. -### Message Delivery +### Message Subscription + +Dapr allows two methods by which you can subscribe to topics: declarative, where subscription is defined in an external file, and programmatic, where subscription is defined in the user code. For more information see Dapr's documentation on [creating subscription](https://docs.dapr.io/developing-applications/building-blocks/pubsub/howto-publish-subscribe/#step-2-subscribe-to-topics). + +### Message Delivery In principle, Dapr considers message sucessfully delivered when the subscriber does not respond with an error after processing the message. For more granular control, Dapr's publish/subscribe API also provides explicit statuses, defined in the respons paylaod, which the subscriber can use to indicate the specific handling instructions to Dapr (e.g. `RETRY` or `DROP`). For more information message routing see [Dapr publish/subscribe API documentation] (https://docs.dapr.io/reference/api/pubsub_api/#provide-routes-for-dapr-to-deliver-topic-events) From 2ad2c7a7b76a3555d3db96832508c142071fbda0 Mon Sep 17 00:00:00 2001 From: Mukundan Sundararajan Date: Thu, 17 Dec 2020 14:10:07 -0800 Subject: [PATCH 22/30] Update docs --- .../components/component-secrets.md | 69 +++++++++---------- 1 file changed, 34 insertions(+), 35 deletions(-) diff --git a/daprdocs/content/en/operations/components/component-secrets.md b/daprdocs/content/en/operations/components/component-secrets.md index 171161457..bd4c4f20f 100644 --- a/daprdocs/content/en/operations/components/component-secrets.md +++ b/daprdocs/content/en/operations/components/component-secrets.md @@ -18,9 +18,9 @@ When running in Kubernetes, if the `auth.secretStore` is empty, the Kubernetes s Go to [this]({{< ref "howto-secrets.md" >}}) link to see all the secret stores supported by Dapr, along with information on how to configure and use them. -## Examples +## Referencing secrets -Using plain text secrets (not recommended for production): +While you have the option to use plain text secrets, this is not recommended for production: ```yml apiVersion: dapr.io/v1alpha1 @@ -38,7 +38,7 @@ spec: value: MyPassword ``` -Referencing secret from a secret store: +Instead create the secret in your secret store and reference it in the component definition: ```yml apiVersion: dapr.io/v1alpha1 @@ -60,50 +60,49 @@ auth: secretStore: ``` -When running in Kubernetes and using a Kubernetes secret store, either the field `auth.SecretStore` can be empty (as it is assumed to be Kubernetes secret store) or it needs to be `kubernetes`. For all other secret store, the `SECRET_STORE_NAME` is the name of the configured secret store component. +`SECRET_STORE_NAME` is the name of the configured [secret store component]({{< ref supported-secret-stores >}}). When running in Kubernetes and using a Kubernetes secret store, the field `auth.SecretStore` defaults to `kubernetes` and can be left empty. -The above example tells Dapr to extract a secret named `redis-secret` from the defined secret store and assign the value of the `redis-password` key in the secret to the `redisPassword` field in the Component. +The above component definition tells Dapr to extract a secret named `redis-secret` from the defined secret store and assign the value of the `redis-password` key in the secret to the `redisPassword` field in the Component. -### Creating a Kubernetes secret and referencing it in a Component +## Example + +### Referencing a Kubernetes secret The following example shows you how to create a Kubernetes secret to hold the connection string for an Event Hubs binding. -First, create the Kubernetes secret: +1. First, create the Kubernetes secret: + ```bash + kubectl create secret generic eventhubs-secret --from-literal=connectionString=********* + ``` -```bash -kubectl create secret generic eventhubs-secret --from-literal=connectionString=********* -``` +2. Next, reference the secret in your binding: + ```yaml + apiVersion: dapr.io/v1alpha1 + kind: Component + metadata: + name: eventhubs + namespace: default + spec: + type: bindings.azure.eventhubs + version: v1 + metadata: + - name: connectionString + secretKeyRef: + name: eventhubs-secret + key: connectionString + ``` -Next, reference the secret in your binding: - -```yaml -apiVersion: dapr.io/v1alpha1 -kind: Component -metadata: - name: eventhubs - namespace: default -spec: - type: bindings.azure.eventhubs - version: v1 - metadata: - - name: connectionString - secretKeyRef: - name: eventhubs-secret - key: connectionString -``` - -Finally, apply the component to the Kubernetes cluster: - -```bash -kubectl apply -f ./eventhubs.yaml -``` -## Kubernetes +3. Finally, apply the component to the Kubernetes cluster: + ```bash + kubectl apply -f ./eventhubs.yaml + ``` +## Kubernetes permissions ### Default namespace When running in Kubernetes, Dapr, during installtion, defines default Role and RoleBinding for secrets access from Kubernetes secret store in the `default` namespace. For Dapr enabled apps that fetch secrets from `default` namespace, a secret can be defined and referenced in components as shown in the example above. -### Non default namespaces +### Non-default namespaces If your Dapr enabled apps are using components that fetch secrets from non-default namespaces, apply the following resources to that namespace: From f8eda4cd32ff97d05061be41d5277f0e66c1df9b Mon Sep 17 00:00:00 2001 From: Ori Zohar Date: Thu, 17 Dec 2020 14:51:31 -0800 Subject: [PATCH 23/30] Adding embedded Dapr video to overview --- daprdocs/content/en/concepts/overview.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/daprdocs/content/en/concepts/overview.md b/daprdocs/content/en/concepts/overview.md index 7031fd901..fb1a029b9 100644 --- a/daprdocs/content/en/concepts/overview.md +++ b/daprdocs/content/en/concepts/overview.md @@ -7,7 +7,9 @@ description: > Introduction to the Distributed Application Runtime --- -Dapr is a portable, event-driven runtime that makes it easy for enterprise developers to build resilient, stateless and stateful microservice applications that run on the cloud and edge and embraces the diversity of languages and developer frameworks. +Dapr is a portable, event-driven runtime that makes it easy for any developer to build resilient, stateless and stateful applications that run on the cloud and edge and embraces the diversity of languages and developer frameworks. + +{{< youtube 9o9iDAgYBA8 >}} ## Any language, any framework, anywhere From 6ab4d3bf8ad9ccc59b46891c850c93d421b15e42 Mon Sep 17 00:00:00 2001 From: Aaron Crawfis Date: Thu, 17 Dec 2020 14:57:16 -0800 Subject: [PATCH 24/30] Update link --- .../building-blocks/secrets/howto-secrets.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 21e679fec..a73f15fe9 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 @@ -36,7 +36,7 @@ Watch this [video](https://www.youtube.com/watch?v=OtbYCBt9C34&feature=youtu.be& Now that the secret store is set up, you can call Dapr to get the secrets for a given key for a specific secret store. -For a full API reference, go [here]({{< ref "/operations/components/setup-bindings/supported-bindings/blobstorage.md" >}}). +For a full API reference, go [here]({{< ref secrets_api.md >}}). Here are a few examples in different programming languages: From 7d92fe92ab9bac4f16b9819f44e6ec5cee6c9855 Mon Sep 17 00:00:00 2001 From: Aaron Crawfis Date: Thu, 17 Dec 2020 15:15:14 -0800 Subject: [PATCH 25/30] Grammer --- .../building-blocks/pubsub/pubsub-overview.md | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/daprdocs/content/en/developing-applications/building-blocks/pubsub/pubsub-overview.md b/daprdocs/content/en/developing-applications/building-blocks/pubsub/pubsub-overview.md index 8ea4b9902..340bb84dc 100644 --- a/daprdocs/content/en/developing-applications/building-blocks/pubsub/pubsub-overview.md +++ b/daprdocs/content/en/developing-applications/building-blocks/pubsub/pubsub-overview.md @@ -8,19 +8,19 @@ description: "Overview of the Dapr Pub/Sub building block" ## Introduction -The [publish/subscribe pattern](https://en.wikipedia.org/wiki/Publish%E2%80%93subscribe_pattern) allows microservices to communicate with each other using messages. The **producer** sends messages to a **topic** without knowledge of what application will receive them. Similarly, a **consumer** will subscribe to the topic and receive its messages without any knowledge of what application producerd these messages. This pattern is especially useful when you need to decouple microservices from one another. +The [publish/subscribe pattern](https://en.wikipedia.org/wiki/Publish%E2%80%93subscribe_pattern) allows microservices to communicate with each other using messages. The **producer** sends messages to a **topic** without knowledge of what application will receive them. Similarly, a **consumer** will subscribe to the topic and receive its messages without any knowledge of what application produced these messages. This pattern is especially useful when you need to decouple microservices from one another. -The publish/subscribe API in Dapr provides at-least-once guarantee and integrates with various message brokers and queing systems. The specific implementation to your application is pluggable and configured externally at runtime. This approach removes dependancy from your application and, as a result, makes your application more portable. The complete list of available publish/subscribe implementations is available in [components-contrib](https://github.com/dapr/components-contrib/tree/master/pubsub) repository. +The publish/subscribe API in Dapr provides an at-least-once guarantee and integrates with various message brokers and queuing systems. The specific implementation to your application is pluggable and configured externally at runtime. This approach removes the dependency from your application and, as a result, makes your application more portable. The complete list of available publish/subscribe implementations is available [here]({{< ref supported-pubsub >}}). ## Features ### Publish/Subscribe API -The publish/subscribe API is located in the [spec repo]({{< ref pubsub_api.md >}}). +The publish/subscribe API is located in the [API reference]({{< ref pubsub_api.md >}}). ### Message Format -To enable message routing and to provide additonal context with each message Dapr uses the [CloudEvents 1.0 specification](https://github.com/cloudevents/spec/tree/v1.0) as its message format. Any message sent by an paylication to a topic using Dapr will autoamtically be "wrapped" in Cloud Events envelope, using `Content-Type` header value for `datacontenttype` attribute. +To enable message routing and to provide additonal context with each message Dapr uses the [CloudEvents 1.0 specification](https://github.com/cloudevents/spec/tree/v1.0) as its message format. Any message sent by an application to a topic using Dapr will automatically be "wrapped" in Cloud Events envelope, using `Content-Type` header value for `datacontenttype` attribute. Dapr implements the following Cloud Events fields: @@ -49,11 +49,11 @@ The following example shows an XML content in CloudEvent v1.0 serialized as JSON ### Message Subscription -Dapr allows two methods by which you can subscribe to topics: declarative, where subscription is defined in an external file, and programmatic, where subscription is defined in the user code. For more information see Dapr's documentation on [creating subscription](https://docs.dapr.io/developing-applications/building-blocks/pubsub/howto-publish-subscribe/#step-2-subscribe-to-topics). +Dapr allows two methods by which you can subscribe to topics: **declarative**, where a subscription is defined in an external file, and **programmatic**, where a subscription is defined in the user code. For more information see Dapr's documentation on [subscribing to a topic](https://docs.dapr.io/developing-applications/building-blocks/pubsub/howto-publish-subscribe/#step-2-subscribe-to-topics). ### Message Delivery -In principle, Dapr considers message sucessfully delivered when the subscriber does not respond with an error after processing the message. For more granular control, Dapr's publish/subscribe API also provides explicit statuses, defined in the respons paylaod, which the subscriber can use to indicate the specific handling instructions to Dapr (e.g. `RETRY` or `DROP`). For more information message routing see [Dapr publish/subscribe API documentation] (https://docs.dapr.io/reference/api/pubsub_api/#provide-routes-for-dapr-to-deliver-topic-events) +In principle, Dapr considers message successfully delivered when the subscriber responds with a non-error response after processing the message. For more granular control, Dapr's publish/subscribe API also provides explicit statuses, defined in the response payload, which the subscriber can use to indicate the specific handling instructions to Dapr (e.g. `RETRY` or `DROP`). For more information message routing see [Dapr publish/subscribe API documentation] ({{< ref "pubsub_api.md#provide-routes-for-dapr-to-deliver-topic-events" >}}) ### At-Least-Once guarantee @@ -61,13 +61,14 @@ Dapr guarantees at-least-once semantics for message delivery. That means that wh ### Consumer groups and multiple instances -The burden of dealing with concepts like consumer groups and multiple application instances using single consumer group is all handled autoamtically by Dapr. When multiple instances of the same application (same IDs) subscribe to a topic, Dapr delivers each message to only one instance of that application. Similarly, if two different applications (different IDs) subscribe to the same topic, Dapr will deliver each message to only one instance of each application. +The burden of dealing with concepts like consumer groups and multiple application instances using a single consumer group is all handled automatically by Dapr. When multiple instances of the same application (same IDs) subscribe to a topic, Dapr delivers each message to only one instance of that application. Similarly, if two different applications (different IDs) subscribe to the same topic, Dapr will deliver each message to only one instance of each application. ### Topic scoping -By default, all topics backing the Dapr publish/subscribe component (e.g. Kafka, Redis, RabbitMQ) are available to every applicatoin configured with that component. To limit which application can publish or subscibe to which topic, Dapr provides topic scopping. See [publish/subscribe topic scoping]({{< ref pubsub-scopes.md >}}) for more information. +By default, all topics backing the Dapr publish/subscribe component (e.g. Kafka, Redis, RabbitMQ) are available to every application configured with that component. To limit which application can publish or subscribe to topics, Dapr provides topic scoping. See [publish/subscribe topic scoping]({{< ref pubsub-scopes.md >}}) for more information. ## Next steps - Read the How-To guide on [publishing and subscribing]({{< ref howto-publish-subscribe.md >}}) - Learn about [Pub/Sub scopes]({{< ref pubsub-scopes.md >}}) +- Read the [API reference]({{< ref pubsub_api.md >}}) From 2194251f136f11dbd49ec36d6d56baf0b87f1d31 Mon Sep 17 00:00:00 2001 From: Aaron Crawfis Date: Thu, 17 Dec 2020 15:16:45 -0800 Subject: [PATCH 26/30] typo --- .../building-blocks/pubsub/pubsub-overview.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/daprdocs/content/en/developing-applications/building-blocks/pubsub/pubsub-overview.md b/daprdocs/content/en/developing-applications/building-blocks/pubsub/pubsub-overview.md index 340bb84dc..6e563b842 100644 --- a/daprdocs/content/en/developing-applications/building-blocks/pubsub/pubsub-overview.md +++ b/daprdocs/content/en/developing-applications/building-blocks/pubsub/pubsub-overview.md @@ -20,7 +20,7 @@ The publish/subscribe API is located in the [API reference]({{< ref pubsub_api.m ### Message Format -To enable message routing and to provide additonal context with each message Dapr uses the [CloudEvents 1.0 specification](https://github.com/cloudevents/spec/tree/v1.0) as its message format. Any message sent by an application to a topic using Dapr will automatically be "wrapped" in Cloud Events envelope, using `Content-Type` header value for `datacontenttype` attribute. +To enable message routing and to provide additional context with each message Dapr uses the [CloudEvents 1.0 specification](https://github.com/cloudevents/spec/tree/v1.0) as its message format. Any message sent by an application to a topic using Dapr will automatically be "wrapped" in Cloud Events envelope, using `Content-Type` header value for `datacontenttype` attribute. Dapr implements the following Cloud Events fields: From 4853b32da0c04360848ed95c42bd64939e7f86a2 Mon Sep 17 00:00:00 2001 From: Ori Zohar Date: Thu, 17 Dec 2020 15:27:00 -0800 Subject: [PATCH 27/30] Update pull_request_template.md --- .github/pull_request_template.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 5abcc9a8b..aa50e1dc1 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -13,8 +13,8 @@ In addition, please fill out the following to help reviewers understand this pul ## Description -_Please explain the changes you've made_ + ## Issue reference -_Please reference the issue this PR will close: #[issue number]_ + From 24569524075a3d9c456ae4de6ff31c1fdb9e11d7 Mon Sep 17 00:00:00 2001 From: Ori Zohar Date: Thu, 17 Dec 2020 15:35:24 -0800 Subject: [PATCH 28/30] Issue tempaltes comments --- .github/ISSUE_TEMPLATE/new-content-needed.md | 8 +++--- .github/ISSUE_TEMPLATE/typo.md | 10 +++---- .github/ISSUE_TEMPLATE/website-issue.md | 26 ++++++++++--------- .../wrong-information-code-steps.md | 10 +++---- 4 files changed, 28 insertions(+), 26 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/new-content-needed.md b/.github/ISSUE_TEMPLATE/new-content-needed.md index 7f89c0f90..20564eb2a 100644 --- a/.github/ISSUE_TEMPLATE/new-content-needed.md +++ b/.github/ISSUE_TEMPLATE/new-content-needed.md @@ -8,13 +8,13 @@ assignees: '' --- **What content needs to be created or modified?** -A clear and concise description of what the problem is. Ex. There should be docs on how pub/sub works... + **Describe the solution you'd like** -A clear and concise description of what you want to happen. + **Where should the new material be placed?** -Please suggest where in the docs structure the new content should be created. + **Additional context** -Add any other context or screenshots about the feature request here. + diff --git a/.github/ISSUE_TEMPLATE/typo.md b/.github/ISSUE_TEMPLATE/typo.md index f6b7f6fea..1a7a32fd9 100644 --- a/.github/ISSUE_TEMPLATE/typo.md +++ b/.github/ISSUE_TEMPLATE/typo.md @@ -8,16 +8,16 @@ assignees: '' --- **URL of the docs page** -The URL(s) on docs.dapr.io where the typo occurs + **How is it currently worded?** -Please copy and paste the sentence where the typo occurs. + **How should it be worded?** -Please correct the sentence + **Screenshots** -If applicable, add screenshots to help explain your problem. + **Additional context** -Add any other context about the problem here. + diff --git a/.github/ISSUE_TEMPLATE/website-issue.md b/.github/ISSUE_TEMPLATE/website-issue.md index 141fef38f..12afec0a3 100644 --- a/.github/ISSUE_TEMPLATE/website-issue.md +++ b/.github/ISSUE_TEMPLATE/website-issue.md @@ -8,31 +8,33 @@ assignees: AaronCrawfis --- **Describe the bug** -A clear and concise description of what the bug is. + -**To Reproduce** +**Steps to reproduce** + **Expected behavior** -A clear and concise description of what you expected to happen. + **Screenshots** -If applicable, add screenshots to help explain your problem. + **Desktop (please complete the following information):** - - OS: [e.g. iOS] - - Browser [e.g. chrome, safari] - - Version [e.g. 22] + - OS: + - Browser + - Version **Smartphone (please complete the following information):** - - Device: [e.g. iPhone6] - - OS: [e.g. iOS8.1] - - Browser [e.g. stock browser, safari] - - Version [e.g. 22] + - Device: + - OS: + - Browser + - Version **Additional context** -Add any other context about the problem here. + diff --git a/.github/ISSUE_TEMPLATE/wrong-information-code-steps.md b/.github/ISSUE_TEMPLATE/wrong-information-code-steps.md index cbf2fec27..16896b671 100644 --- a/.github/ISSUE_TEMPLATE/wrong-information-code-steps.md +++ b/.github/ISSUE_TEMPLATE/wrong-information-code-steps.md @@ -8,16 +8,16 @@ assignees: '' --- **Describe the issue** -A clear and concise description of what the bug is. + **URL of the docs** -Paste the URL (docs.dapr.io/concepts/......) of the page + **Expected content** -A clear and concise description of what you expected to happen. + **Screenshots** -If applicable, add screenshots to help explain your problem. + **Additional context** -Add any other context about the problem here. + From fbad8454af4a57d1b2ffd23899d1dbcb7dd10d27 Mon Sep 17 00:00:00 2001 From: Ori Zohar Date: Fri, 18 Dec 2020 09:58:54 -0800 Subject: [PATCH 29/30] updating dropdown --- daprdocs/config.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/daprdocs/config.toml b/daprdocs/config.toml index 8342c5b9b..382c325b9 100644 --- a/daprdocs/config.toml +++ b/daprdocs/config.toml @@ -66,8 +66,8 @@ version = "v0.11" archived_version = false [[params.versions]] - version = "v1.0-rc.1 (preview)" - url = "https://v1-rc1.docs.dapr.io" + version = "v1.0-rc.2 (preview)" + url = "https://v1-rc2.docs.dapr.io" [[params.versions]] version = "v0.11 (latest)" url = "#" From b16b2b41cb4198c0dddcc128e45fc68eea331184 Mon Sep 17 00:00:00 2001 From: Ori Zohar Date: Fri, 18 Dec 2020 10:16:13 -0800 Subject: [PATCH 30/30] enabling algolia for rc2 branch --- daprdocs/config.toml | 2 +- daprdocs/layouts/partials/hooks/body-end.html | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/daprdocs/config.toml b/daprdocs/config.toml index 127ca3edf..18e96da69 100644 --- a/daprdocs/config.toml +++ b/daprdocs/config.toml @@ -51,7 +51,7 @@ copyright = "Dapr" #privacy_policy = "https://policies.google.com/privacy" # Algolia -algolia_docsearch = false +algolia_docsearch = true offlineSearch = false # GitHub Information diff --git a/daprdocs/layouts/partials/hooks/body-end.html b/daprdocs/layouts/partials/hooks/body-end.html index 206a5e2f4..02ea284d5 100644 --- a/daprdocs/layouts/partials/hooks/body-end.html +++ b/daprdocs/layouts/partials/hooks/body-end.html @@ -5,7 +5,7 @@ // Your apiKey and indexName will be given to you once // we create your config apiKey: '54ae43aa28ce8f00c54c8d5f544d29b9', - indexName: 'crawler_dapr', + indexName: 'crawler_dapr-rc2', appId: 'O0QLQGNF38', // Replace inputSelector with a CSS selector // matching your search input