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

latest releases: v1.13.2, v1.13.2-rc.1, v1.13.1...
pre-release3 years ago

Dapr 1.0.0-rc.1

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

We would like to extend our thanks to all new and existing contributors who helped make this release happen.

Highlights

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.

Dapr CLI version 1.0.0-rc.1 is not compatible with previous runtime versions. Download Dapr CLI 1.0.0-rc.1 from here and put the dapr binary in your PATH.

For Java applications using Dapr Java SDK, use SDK version 0.10.0

For .Net applications using Dapr .Net SDK, use SDK version 0.12.0-preview01.

Note: This release contains a few breaking changes.

See this section on upgrading Dapr to version 1.0.0-rc.1.

New in this release

Dapr Runtime

  • ENABLED placement service to run with multiple instances 663

  • UPDATED documentation to use OpenTelemetry instead of Local Forward 1080

  • ENABLED secrets API before application endpoint is ready 1493

  • IMPROVED RabbitMQ's PubSub implementation to automatically reconnect on 'channel/connection is not open' 1688

  • FIXED verbosity for 'host removed' logs in placement service 1726

  • UPDATED error handling in HTTP and gRPC APIs 1742

  • ADDED ability for Dapr to use a non-secure SSL connection when communicating with the app 1883

  • FIXED Component YAMLs needing quoted values for Kubernetes 1893

  • End to end tests now save container logs 2063

  • FIXED gRPC error handing to follow grpc error handling guide 2067

  • ADDED RFC1123 validation for app IDs 2068

  • UPDATED Change hardcoded integer status codes to constants for HTTP API 2070

  • FIXED memory leak and high memory utilization in actor building block 2093

  • IMPROVED Actor distribution and made replication factor configurable 2094

  • REMOVE redundant 'metadata' in dapr_sidecar_injector_service.yaml 2136

  • FIXED Dapr does not report error when component category is invalid 2146

  • FIXED disabling metrics configuration 2163

  • ADDED E2E tests option to run in HA mode 2188

  • ADDED permission of "Watch" for crds of Subscriptions 2208

  • ADDED Unit tests for Sentry and gRPC server 2212

  • FIXED wrong error response when grpc callee returns error for http->gRPC invocation 2220

  • FIXED .Net gRPC appcallback server OnInvoke callback failure 2221

  • FIXED input binding load order 2222

  • REMOVED deprecated flags from daprd main 2232

  • FIXED Pubsub fails delivery on 200 with empty JSON 2235

  • ADDED configurable healthz port for placement service 2242

  • VALIDATED CosmosDB state store for actors 2243

  • CHANGED preferred node affinity to required 2245

  • ADDED codecov rules to ensure that no PR reduces unit test coverage 2262

  • FIXED Dapr hiding gRPC transport error in service invocation 2272

  • ADDED the feature to collect Dapr control plane service logs when the test is done 2284

  • CHANGED Cors middleware to optional + added tests 2285

  • IMPROVED performance by removing fmt.Sprintf from hot path for service invocation 2287

  • FIXED Update OpenTelemetry attribute keys db.{type,url,instance} to the latest spec db.{system,connection_string,name} 2288

  • FIXED memory leak in app health check for actor 2292

  • REMOVED 60 seconds timeout on app channel 2301

  • USE Go 1.15.3 to build binary 2303

  • FIXED race condition of busy flag and channel and unnecessary heap alloc in actor locking 2306

  • REMOVED package deprecation warning for protoc-gen-go 2313

  • ADDED Additional unit test coverage for HTTP API 2315

  • ADDED HTTP PUT support for statestore APIs 2316

  • ADDED limits/requests in helm charts 2325

  • FIXED Dapr API status codes for HTTP audited and updated to match documentation 2338

  • FIXED memory leak in pending actor call metric 2339

  • FIXED unnecessary memory alloc for actor in actor invocation call flow 2340

  • SWITCH apiextensions.k8s.io/v1beta1 to apiextensions.k8s.io/v1 2354

  • ADDED the option to generate crd via controller-gen 2355

  • ADDED Raft server and its state for placement 2373

  • USE Raft state to maintain dapr runtime host state and hashing table 2374

  • ENABLED placement client in runtime to connect the leader of placement 2375

  • UPDATED helm chart to install three placement replicas for HA mode 2376

  • ADDED graceful server shutdown for placement 2377

  • ADDED gRPC method to register actor timer 2388

  • ADDED gRPC method to unregister actor timer 2397

  • ADDED gRPC method to invoke actors 2400

  • FIXED Fail Dapr sidecar if specified configuration cannot be loaded properly 2425

