Project: Dapr (App Definition and Development / Application Definition & Image Build)
File: v1.0.0-rc.2.md

We're happy to announce the release of Dapr 1.0.0-rc.2! We would like to extend our new and existing contributors who helped make this release happen. This is a release candidate version as we progress towards Dapr v1.0.0. We appreciate you trying Dapr and providing feedback on this release. See section on upgrading Dapr to version 1.0.0-rc.2. Dapr CLI version in this release is 1.0.0-rc.3 and is not compatible with runtime versions prior to 1.0.0-rc.2. Download Dapr CLI 1.0.0-rc.3 from and put the `dapr` binary in your PATH, or use the rc1 install script in the Getting Started guide. For Java applications using Dapr Java SDK, use SDK version 1.0.0-rc-2. See . For .Net applications using Dapr .Net SDK, use SDK version 1.0.0-rc02. See . Added the ability to share state between different applications using prefix strategies. Visit link to learn more. Added a to get all the secrets at once from a secret store that the app has access to. Implemented in the Actors in Java SDK communicate to Dapr sidecar via GRPC. This allows better performance for invocation of Actor methods, timers and reminders. `ActorProxyBuilder` is now closeable, holding an instance of gRPC's `ManagedChannel` class to be closed. See . Deprecation of exporters component : Tracing is now part of Dapr core, and tracing settings have moved to Configuration CRD. See for information about the new tracing settings. For more detailed instructions on setting up tracing in new Configuration, check out the as well as backend-specific guides for , , , and . Service invocation performance test results now published and available at the Full review on the to make command parameters consistent, update descriptions, provide more examples and add capabilities such as getting the .Note that this includes breaking changes. Improvements to the . Improvements to the Dapr operational dashboard. Round robin load balancing of mDNS requests. This supports multiple app instances for a single standalone app id with round robin load balancing across them for environments that support mDNS, such a physical machines. For example, if you have 1 instance of app A and 5 instances of app B and then call from A->B, Dapr round robins' between the 5 B instances. Added the option to specify whether Dapr should ignore errors when loading a component and continue initialization. See for the new `ignoreErrors` field. for .NET actors Thanks to everyone who made this release possible! @1046102779, @DarqueWarrior, @PeterGerrard, @Phiph, @ProfessorMc, @Qalifah, @ZeyadYasser, @abserari, @artursouza, @cmendible, @cvictory, @eNeRGy164, @halspang, @harrykimpel, @issacg, @jigargandhi, @jjcollinge, @juazasan, @ksivamuthu, @mchmarny, @msfussell, @mukundansundar, @rynowak, @sau-lanvy, @shubham1172, @skyao, @tcnghia, @tianvan, @trondhindenes, @vinayada1, @wcs1only, @wwulfric, @yaron2, @youngbupark RESOLVED Enable perf test UI and alerts RESOLVED Make Dapr logging less actor verbose RESOLVED Actor Reminder not persisting FIXED Use of Content-Type header for wrapping pubsub payload into CloudEvent RESOLVED Get all secrets from secrets API FIXED Pubsub API will now return 403 for forbidden pubsub

