github dapr/dapr v1.0.0-rc.2
Dapr Runtime v1.0.0-rc.2

latest releases: v1.14.0-rc.1, v1.13.5, v1.13.4...
pre-release3 years ago

Dapr 1.0.0-rc.2

We're happy to announce the release of Dapr 1.0.0-rc.2!

We would like to extend our thanks to all 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 this 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 here 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 upgrade instructions for the Java SDK.

For .Net applications using Dapr .Net SDK, use SDK version 1.0.0-rc02. See upgrade instructions for the .Net SDK.

Note: This release contains a few breaking changes.

Highlights

  • Added the ability to share state between different applications using prefix strategies. Visit this link to learn more.

  • Added a bulk secrets API to get all the secrets at once from a secret store that the app has access to. Implemented in the secret components

  • 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 upgrade instructions for the Java SDK.

  • Deprecation of exporters component #2337: Tracing is now part of Dapr core, and tracing settings have moved to Configuration CRD. See this doc for information about the new tracing settings. For more detailed instructions on setting up tracing in new Configuration, check out the observability quickstart sample as well as backend-specific guides for Zipkin, Jaeger, New Relics, and OpenTelemetry trace backends like Azure AppInsight.

  • Service invocation performance test results now published and available at the dapr perf website

  • Full review on the Dapr CLI to make command parameters consistent, update descriptions, provide more examples and add capabilites such as getting the output for configuration.Note that this includes breaking changes.

  • Improvements to the Dapr metrics dashboards.

  • 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 here for the new ignoreErrors field.

  • Dependency injection (DI) for .NET actors

Acknowledgements

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

New in this release

Dapr Runtime

  • RESOLVED Enable perf test UI and alerts 1790

  • RESOLVED Make Dapr logging less actor verbose 1966

  • RESOLVED Actor Reminder not persisting 2049

  • FIXED Use of Content-Type header for wrapping pubsub payload into CloudEvent 2080

  • RESOLVED Get all secrets from secrets API 2168

  • FIXED Pubsub API will now return 403 for forbidden pubsub topics. 2323

  • ADDED timeout setting for components 2352

  • RESOLVED Review and improve bulk operations of state for a unified user experience 2368

  • RESOLVED Pass pubsub subscription metadata to pubsub component 2379

  • RESOLVED Dapr health endpoint is incorrectly reporting healthy if bindings have failed to initialize 2437

  • FIXED Changed ImagePullPolicy for Dapr sidecar Docker image from Allways to IfNotPresent 2444

  • RESOLVED dapr sidecar is crash-looping, but the logs don't indicate that anything's wrong 2449

  • RESOLVED Add components to metadata endpoint 2462

  • ADDED Reminder and State APIs for Actors in GRPC 2466

  • ENABLED DynamoDB as a supported statestore driver 2469

  • ADDED Support for imagePullSecret Secret on Helm Chart 2475

  • RESOLVED Head method not allowed by Dapr 2490

  • RESOLVED PublishRequest and SubscriberRequest need metadata 2495

  • RESOLVED Review Grafana dashboard and fix the inconsistency 2505

  • MOVED Zipkin trace configuration from Zipkin exporter into Dapr core 2521

  • RESOLVED Move Zipkin exporter code into Dapr core 2522

  • FIXED Grpc context leak on failed connection. 2533

  • ADDED configuration for webhook failure policy in sidecar injector helm chart 2549

  • FIXED can not invoke service http route '/' 2571

  • FIXED missing traceparent for http app channel call 2588

Dapr CLI

  • RESOLVED dapr init should start the Redis host even if a non-default host name is specified 418

  • UPDATED configuration command output and print yaml and json output. 487

  • FIXED empty spaces in path 513

  • MADE shorthands across commands consistent 530

  • ADDED new shorthands for different flags 531

  • UPDATED Default standalone Configuration to not use deprecated Zipkin exporter component. 534

  • ADDED --publish-app-id to the publish command 536

  • REMOVED unused and unsupported --image flag from run command. 537

  • UPDATED supported platforms for CLI commands 538

  • ADDED examples for all CLI commands 539

  • REMOVED redis-host flag from dapr init 540