Dapr CLI

  • IMPROVED help messages 421

  • UPGRADED Golang Lint to 1.31.0 443

  • SKIP container check for Redis when --redis-host is specified 479

  • ADDED Enable SSL connection flag 494

  • REMOVED deprecated commands 503

  • FIXED azure auth import in CLI 504

  • ADDED Version and scopes field to dapr components -k output 505

Components

  • ADDED Apple Push Notification Service Output Binding 480

  • ENABLED metadata to force HTTPS on final redirect from oauth2 middleware 486

  • REMOVE CloudKMS from Secret Stores 495

  • ADDED Ack wait and MaxInFlight Parameters to Nats Streaming Component 505

  • FIXED Azure Blob Storage binding not saving JSON values 515

Dashboard

  • FIXED Display app name (id) in Dashboard on K8s 87

.NET SDK

  • ADDED HTTP status code for error in method invocation 400

  • ADDED configurable log level in .Net SDK 406

  • USE Guid to generate unique Actor ID 415

  • FIXED Bug in the Actors SDK for dotnet-sdk. Actor Reference and Id can now be stored 444

  • FIXED documentation for Actor sample in .Net 450

Java SDK

  • FIXED Save byte[] in actor's state store 352

  • FIXED register timer method to return timer's name, enabling use of auto-generated values 355

  • FIXED withObjectSerializer method to return generic type in ActorProxyBuilder 356

  • UPDATED dependencies expect opentelemetry 361

  • FIXED Timer invocation after Actor runtime app restarts 362

  • ADDED Added codecov rules to ensure that no PR reduces unit test coverage 364

  • FIXED high memory consumption issue in Java SDK for HTTP communication 370

  • UPDATED opentelemetry library to 0.7.1. CHANGED repo ID of spring repo to spring 382

Python SDK

  • ADDED W3C trace headers to Dapr API calls 97

  • Updated dapr python sdk pkg documents 125

  • ADDED missing etag to StateResponse 128

  • ADDED Added codecov reports to python-sdk PRs 133

Documentation

  • UPDATED environment-setup.md 841

  • ADDED Performance section in docs 863

  • FIXED documentation link to "Sending Messages to Output Bindings" 867

  • ADDED Documentation for enabling Dapr to talk to an app via an SSL connection 868

  • FIXED dead link to Ignite video session 878

  • FIXED links in page developing-applications/ides/vscode-remotecontainers/ 887

Upgrading to Dapr 1.0.0-rc.1

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.1

Wait for the update to finish, ensure you are using the latest version of Dapr(1.0.0-rc.1) with:

$ dapr --version

CLI version: 1.0.0-rc.1
Runtime version: 1.0.0-rc.1

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 existing cluster

Follow instructions below to migrate from 0.11.x placement service to 1.0.0-rc.1 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

Then, export certs:

dapr mtls export -o ./certs

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

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

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!

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
helm install dapr dapr/dapr --version 1.0.0-rc.1 --namespace dapr-system

Alternatively, you can use the newer version of CLI:

dapr init --runtime-version=1.0.0-rc.1 --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

After Dapr 1.0.0-rc.1 has been installed, perform a rolling restart for your deployments to pick up the new version of the sidecar.
This can be done with:

kubectl rollout restart deploy/<deployment-name>

Breaking Changes

Dapr Runtime

  • REMOVED deprecated flags from daprd main 2232

  • FIXED Pubsub fails delivery on 200 with empty JSON 2235

  • FIXED Dapr API status codes for HTTP audited and updated to match documentation 2338

  • SWITCH apiextensions.k8s.io/v1beta1 to apiextensions.k8s.io/v1 2354

Dapr CLI

  • REMOVED deprecated commands 503

Acknowledgements

Thanks to everyone who made this release possible!

Special thanks to @jigargandhi for the amazing work on 1493.
Also, thanks to @skyao for the great work on 2101

@Li-Yanzhi, @TenSt, @abserari, @ajaysingh77, @artursouza, @beiwei30, @bvwells, @cilerler, @cmendible, @discostu105, @halspang, @jdubois, @jigargandhi, @juazasan, @kendallroden, @mfcollins3, @mukundansundar, @rynowak, @skyao, @tcnghia, @tylermurry, @vinayada1, @wcs1only, @yaron2, @youngbupark

Don't miss a new dapr release

NewReleases is sending notifications on new releases.