github dapr/dapr v0.7.0
Dapr Runtime v0.7.0

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

Dapr 0.7.0

We're happy to announce the release of Dapr 0.7.0!

With this release we focused on improvements to tracing and service invocation. This release also expands Dapr functionality with addition components. Continuing with the theme of improved stability, we also added a performance test for service invocation, fixed bugs, and added features to our long haul tests infrastructure.

There are also updated to the CLI with new commands and a lot of docs updates.

Newly added components:

  • Azure EventGrid input/output binding
  • Twitter input binding
  • SendGrid output binding
  • Kafka Pub/Sub
  • Azure EventHubs Pub/Sub

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

If you're new to Dapr, visit the getting started page and familiarize yourself with Dapr.

Docs have been updated with all the new features and changes of this release. To get started with new capabilities introduced in this release, go to the Concepts and the How To section.

Note: This release contains a few breaking changes.

See this section on upgrading Dapr to version 0.7.0.

New in this release

Dapr Runtime

Fixed Trace options defaults

Fixed gRPC load balancing not working on Kubernetes

Updated HTTP router to fasthttp/router - ~4% throughput increase

Updated Service invocation APIs and implementation with new spec

Updated Tracing headers for new service invocation spec changes

Updated Tracing scopes for internal and external gRPC servers (Thanks @jjcollinge)

Fixed Actor drain variable spelling errors (Thanks @ksashikumar)

Fixed Metadata API inconsistency

Added Context propagation

Updated Tracing headers to fit industry standards

Fixed Distributed tracing call map formation

Added gRPC API versioning

Updated Tracing spec configuration

Moved To using versioned Docker image tags instead of :latest

Added Sampling rate for tracing configuration

Components

Added Azure Event Grid input/output binding (Thanks @lynn-orrell)

Added Twitter output binding

Added Sendgrid output binding (Thanks @benc-uk)

Added Azure Event Hubs Pub/Sub (Thanks @abhirockzz)

Added Kafka Pub/Sub (Thanks @khous)

Added Message time to live in RabbitMQ, Azure Service Bus/Storage Queue bindings (Thanks @fbeltrao)

Added Support for nested partition keys in CosmosDB (Thanks @ksivamuthu)

Fixed string escape for Azure Blob Storage (Thanks @benc-uk)

Added TLS support for Redis binding

Added Per call partition key support for Kafka binding

Fixed Non-existent key error for Zookeeper (Thanks @Julian-Chu)

CLI

Added dapr status command for validating Kubernetes control plane health and status

Updated dapr init to only pull a new binary if needed (Thanks @abhirockzz)

Added Homebrew package for MacOS

Added --runtime-verion flag support for dapr init --kubernetes

System service components

Fixed Operator not creating k8s services if a deployment is patched

Updated Sidecar injector to add configurable resource requests and limits on sidecar container

Updated Sidecar injector to support configurable readiness probes

.NET SDK

Added Actor proxy method with parameterized interface (Thanks @jpiquot)

Updated Protobuf clients

Java SDK

Updated Protobuf clients

Fixed Actor API always returning true on Contain State API call

Docs

Added TTL information for RabbitMQ/Azure Service Bus bindings (Thanks @fbeltrao)

Added Added namespace metadata to deployments

Added All Dapr sidecar annotations for Kubernetes

Added Service invocation V1 spec

Updated Kafka binding for partition key

Added How To for Azure Event Hubs Pub/Sub

Added How To for Kafka Pub/Sub

Updated How To tutorial for Azure Application Insights

Updated Redis binding with TLS configuration

Added How To tutorial for using Pub Sub across different namespaces

Added Sendgrid binding spec

Added Readiness configuration for Kubernetes

Improved application insights distributed tracing onboarding guide by uploading localfowarder docker image to dapr official dockerhub

Tests

Added Performance test for service invocation

Added Performance test configuration and test app using Fortio

Improved Coverage for service invocation

Added Message analyzer delay monitor for Long Haul

Fixed Containers not updating if config YAML doesn't change

Improved Long haul tests validation and monitoring

Added Long haul test snapshot monitor

Added Long haul test hashtag counter delay monitor

Added Long haul test Generic error spike monitor

Added Long haul test feed stream generator

Added Hashtag snapshot service

Upgrading to Dapr 0.7.0

If you're upgrading from an older version of Dapr to 0.7.0, 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:

dapr uninstall --all

Next, get the latest CLI following these instructions, or alternatively download the latest and greatest release from here and put the dapr binary in your PATH.

Once you have downloaded the CLI, run:

dapr init

Wait for the update to finish, and you're good to go!
Make sure you have the right runtime version (0.7.0) with:

dapr --version

Kubernetes

Download the latest CLI release as outlined above in the Local Machine / Self-hosted section.

If you previously installed Dapr on your Kubernetes cluster using the Dapr CLI, run:

dapr uninstall --kubernetes

It's fine to ignore any errors that might show up.

If you previously installed Dapr using Helm 2.X:

helm del --purge dapr

If you previously installed Dapr using Helm 3.X:

helm uninstall dapr -n dapr-system
helm repo update

Wait until Dapr is uninstalled, and make sure the dapr-system namespace is gone.

If you installed Dapr with Helm to a namespace other than dapr-system, modify the uninstall command above to account for that.

You can now follow these instructions on how to install Dapr using Helm 3.

Alternatively, if you want to install Dapr in a dev/test setup, run:

dapr init --kubernetes

Post installation

After Dapr 0.7.0 has been installed, perform a rolling restart for your deployments.

Breaking Changes

gRPC Service Invocation

gRPC Protobuf update

  • Package name in Dapr gRPC protobuf files has been changed to :
    • renamed to dapr to dapr.proto.dapr.v1`
    • renamed to daprclient - dapr.proto.daprclient.v1
    • moved the common protobuf message related to service invocation to dapr.proto.common.v1 package

gRPC Service invocation

  • If you're a Java SDK or dotnet SDK user, you must upgrade your SDK to the latest version.
  • If you're a JS/Python/CPP/Rust SDK user, you must upgrade your SDK to the latest version first and update your code by referring to each sdk's examples.
  • If caller app invokes HTTP callee app, caller app needs to specify HTTPExtension in InvokeRequest message.
  • If HTTP callee app returns non-OK status code to caller app using gRPC API, caller app's gRPC client will throw the exception in 0.7.0 release. The caller app needs to handle the exception properly.

Tracing configuration

With the 0.7.0 release, Dapr trace configuration is simplified. Users now provide a "samplingRate" value to enable or disable the traces. Set "samplingRate: "0" to disable the traces. Set "samplingRate: "1" to generate traces on every operation. Refer https://github.com/dapr/docs/blob/master/concepts/observability/traces.md for more details.

Don't miss a new dapr release

NewReleases is sending notifications on new releases.