Components

  • RESOLVED Expand the secret store implementation to provide a method to retrieve all secrets from a store 309

  • RESOLVED Goroutine leak in ASB pubsub when message cannot be completed/abandoned 376

  • RESOLVED Have Dapr support multiple instances registered with same app-id and load balance requests across them 514

  • RESOLVED State Management Couchbase Components, Deserialize Problem 518

  • RESOLVED Azure Key Vault Secret Store can read different secret versions. 522

  • RESOLVED Getting a weird error when trying to log more 529

  • ADDED Postmark output binding 545

  • RESOLVED Add access level to Azure Blob Storage 548

  • FIXED Bug in flattening of JSON hierarchy by local file secrets store. 550

Dashboard

  • FIXED Display dashboard version correctly in command line interface 86

  • FIXED Display Placement service in Dashboard list of Dapr services 101

  • FIXED Display dashboard in list of Dapr services 102

  • ADDED Metrics setting in Configurations screen 103

  • UPDATED Configuration to auto-fill screen 105 106 107

  • FIXED display of multiple replicas of Dapr services 108

  • UPDATED Application list action from trash can icon to text button 109

.NET SDK

  • RESOLVED Dependency injection for Actors is enabled by default for ASP.NET Core projects 171

  • RESOLVED Dapr Actors should not use BinaryFormatter 414

  • UPDATED Naming of HTTPExtension and related types to follow .NET conventions 421

  • RESOLVED InvokeMethodAsync reports cancellation using RpcException instead of OperationCanceledOperation 422

  • FIXED Timer invocation after Actor runtime app restarts. 435

  • REMOVED public constructor on ActorTypeInfo - this is a breaking change but unlikely to impact users as it was not useful before 461

  • RESOLVED Resurrect .NET configuration provider 462

  • ADDED Fluent methods to construct and manipulate HTTPExtensions class 472

  • RESOLVED Remove ContentType property from InvocationRequest class 474

  • RESOLVED Error in Dapr Documentation prevents dapr run of DaprClient from running. 481

  • UPDATED branding of .NET SDK libraries to reflect 1.0.0 RC 482

  • FIXED Bug in AspNetCore package 496

Go SDK

  • RESOLVED Cancel gRPC returns error 100

  • ADDED Expose HTTP/gRPC server address on created client 111

  • UPDATE Have consistent method/parameter names across SDKs 117

  • ADDED Parameterize request method verb on service invocation 118

  • ADDED Support HTTP query string on method invoke 125

Java SDK

Python SDK

  • FIXED Timer invocation after Actor runtime app restarts. 134

  • RESOLVED Broken kubernetes link in examples readme 147

Rust SDK

  • RESOLVED Create Cargo package 32

Documentation

  • RESOLVED Distributed Tracing with Jaeger 693

  • RESOLVED Need to update the conceptual docs for pub/sub for declarative subscribe 795

  • RESOLVED Document the Metadata API 825

  • RESOLVED Operations tracing troubleshooting guide is incorrect 886

  • RESOLVED Update middleware-concept.md 929

  • RESOLVED spelling error 937

  • RESOLVED [CONTENT] Instructions for setting up observability with New Relic 949

  • RESOLVED Added New Relic How-to docs 951

  • RESOLVED The Dapr System service dashboard do not have docs describing how to read the information. 959

  • RESOLVED Update typo and broken link 961

  • RESOLVED Update trace configurations to not use exporter component 967

  • UPDATED CLI reference documentation. 972

  • RESOLVED Update dapr-run.md 974

  • RESOLVED Update trace spec in Configuration to mention zipkin section 978

  • UPDATED overview description for pub/sub topics and subscriptions 987

  • UPDATED pubsub documentation to mention use of Content-Type header for CloudEvent wrapping. 998

  • RESOLVED Fixed typo in setup-sqlserver 1004

  • UPDATED component field for ignoreErrors 1007

  • UPDATED custom certs instructions 1008

Quickstarts

  • UPDATED observability quickstart to add instruction for self-host mode 288

  • ADDED Support for ARM and ARM64 containers in quickstarts 327

  • RESOLVED update tracing config fields 335

  • RESOLVED Update quickstarts to not use exporter components 336

