Dapr Runtime v0.6.0
Pre-releaseDapr 0.6.0
We're happy to announce the release of Dapr 0.6.0!
Highlights
- Added ability to scope PubSub topics per application
- Added new components: Hazelcast PubSub, AliCloud Object storage binding, AWS Kinesis binding and GCP Pub/Sub PubSub
- Introduced new liveness/readiness probe endpoint for Dapr sidecar and actor service health API in user application
- Added mandatory TLS between the Dapr sidecar and the Dapr system services (control plane)
- Improved security by separating gRPC server for internal and external APIs
- Introduced Dapr longhaul-test app and environment
- Improved e2e test coverage and release process for manifest yaml
- Fixed major/minor bugs
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.6.0.
New in this release
Dapr Runtime
Improved secret reference in component config by referring SecretKeyRef.Name
if Key
is not given (Thanks! @lynn-orrell)
Updated publish endpoint to allow path fragments (Thanks! @khous)
Improved self-host component loading by allowing single yaml to have multiple component configurations (Thanks! @ksivamuthu)
Added Hazelcast pubsub (Thanks! @peterjot)
Added GCP Pub/Sub to dapr loader (Thanks! @ksivamuthu)
Added AWS Kinesis input/output bindings to dapr loader (Thanks! @ksivamuthu)
Separated gRPC server for internal/user-exposed endpoints
Added new ssl connection enabled redis component
Added dapr-operator.yaml to GitHub release assets via CI
Added replicas per actor types metric to placement service
Fixed deployment manifest yaml generation command
Fixed http appchannel tracing bug when tracing is enabled
Fixed trace span export bug by skipping grpc-trace-bin
Added PubSub scoping/whitelisting
Removed unnecessary message types from dapr.proto files
Changed Kubernetes Operator API server from HTTP to gRPC
Improved E2E test coverage for Service invocation (e.g. gRPC to gRPC)
Added Support for Readiness and Liveness Probe for Dapr
Added app health checks for actors and its e2e tests
Added new daprd docker image that is used for sidecar image
Improved control plane connectivity resiliency with grpc retry middleware
Components
Fixed key not found error by returning empty response [aerospike/Couchbase/memcache/hazelcast statestore] (Thanks! @abhirockzz, @ksivamuthu)
Added GCP Cloud Pubsub (Thanks! @ksivamuthu)
Improved eventhub bindings by specifying partition id and key (Thanks! @ksivamuthu)
Added the option to decode base64 payloads [Azure Blob storage binding] (Thanks! @CarlosLanderas)
Added AliCloud Object storage bindings (Thanks! @madhugilla)
Added Hazelcast pubsub support (Thanks! @peterjot)
Added AWS Kinesis data stream binding (Thanks! @ksivamuthu)
Added metadata support to Azure Blob binding (Thanks! @RicardoNiepel)
Changed redis client library to go-redis to enable SSL connection [redis statestore]
CLI
Fixed Use the full container name when checking redis (Thanks! @vjrantal)
Updated CI to add new artifact for Homebrew
Changed dapr-operator manifest url to GitHub Release
System service components
Added required TLS connection for Kubernetes Operator
Added required TLS connection for Placement Service
Added required TLS connection for Sentry
Updated client validation of Sentry to require TLS certification all the time
.NET SDK
Added Secret Store configuration provider implementation for Microsoft.Extensions.Configuration (Thanks! @cmendible)
Updated proto clients for 0.6.0 dapr runtime and updating DaprClient
Added more granular actor configuration
Added actor health check API
Java SDK
Added actor health check API
Added Springboot integration
Samples
Added state delete call to complete sample operations (Thanks! @vsaroopchand)
Add SDK Links to README and fixed typos and links in docs
Docs
Added GCP pubsub docs (Thanks! @ksivamuthu)
Updated EventHub single partition id (Thanks! @ksivamuthu)
Added Hazelcast pubsub howto (Thanks! @peterjot)
Added metadata doc to Azure Blob binding (Thanks! @RicardoNiepel)
Added AWS kinesis docs (Thanks! @ksivamuthu)
Improved existing docs and fixed typos (Thanks! @rynowak, @drmcghee, and @eNeRGy164)
Added Liveness and readiness probe /healthz API spec
Update Actors healhcheck endpoint
Added Dapr presentations
Added PubSub scopes How-to
Updated TLS and security docs
Improved application insights distributed tracing onboarding guide by uploading localfowarder docker image to dapr official dockerhub
Test-infra (Long haul test)
Added the initial long-haul test apps: feed-generator, message-analyzer, hashtag-app
Added longhaul-test environment
Added CI/CD to automate test app build and deployment
Upgrading to Dapr 0.6.0
If you're upgrading from an older version of Dapr to 0.6.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.6.0) with:
dapr --version
Kubernetes
For this release, its important you first remove your application from the cluster while Dapr is running, to remove the Kubernetes services for Dapr, and re-deploy after upgrading.
Beginning next release, Dapr will include zero-down upgrade instructions.
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
Breaking Changes
Actor Healthz API
Language specific Actor SDKs must expose /healthz endpoint and return 200. All actors SDKs must be upgraded to the latest version.
Separated Dapr sidecar image
For this release, we split the Dapr runtime binary (daprd) from daprio/dapr image to reduce the size of sidecar image. You must confirm that you deploy Dapr to Kubernetes cluster using the latest 0.6.0 Dapr cli or helm chart.
dapr-operator.yaml location change for dapr init --kubernetes
dapr init --kubernetes
installs Dapr using dapr-operator.yaml deployment yaml. This release has changed the location of this yaml to GitHub Release asset. You must use the latest CLI. Otherwise, old Dapr CLI will be unable to install the latest Dapr to your Kubernetes cluster.