ADDED timeout setting for components RESOLVED Review and improve bulk operations of state for a unified user experience RESOLVED Pass pubsub subscription metadata to pubsub component RESOLVED Dapr health endpoint is incorrectly reporting healthy if bindings have failed to initialize FIXED Changed ImagePullPolicy for Dapr sidecar Docker image from `Allways` to `IfNotPresent` RESOLVED dapr sidecar is crash-looping, but the logs don't indicate that anything's wrong RESOLVED Add components to metadata endpoint ADDED Reminder and State APIs for Actors in GRPC ENABLED DynamoDB as a supported statestore driver ADDED Support for imagePullSecret Secret on Helm Chart RESOLVED Head method not allowed by Dapr RESOLVED PublishRequest and SubscriberRequest need metadata RESOLVED Review Grafana dashboard and fix the inconsistency MOVED Zipkin trace configuration from Zipkin exporter into Dapr core RESOLVED Move Zipkin exporter code into Dapr core FIXED Grpc context leak on failed connection. ADDED configuration for webhook failure policy in sidecar injector helm chart FIXED can not invoke service http route '/' FIXED missing traceparent for http app channel call RESOLVED `dapr init` should start the Redis host even if a non-default host name is specified UPDATED configuration command output and print yaml and json output. FIXED empty spaces in path MADE shorthands across commands consistent ADDED new shorthands for different flags UPDATED Default standalone Configuration to not use deprecated Zipkin exporter component. ADDED --publish-app-id to the publish command REMOVED unused and unsupported `--image` flag from `run` command. UPDATED supported platforms for CLI commands ADDED examples for all CLI commands REMOVED `redis-host` flag from `dapr init` RESOLVED Expand the secret store implementation to provide a method to retrieve all secrets from a store RESOLVED Goroutine leak in ASB pubsub when message cannot be completed/abandoned RESOLVED Have Dapr support multiple instances registered with same app-id and load balance requests across them RESOLVED State Management Couchbase Components, Deserialize Problem RESOLVED Azure Key Vault Secret Store can read different secret versions. RESOLVED Getting a weird error when trying to log more ADDED Postmark output binding RESOLVED Add access level to Azure Blob Storage FIXED Bug in flattening of JSON hierarchy by local file secrets store. FIXED Display dashboard version correctly in command line interface FIXED Display Placement service in Dashboard list of Dapr services FIXED Display dashboard in list of Dapr services ADDED Metrics setting in Configurations screen UPDATED Configuration to auto-fill screen FIXED display of multiple replicas of Dapr services UPDATED Application list action from trash can icon to text button RESOLVED Dependency injection for Actors is enabled by default for ASP.NET Core projects RESOLVED Dapr Actors should not use BinaryFormatter UPDATED Naming of HTTPExtension and related types to follow .NET conventions RESOLVED InvokeMethodAsync reports cancellation using RpcException instead of OperationCanceledOperation FIXED Timer invocation after Actor runtime app restarts. REMOVED public constructor on ActorTypeInfo - this is a breaking change but unlikely to impact users as it was not useful before RESOLVED Resurrect .NET configuration provider ADDED Fluent methods to construct and manipulate HTTPExtensions class RESOLVED Remove ContentType property from InvocationRequest class RESOLVED Error in Dapr Documentation prevents dapr run of DaprClient from running. UPDATED branding of .NET SDK libraries to reflect 1.0.0 RC FIXED Bug in AspNetCore package RESOLVED Cancel gRPC returns error ADDED Expose HTTP/gRPC server address on created client UPDATE Have consistent method/parameter names across SDKs ADDED Parameterize request method verb on service invocation ADDED Support HTTP query string on method invoke USED DaprException consistently across the SDK. UPDATED Opentelemetry library version to 0.10.0 ADDED Support for Actor APIs over GRPC from app into runtime UPDATED Java SDK trace sample at https://github.com/dapr/java-sdk/blob/v0.10.0/examples/src/main/java/io/dapr/examples/tracing/README.md to not use exporter components. FIXED Timer invocation after Actor runtime app restarts. RESOLVED Broken kubernetes link in examples readme RESOLVED Create Cargo package RESOLVED Distributed Tracing with Jaeger RESOLVED Need to update the conceptual docs for pub/sub for declarative subscribe RESOLVED Document the Metadata API RESOLVED Operations tracing troubleshooting guide is incorrect RESOLVED Update middleware-concept.md RESOLVED spelling error RESOLVED RESOLVED Added New Relic How-to docs RESOLVED The Dapr System service dashboard do not have docs describing how to read the information. RESOLVED Update typo and broken link RESOLVED Update trace configurations to not use exporter component UPDATED CLI reference documentation. RESOLVED Update