Samples

  • ADDED Java version for twitter processing pipeline app sample 34 38

  • ADDED Python version for twitter processing pipeline app sample 36

Test-infra

  • ADDED CI/CD pipeline for longhaul tests 72

  • ADDED Create Prometheus dashboard for longhaul tests. 73

Homebrew-tap

  • ADDED RC releases for cli are now installable from Homebrew 11

Upgrading to Dapr 1.0.0-rc.2

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?

Local Machine / Self-hosted

Uninstall Dapr using the CLI you currently have installed. Note that this will remove the default $HOME/.dapr directory, binaries and all containers dapr_redis, dapr_placement and dapr_zipkin. Linux users need to run sudo if docker command needs sudo:

dapr uninstall --all

For RC releases like this, download the latest and greatest release from here and put the dapr binary in your PATH.

Once you have installed the CLI, run:

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:

$ dapr --version

CLI version: 1.0.0-rc.3
Runtime version: 1.0.0-rc.2

Kubernetes

Upgrading from previous version

If you previously installed Dapr using Helm, you can upgrade Dapr to a new version.
If you installed Dapr using the CLI, go here.

1. Get the latest CLI

Download the latest RC release from here and put the dapr binary in your PATH.

2. Upgrade from existing cluster running 0.11.x

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.

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
Delete exporter components

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:

dapr mtls export -o ./certs

Now, upgrade Dapr to 1.0.0-rc.2 using the below commands:

helm repo update
helm upgrade dapr dapr/dapr --version 1.0.0-rc.2 --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 --wait

Due to Helm being unable to upgrade CRDs, we will need to upgrade CRD directly.

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 observability docs 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

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.

kubectl rollout restart deploy/<DEPLOYMENT-NAME>

Once the deployment is completed, delete the 0.11.x dapr-placement service by running the following commands:

kubectl delete deployment dapr-placement -n dapr-system
kubectl delete svc dapr-placement -n dapr-system

All done!

2. Upgrade from existing cluster running 1.0.0-rc.1

First, export certs:

dapr mtls export -o ./certs
Delete exporter components

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:

helm repo update
helm upgrade dapr dapr/dapr --version 1.0.0-rc.2 --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 --wait

Due to Helm being unable to upgrade CRDs, we will need to upgrade CRD directly.

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 observability docs to leverage the new trace settings in the Configuration resource.

Once Dapr is installed completely, ensure until all pods are running

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.

kubectl rollout restart deploy/<DEPLOYMENT-NAME>

All done!

Starting fresh install on a cluster

You can use Helm 3 to install Dapr:

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

dapr uninstall --kubernetes

If you previously installed Dapr using Helm 3.X:

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.

Post installation

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

Breaking Changes

Dapr Runtime

See instructions to delete exporter components.

  • FIXED Pubsub API will now return 403 for forbidden pubsub topics. 2323

  • MOVED Zipkin trace configuration from Zipkin exporter into Dapr core 2521

Dapr CLI

  • MADE shorthands across commands consistent 530

  • UPDATED Default standalone Configuration to not use deprecated Zipkin exporter component. 534

  • ADDED --publish-app-id to the publish command 536

  • REMOVED unused and unsupported --image flag from run command. 537

  • REMOVED redis-host flag from dapr init 540

.NET SDK

See migration instructions for the .Net SDK.

  • RESOLVED Dependency injection for Actors is enabled by default for ASP.NET Core projects 171

  • RESOLVED Dapr Actors should not use BinaryFormatter 414

  • UPDATED Naming of HTTPExtension and related types to follow .NET conventions 421

  • FIXED Timer invocation after Actor runtime app restarts. 435

  • REMOVED public constructor on ActorTypeInfo - this is a breaking change but unlikely to impact users as it was not useful before 461

Go SDK

  • RESOLVED Have consistent method/parameter names across SDKs 117

Java SDK

See migration instructions for the Java SDK.

  • USE DaprException consistently across the SDK. 203

  • UPDATED Opentelemetry library version to 0.10.0 379

  • ADDED Support for Actor APIs over GRPC from app into runtime 393

Python SDK

  • FIXED Timer invocation after Actor runtime app restarts. 134

Don't miss a new dapr release

NewReleases is sending notifications on new releases.