docs/release_notes/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 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
daprbinary 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.
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 capabilities 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
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 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
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
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
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
FIXED display of multiple replicas of Dapr services 108
UPDATED Application list action from trash can icon to text button 109
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
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
USED 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
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. 404
FIXED Timer invocation after Actor runtime app restarts. 134
RESOLVED Broken kubernetes link in examples readme 147
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
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
ADDED Java version for twitter processing pipeline app sample 34 38
ADDED Python version for twitter processing pipeline app sample 36
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 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
If you previously installed Dapr using Helm, you can upgrade Dapr to a new version. If you installed Dapr using the CLI, go here.
Download the latest RC release from here 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.
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:
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!
First, export certs:
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:
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!
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.
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 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
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
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
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