RESOLVED Update trace spec in Configuration to mention `zipkin` section UPDATED overview description for pub/sub topics and subscriptions UPDATED pubsub documentation to mention use of Content-Type header for CloudEvent wrapping. RESOLVED Fixed typo in setup-sqlserver UPDATED component field for ignoreErrors UPDATED custom certs instructions UPDATED observability quickstart to add instruction for self-host mode ADDED Support for ARM and ARM64 containers in quickstarts RESOLVED update tracing config fields RESOLVED Update quickstarts to not use exporter components ADDED Java version for twitter processing pipeline app sample ADDED Python version for twitter processing pipeline app sample ADDED CI/CD pipeline for longhaul tests ADDED Create Prometheus dashboard for longhaul tests. ADDED RC releases for cli are now installable from Homebrew To upgrade to this release of Dapr, follow the steps here to ensure a smooth upgrade. You know, the one where you don't get red errors on the terminal.. we all hate that, right? Uninstall Dapr using the CLI you currently have installed. Note that this will remove the default $HOME/.dapr directory, binaries and all containers daprredis, daprplacement and dapr_zipkin. Linux users need to run sudo if docker command needs sudo: ```bash dapr uninstall --all ``` For RC releases like this, download the latest and greatest release from and put the `dapr` binary in your PATH. Once you have installed the CLI, run: ```bash dapr init --runtime-version=1.0.0-rc.2 ``` Wait for the update to finish, ensure you are using the latest version of Dapr(1.0.0-rc.2) with: ```bash $ dapr --version CLI version: 1.0.0-rc.3 Runtime version: 1.0.0-rc.2 ``` If you previously installed Dapr using Helm, you can upgrade Dapr to a new version. If you installed Dapr using the CLI, go . Download the latest RC release from and put the `dapr` binary in your PATH. Follow instructions below to migrate from 0.11.x placement service to 1.0.0-rc.2 placement service safely. First run these two commands to disable `helm upgrade` from uninstall 0.11.x placement service. ```sh kubectl annotate deployment dapr-placement helm.sh/resource-policy=keep -n dapr-system kubectl annotate svc dapr-placement helm.sh/resource-policy=keep -n dapr-system ``` Now, check if you have any exporter type components, by running the following command `kubectl get components -o=custom-columns='NAME:metadata.name,TYPE:spec.type'` and look for components with type `exporter.*`. Since exporter components are no longer supported, you will need to remove them prior to upgrading. You may want to print their content for your reference using `kubectl get component <component-name> -o yaml`. Then, export certs: ```sh dapr mtls export -o ./certs ``` Now, upgrade Dapr to 1.0.0-rc.2 using the below commands: ```sh helm repo update helm upgrade dapr dapr/dapr --version 1.0.0-rc.2 --namespace dapr-system --reset-values --set-file daprsentry.tls.root.certPEM=./certs/ca.crt --set-file daprsentry.tls.issuer.certPEM=./certs/issuer.crt --set-file dapr_sentry.tls.issuer.keyPEM=./certs/issuer.key --set global.ha.enabled=true --wait ``` Due to Helm being unable to upgrade CRDs, we will need to upgrade CRD directly. ```sh kubectl replace -f https://raw.githubusercontent.com/dapr/dapr/21636a9237f2dcecd9c80f329e99b512e8377739/charts/dapr/crds/configuration.yaml kubectl replace -f https://raw.githubusercontent.com/dapr/dapr/21636a9237f2dcecd9c80f329e99b512e8377739/charts/dapr/crds/components.yaml ``` To re-incorporate your tracing settings, follow the to leverage the new trace settings in the Configuration resource. Once Dapr is installed completely, ensure that 0.11.x dapr-placement service is still running and wait until all pods are running ```sh kubectl get pods -n dapr-system -w NAME READY STATUS RESTARTS AGE dapr-dashboard-69f5c5c867-mqhg4 1/1 Running 0 42s dapr-operator-5cdd6b7f9c-9sl7g 1/1 Running 0 41s dapr-operator-5cdd6b7f9c-jkzjs 1/1 Running 0 29s dapr-operator-5cdd6b7f9c-qzp8n 1/1 Running 0 34s dapr-placement-5dcb574777-nlq4t 1/1 Running 0 76s - 0.11.x placement dapr-placement-server-0 1/1 Running 0 41s dapr-placement-server-1 1/1 Running 0 41s dapr-placement-server-2 1/1 Running 0 41s dapr-sentry-84565c747b-7bh8h 1/1 Running 0 35s dapr-sentry-84565c747b-fdlls 1/1 Running 0 41s dapr-sentry-84565c747b-ldnsf 1/1 Running 0 29s dapr-sidecar-injector-68f868668f-6xnbt 1/1 Running 0 41s dapr-sidecar-injector-68f868668f-j7jcq 1/1 Running 0 29s dapr-sidecar-injector-68f868668f-ltxq4 1/1 Running 0 36s ``` Restart your application deployments to update the Dapr runtime. ```sh kubectl rollout restart deploy/<DEPLOYMENT-NAME> ``` Once the deployment is completed, delete the

