From ba4b8bed0bc25f8a8f72fc374325e75f1266caff Mon Sep 17 00:00:00 2001 From: ItalyPaleAle <43508+ItalyPaleAle@users.noreply.github.com> Date: Mon, 17 Oct 2022 11:19:52 -0700 Subject: [PATCH 1/6] Remove ServiceInvocation.NoDefaultContentType feature flag Fixes #2869 Signed-off-by: ItalyPaleAle <43508+ItalyPaleAle@users.noreply.github.com> --- .../content/en/operations/support/support-preview-features.md | 1 - 1 file changed, 1 deletion(-) diff --git a/daprdocs/content/en/operations/support/support-preview-features.md b/daprdocs/content/en/operations/support/support-preview-features.md index 72cfb47ab..224d2e065 100644 --- a/daprdocs/content/en/operations/support/support-preview-features.md +++ b/daprdocs/content/en/operations/support/support-preview-features.md @@ -17,7 +17,6 @@ For CLI there is no explicit opt-in, just the version that this was first made a | ---------- |-------------|---------|---------------|-----------------| | **`--image-registry`** flag in Dapr CLI| In self hosted mode you can set this flag to specify any private registry to pull the container images required to install Dapr| N/A | [CLI init command reference]({{}}) | v1.7 | | **Resiliency** | Allows configuring of fine-grained policies for retries, timeouts and circuitbreaking. | `Resiliency` | [Configure Resiliency Policies]({{}}) | v1.7| -| **Service invocation without default `content-type`** | When enabled removes the default service invocation content-type header value `application/json` when no content-type is provided. This will become the default behavior in release v1.9.0. This requires you to explicitly set content-type headers where required for your apps. | `ServiceInvocation.NoDefaultContentType` | [Service Invocation]({{}}) | v1.7 | | **App Middleware** | Allow middleware components to be executed when making service-to-service calls | N/A | [App Middleware]({{}}) | v1.9 | | **App health checks** | Allows configuring app health checks | `AppHealthCheck` | [App health checks]({{}}) | v1.9 | | **Pluggable components** | Allows creating self-hosted gRPC-based components written in any language that supports gRPC. The following component APIs are supported: State stores, Pub/sub, Bindings | N/A | [Pluggable components concept]({{}})| v1.9 | From 1fdcfbd7dec4a67d1234a507fc1a225a49ed9600 Mon Sep 17 00:00:00 2001 From: Marcos Candeia Date: Tue, 18 Oct 2022 11:47:37 -0300 Subject: [PATCH 2/6] Simplifying kubernetes YAML config (#2908) * Simplifying Kubernetes YAML Signed-off-by: Marcos Candeia * Update pluggable-components-registration.md Signed-off-by: Marcos Candeia Signed-off-by: Marcos Candeia --- .../pluggable-components-registration.md | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/daprdocs/content/en/operations/components/pluggable-components/pluggable-components-registration.md b/daprdocs/content/en/operations/components/pluggable-components/pluggable-components-registration.md index c1242eaf8..068780d3b 100644 --- a/daprdocs/content/en/operations/components/pluggable-components/pluggable-components-registration.md +++ b/daprdocs/content/en/operations/components/pluggable-components/pluggable-components-registration.md @@ -174,11 +174,8 @@ spec: - name: component volumeMounts: # required, the sockets volume mount - name: dapr-unix-domain-socket - mountPath: /dapr-unix-domain-sockets + mountPath: /tmp/dapr-components-sockets image: YOUR_IMAGE_GOES_HERE:YOUR_IMAGE_VERSION - env: - - name: DAPR_COMPONENTS_SOCKETS_FOLDER # Tells the component where the sockets should be created. - value: /dapr-unix-domain-sockets ``` Before applying the deployment, let's add one more configuration: the component spec. From 63495e4d595bb146a3fadbbdaad93b1a93aa59c1 Mon Sep 17 00:00:00 2001 From: Hannah Hunter <94493363+hhunter-ms@users.noreply.github.com> Date: Thu, 20 Oct 2022 14:47:57 -0500 Subject: [PATCH 3/6] Clarify GH actions doc (#2906) * dotnet submodule Signed-off-by: Hannah Hunter * attempt to clarify doc Signed-off-by: Hannah Hunter * Revert "dotnet submodule" This reverts commit 8fdeb6182d23da53b304349c9576a07f0ffc2055. Signed-off-by: Hannah Hunter --- .../integrations/github_actions.md | 21 ++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/daprdocs/content/en/developing-applications/integrations/github_actions.md b/daprdocs/content/en/developing-applications/integrations/github_actions.md index 1853dd718..b0424bef0 100644 --- a/daprdocs/content/en/developing-applications/integrations/github_actions.md +++ b/daprdocs/content/en/developing-applications/integrations/github_actions.md @@ -3,14 +3,21 @@ type: docs weight: 5000 title: "Use the Dapr CLI in a GitHub Actions workflow" linkTitle: "GitHub Actions" -description: "Learn how to add the Dapr CLI to your GitHub Actions to deploy and manage Dapr in your environments." +description: "Add the Dapr CLI to your GitHub Actions to deploy and manage Dapr in your environments." --- -Dapr can be integrated with GitHub Actions via the [Dapr tool installer](https://github.com/marketplace/actions/dapr-tool-installer) available in the GitHub Marketplace. This installer adds the Dapr CLI to your workflow, allowing you to deploy, manage, and upgrade Dapr across your environments. +Dapr can be integrated with GitHub Actions via the [Dapr tool installer](https://github.com/marketplace/actions/dapr-tool-installer) available in the GitHub Marketplace. This installer adds the Dapr CLI to your workflow, allowing you to deploy, manage, and upgrade Dapr across your environments. -## Overview +Copy and paste the following installer snippet into your applicatin's YAML file to get started: -The `dapr/setup-dapr` action will install the specified version of the Dapr CLI on macOS, Linux and Windows runners. Once installed, you can run any [Dapr CLI command]({{< ref cli >}}) to manage your Dapr environments. +```yaml +- name: Dapr tool installer + uses: dapr/setup-dapr@v1 +``` + +The [`dapr/setup-dapr` action](https://github.com/dapr/setup-dapr) will install the specified version of the Dapr CLI on macOS, Linux, and Windows runners. Once installed, you can run any [Dapr CLI command]({{< ref cli >}}) to manage your Dapr environments. + +Refer to the [`action.yml` metadata file](https://github.com/dapr/setup-dapr/blob/main/action.yml) for details about all the inputs. ## Example @@ -34,4 +41,8 @@ The `dapr/setup-dapr` action will install the specified version of the Dapr CLI dapr status --kubernetes working-directory: ./twitter-sentiment-processor/demos/demo3 -``` \ No newline at end of file +``` + +## Next steps + +Learn more about [GitHub Actions](https://docs.github.com/en/actions). \ No newline at end of file From cae4de60c65eef4e827fadff175148ded3c5e994 Mon Sep 17 00:00:00 2001 From: Hannah Hunter <94493363+hhunter-ms@users.noreply.github.com> Date: Thu, 20 Oct 2022 14:56:42 -0500 Subject: [PATCH 4/6] dotnet submodule (#2904) Signed-off-by: Hannah Hunter Signed-off-by: Hannah Hunter Co-authored-by: Mark Fussell --- sdkdocs/dotnet | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdkdocs/dotnet b/sdkdocs/dotnet index 52b82d7ce..e87b9ad6e 160000 --- a/sdkdocs/dotnet +++ b/sdkdocs/dotnet @@ -1 +1 @@ -Subproject commit 52b82d7ce6599822a37d2528379f5ca146e286bb +Subproject commit e87b9ad6eefaa05390144d82642df13c5b4bed17 From b5ed1515adb4ff5cd6ad4c0f6599c87a2406b6d5 Mon Sep 17 00:00:00 2001 From: Hannah Hunter <94493363+hhunter-ms@users.noreply.github.com> Date: Thu, 20 Oct 2022 15:33:22 -0500 Subject: [PATCH 5/6] etag true for dynamodb (#2902) Signed-off-by: Hannah Hunter Signed-off-by: Hannah Hunter Co-authored-by: Mark Fussell --- daprdocs/data/components/state_stores/aws.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/daprdocs/data/components/state_stores/aws.yaml b/daprdocs/data/components/state_stores/aws.yaml index 81584efb0..65440d580 100644 --- a/daprdocs/data/components/state_stores/aws.yaml +++ b/daprdocs/data/components/state_stores/aws.yaml @@ -6,6 +6,6 @@ features: crud: true transactions: false - etag: false + etag: true ttl: true query: false From 3422654634b52ebed8c56c27e1887b2995e4cf0f Mon Sep 17 00:00:00 2001 From: Hannah Hunter <94493363+hhunter-ms@users.noreply.github.com> Date: Thu, 20 Oct 2022 15:54:04 -0500 Subject: [PATCH 6/6] [Run w/o docker] Add tabs and port number (#2905) * add tabs and window example Signed-off-by: Hannah Hunter * edits per Mark Signed-off-by: Hannah Hunter Signed-off-by: Hannah Hunter Co-authored-by: Mark Fussell --- .../self-hosted/self-hosted-no-docker.md | 79 +++++++++++++++---- 1 file changed, 62 insertions(+), 17 deletions(-) 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 0fdf85a6a..8bbe050cd 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 @@ -6,36 +6,49 @@ weight: 30000 description: "How to deploy and run Dapr in self-hosted mode without Docker installed on the local machine" --- -This article provides guidance on running Dapr in self-hosted mode without Docker. - ## Prerequisites -- [Dapr CLI]({{< ref "install-dapr-selfhost.md#installing-dapr-cli" >}}) +- [Install the Dapr CLI]({{< ref "install-dapr-selfhost.md#installing-dapr-cli" >}}) ## Initialize Dapr without containers -The Dapr CLI provides an option to initialize Dapr using slim init, without the default creation of a development environment which has a dependency on Docker. To initialize Dapr with slim init, after installing the Dapr CLI use the following command: +The Dapr CLI provides an option to initialize Dapr using slim init, without the default creation of a development environment with a dependency on Docker. To initialize Dapr with slim init, after installing the Dapr CLI, use the following command: ```bash dapr init --slim ``` -In this mode two different binaries are installed `daprd` and `placement`. The `placement` binary is needed to enable [actors]({{< ref "actors-overview.md" >}}) in a Dapr self-hosted installation. +Two different binaries are installed: +- `daprd` +- `placement` -In this mode no default components such as Redis are installed for state management or pub/sub. This means, that aside from [Service Invocation]({{< ref "service-invocation-overview.md" >}}), no other building block functionality is available on install out of the box. Users are free to setup their own environment and custom components. Furthermore, actor based service invocation is possible if a state store is configured as explained in the following sections. +The `placement` binary is needed to enable [actors]({{< ref "actors-overview.md" >}}) in a Dapr self-hosted installation. -## Service invocation -See [this sample](https://github.com/dapr/samples/tree/master/hello-dapr-slim) for an example on how to perform service invocation in this mode. +In slim init mode, no default components (such as Redis) are installed for state management or pub/sub. This means that, aside from [service invocation]({{< ref "service-invocation-overview.md" >}}), no other building block functionality is available "out-of-the-box" on install. Instead, you can set up your own environment and custom components. -## Enabling state management or pub/sub +Actor-based service invocation is possible if a state store is configured, as explained in the following sections. -See configuring Redis in self-hosted mode [without docker](https://redis.io/topics/quickstart) to enable a local state store or pub/sub broker for messaging. +## Perform service invocation +See [the _Hello Dapr slim_ sample](https://github.com/dapr/samples/tree/master/hello-dapr-slim) for an example on how to perform service invocation in slim init mode. -## Enabling actors +## Enable state management or pub/sub -The placement service must be run locally to enable actor placement. Also, a [transactional state store that supports ETags]({{< ref "supported-state-stores.md" >}}) must be enabled to use actors, for example, [Redis configured in self-hosted mode](https://redis.io/topics/quickstart). +See documentation around [configuring Redis in self-hosted mode without Docker](https://redis.io/topics/quickstart) to enable a local state store or pub/sub broker for messaging. -By default for Linux/MacOS the `placement` binary is installed in `/$HOME/.dapr/bin` or for Windows at `%USERPROFILE%\.dapr\bin`. +## Enable actors + +To enable actor placement: +- Run the placement service locally. +- Enable a [transactional state store that supports ETags]({{< ref "supported-state-stores.md" >}}) to use actors. For example, [Redis configured in self-hosted mode](https://redis.io/topics/quickstart). + +By default, the `placement` binary is installed in: + +- For Linux/MacOS: `/$HOME/.dapr/bin` +- For Windows: `%USERPROFILE%\.dapr\bin` + +{{< tabs "Linux/MacOS" "Windows">}} + +{{% codetab %}} ```bash $ $HOME/.dapr/bin/placement @@ -51,16 +64,48 @@ 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-actors-howto.md" >}}) for running an application with Actors enabled. +{{% /codetab %}} -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. +{{% codetab %}} + +When running standalone placement on Windows, specify port 6050: + +```bash +%USERPROFILE%/.dapr/bin/placement.exe -port 6050 + +time="2022-10-17T14:56:55.4055836-05:00" level=info msg="starting Dapr Placement Service -- version 1.9.0 -- commit fdce5f1f1b76012291c888113169aee845f25ef8" instance=LAPTOP-OMK50S19 scope=dapr.placement type=log ver=1.9.0 +time="2022-10-17T14:56:55.4066226-05:00" level=info msg="log level set to: info" instance=LAPTOP-OMK50S19 scope=dapr.placement type=log ver=1.9.0 +time="2022-10-17T14:56:55.4067306-05:00" level=info msg="metrics server started on :9090/" instance=LAPTOP-OMK50S19 scope=dapr.metrics type=log ver=1.9.0 +time="2022-10-17T14:56:55.4077529-05:00" level=info msg="Raft server is starting on 127.0.0.1:8201..." instance=LAPTOP-OMK50S19 scope=dapr.placement.raft type=log ver=1.9.0 +time="2022-10-17T14:56:55.4077529-05:00" level=info msg="placement service started on port 6050" instance=LAPTOP-OMK50S19 scope=dapr.placement type=log ver=1.9.0 +time="2022-10-17T14:56:55.4082772-05:00" level=info msg="Healthz server is listening on :8080" instance=LAPTOP-OMK50S19 scope=dapr.placement type=log ver=1.9.0 +time="2022-10-17T14:56:56.8232286-05:00" level=info msg="cluster leadership acquired" instance=LAPTOP-OMK50S19 scope=dapr.placement type=log ver=1.9.0 +time="2022-10-17T14:56:56.8232286-05:00" level=info msg="leader is established." instance=LAPTOP-OMK50S19 scope=dapr.placement type=log ver=1.9.0 + +``` + +{{% /codetab %}} + +{{< /tabs >}} + +Now, to run an application with actors enabled, you can follow the sample example created for: +- [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) +- [dotnet-sdk]({{< ref "dotnet-actors-howto.md" >}}) + +Update the state store configuration files to match the Redis host and password with your setup. + +Enable it as a actor state store by making the metadata piece similar to the [sample Java Redis component](https://github.com/dapr/java-sdk/blob/master/examples/components/state/redis.yaml) definition. ```yaml - name: actorStateStore value: "true" ``` +## Clean up -## Cleanup +When finished, remove the binaries by following [Uninstall Dapr in a self-hosted environment]({{< ref self-hosted-uninstall >}}) to remove the binaries. -Follow the uninstall [instructions]({{< ref "install-dapr-selfhost.md#uninstall-dapr-in-a-self-hosted-mode" >}}) to remove the binaries. +## Next steps +- Run Dapr with [Podman]({{< ref self-hosted-with-podman.md >}}), using the default [Docker]({{< ref install-dapr-selfhost.md >}}), or in an [airgap environment]({{< ref self-hosted-airgap.md >}}) +- [Upgrade Dapr in self-hosted mode]({{< ref self-hosted-upgrade >}}) \ No newline at end of file