dapr-placement service by running the following commands: ```sh kubectl delete deployment dapr-placement -n dapr-system kubectl delete svc dapr-placement -n dapr-system ``` All done! First, export certs: ```sh dapr mtls export -o ./certs ``` Now, check if you have any exporter type components, by running the following command `kubectl get components -o=custom-columns='NAME:metadata.name,TYPE:spec.type'` and look for components with type `exporter.*`. Since exporter components are no longer supported, you will need to remove them prior to upgrading. You may want to print their content for your reference using `kubectl get component <component-name> -o yaml`. Then, upgrade Dapr to 1.0.0-rc.2 using the below commands: ```sh helm repo update helm upgrade dapr dapr/dapr --version 1.0.0-rc.2 --namespace dapr-system --reset-values --set-file daprsentry.tls.root.certPEM=./certs/ca.crt --set-file daprsentry.tls.issuer.certPEM=./certs/issuer.crt --set-file dapr_sentry.tls.issuer.keyPEM=./certs/issuer.key --set global.ha.enabled=true --wait ``` Due to Helm being unable to upgrade CRDs, we will need to upgrade CRD directly. ```sh kubectl replace -f https://raw.githubusercontent.com/dapr/dapr/21636a9237f2dcecd9c80f329e99b512e8377739/charts/dapr/crds/configuration.yaml kubectl replace -f https://raw.githubusercontent.com/dapr/dapr/21636a9237f2dcecd9c80f329e99b512e8377739/charts/dapr/crds/components.yaml ``` To re-incorporate your tracing settings, follow the to leverage the new trace settings in the Configuration resource. Once Dapr is installed completely, ensure until all pods are running ```sh kubectl get pods -n dapr-system -w NAME READY STATUS RESTARTS AGE dapr-dashboard-69f5c5c867-mqhg4 1/1 Running 0 42s dapr-operator-5cdd6b7f9c-9sl7g 1/1 Running 0 41s dapr-operator-5cdd6b7f9c-jkzjs 1/1 Running 0 29s dapr-operator-5cdd6b7f9c-qzp8n 1/1 Running 0 34s dapr-placement-server-0 1/1 Running 0 41s dapr-placement-server-1 1/1 Running 0 41s dapr-placement-server-2 1/1 Running 0 41s dapr-sentry-84565c747b-7bh8h 1/1 Running 0 35s dapr-sentry-84565c747b-fdlls 1/1 Running 0 41s dapr-sentry-84565c747b-ldnsf 1/1 Running 0 29s dapr-sidecar-injector-68f868668f-6xnbt 1/1 Running 0 41s dapr-sidecar-injector-68f868668f-j7jcq 1/1 Running 0 29s dapr-sidecar-injector-68f868668f-ltxq4 1/1 Running 0 36s ``` Restart your application deployments to update the Dapr runtime. ```sh kubectl rollout restart deploy/<DEPLOYMENT-NAME> ``` All done! You can use Helm 3 to install Dapr: ```sh helm repo add dapr https://dapr.github.io/helm-charts/ helm repo update kubectl create namespace dapr-system helm install dapr dapr/dapr --version 1.0.0-rc.2 --namespace dapr-system ``` Alternatively, you can use the latest version of CLI: ``` dapr init --runtime-version=1.0.0-rc.2 --kubernetes ``` If you previously installed Dapr on your Kubernetes cluster using the Dapr CLI, run: Note: Make sure you're uninstalling with your existing CLI version ```bash dapr uninstall --kubernetes ``` If you previously installed Dapr using Helm 3.X: ```bash helm uninstall dapr -n dapr-system ``` If you installed Dapr with Helm to a namespace other than `dapr-system`, modify the uninstall command above to account for that. Verify the control plane pods are running and are healthy: ``` $ kubectl get pods -n dapr-system NAME READY STATUS RESTARTS AGE dapr-dashboard-85cc6c9f7d-hzk69 1/1 Running 0 13m dapr-operator-84985cb985-h2zdv 1/1 Running 0 13m dapr-placement-server-0 1/1 Running 0 13m dapr-sentry-5974c7cb6d-9bnqd 1/1 Running 0 13m dapr-sidecar-injector-5b5bb9454-sfmmx 1/1 Running 0 13m ``` See to delete exporter components. FIXED Pubsub API will now return 403 for forbidden pubsub topics. MOVED Zipkin trace configuration from Zipkin exporter into Dapr core MADE shorthands across commands consistent UPDATED Default standalone Configuration to not use deprecated Zipkin exporter component. ADDED `--publish-app-id` to the publish command REMOVED unused and unsupported `--image` flag from `run` command. REMOVED `redis-host` flag from `dapr init` See for the .Net SDK. RESOLVED Dependency injection for Actors is enabled by default for ASP.NET Core projects RESOLVED Dapr Actors should not use BinaryFormatter UPDATED Naming of HTTPExtension and related types to follow .NET conventions FIXED Timer invocation after Actor runtime app restarts. REMOVED public constructor on ActorTypeInfo - this is a breaking change but unlikely to impact users as it was not useful before RESOLVED Have consistent method/parameter names across SDKs See for the Java SDK. USE DaprException consistently across the SDK. UPDATED Opentelemetry library version to 0.10.0 ADDED Support for Actor APIs over GRPC from app into runtime FIXED Timer invocation after Actor runtime app