dapr - v1.6.0
Dapr 1.6.0
We're happy to announce the release of Dapr 1.6.0!
We would like to extend our thanks to all the new and existing contributors who helped make this release happen.
Highlights
Component improvements
This release focused on preparing the next set of components to be ready for stable
designation per community feedback. This means certification tests are added and quality issues are addressed. Read component certification lifecycle for details.
The following components are now offically designated beta
status, several of which are candidates to become stable
soon in an upcoming release:
- MQTT pub/sub (stable
candidate)
- RabbitMQ pub/sub (stable
candidate)
- Azure Blob Storage binding (stable
candidate)
- Azure CosmosDB binding (stable
candidate)
- Azure Service Bus Queues binding (stable
candidate)
- Azure Event Hubs pub/sub
- AWS SNS/SQS pub/sub
New capabilities were added to existing components:
- Kafka OAuth 2.0 support for pub/sub & binding.
- Azure Event Hubs pub/sub improvements for topics and partitions.
- Added numerous new capabilities to Apache Pulsar pub/sub including:
- Tenant namespace support.
- Backoff policies.
- Token authentication support.
- Ability to disable batching.
New components added in this release:
- Added Alibaba Cloud OOS Parameter Store - secret store
- Added Oracle Cloud Infrastructure (OCI) object storage - state store
Components removed from release:
- The Cloudstate store alpha component is no longer included.
SDK Improvements
- Application Configuration API (Alpha) now available for Python, Java and .NET.
- Query and Filtering API (Alpha) feature now available for Python, Javascript, Go and .NET.
- Pub/sub routing is now availble in the Go SDK.
Try it
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 Developing applications.
Note: This release contains a few breaking changes.
See this section on upgrading Dapr to version 1.6.0.
Details - new in this release
Dapr Runtime
- ADDED API for state store filtering and querying 1339
- ADDED Support Actor reminder renaming 3273
- FIXED Handle the error when creating http middleware other than ignore it 3657
- RESOLVED cosmosdb statestore partitioning broken under load 3716
- FIXED Multiple subscriber for a topic in Pub/Sub component with Event hub is not working as expected 3753
- RESOLVED Setting global.ha.enabled: true produces deployment yaml with 2 affinity elements 3788
- FIXED Cross namespace grpc proxy call in kubernetes fails 3807
- FIXED Retry /dapr/subscribe in case of failure or wait for app to get into Ready state 3839
- FIXED fix: add missing yaml tag for mtls spec config 3864
- FIXED optimize/operator: the server side actively detects whether grpc connection is available 3890
- FIXED Fix log output for "daprd --version" call 3895
- FIXED Remove Cloudstate state store 3897
- FIXED Bug in runtime. daprd does not respond to
shutdown
API command down in a timely fashion. 3930 - FIXED Operator logs - Version always shows "ver: unknown" 3948
- FIXED Operator unable to see secrets across namespaces when processing component updates - K8s 3949
- FIXED Add namespace check for component updates 3952
- FIXED daprd crashes if gRPC request arrives before runtime init completes 3982
- ADDED Make the grace period configurable 3983
- FIXED Reminders and Timer ISO-8601 off-by-one error 3995
- ADDED Add DCO requirements and updated code of conduct 4018
- FIXED logging of conflict when loading actor state store and fixes to actor reminders partitioning. 4021
- FIXED validation for AppID length. 4023
- FIXED Clarify message about app channel not initialized 4025
- FIXED bugfix: QueryStateAlpha1 return data nil 4039
- ADDED Charts - Supports to customize livenessProbe and readinessProbe 4049
- FIXED Error in component field causing daprd panic 4054
- ADDED Support stateful resource with corresponding service 4061
- ADDED Added hostNetwork setting to sidecar injector chart 4074
- FIXED Fixed create timer duetime 4075
- FIXED compare field causing daprd panic 4083
- ADDED Kill sidecar on init if duplicate actor state store. 4087
- ADDED Incorporate OCI StorageService state store component in daprd 4095
- FIXED Updated paho.mqtt.golang dependency to fix auto ack issue in MQTT v3 library 4111
- FIXED state store: client-side encryption and query api are mutually excluded 4126
- ADDED add alibaba cloud oos parameter store support 4142
- REMOVED Remove Cloudstate state store 1297
Dapr CLI
- FIXED
dapr status -k
does not work on Windows with KUBECONFIG set 779 - FIXED Pass missing environment variables in CLI 860
- FIXED Detect publish events with CloudEvent envelopes 838
Components
- FIXED incorrect queue to exchange binding 826
- ADDED New implementation of Azure EventHub PubSub component 951
- ADDED MQTT pubsub component as
stable
candidate 952 - ADDED Azure Blob Storage output binding as
stable
candidate 956 - ADDED Azure Service Bus Queues binding as
stable
candidate 957 - ADDED Azure CosmosDB output binding as
stable
candidate 958 - FIXED Azure Event Hub pubsub component properly handles topics. 964
- ADDED Support OAuth2 authentication with Kafka for pub/sub binding 1084
- ADDED feature(middleware/routerchecker): avoid sending dirty data to opentelemetry system and logic servers. 1155
- FIXED Upgrade rocketmq for pubsub 1169
- ADDED common auth for Service Bus Pubsub/Binding 1201
- ADDED Support for partition key while publishing to Azure Event Hubs 1225
- FIXED Kinesis client library needs update 1231
- FIXED MQTT messages are always acked even if handler returns an error 1234
- FIXED GCP pub/sub subscription stops working after error 1250
- FIXED Route of subscription API does not work on pubsub.pulsar 1263
- FIXED MQTT output bindings sporadic failure on Create operation. 1282
- REMOVED Remove Cloudstate state store 1303
- ADDED PubSub AWS SNS/SQS - Disable Entity Management feature 1313
- FIXED Redis configuration API subscription 1315
- ADDED Add S3ForcePathStyle metadata key to S3 binding 1322
- FIXED Update azure-sdk-for-go to v59.3.0 for EventGrid 1325
- FIXED AWS SQS/SNS Wrong queue access policy (broken in last version (1.5.0)) 1335
- FIXED Panic on azure blob storage state store 1351
- FIXED pub/sub rocketmq:upgrade with v2 1383
- FIXED Pub/Sub AWS SNS SQS - disableEntityManagement - SQS policy should not be created 1385
- FIXED Bind variables cannot be used for table names in cassandra state component 1387
- FIXED upgrade dgrijalva/jwt-go dependency 1391
- ADDED Add DCO requirements and updated code of conduct 1395
- FIXED kafka input binding infinite loop when no topics set 1399
- FIXED bindings.cron Input & Output communicates through a signal queue 1405
- FIXED update license to Apache v2.0 1406
- FIXED hotfix: bindings.cron Input & Output communicates through a signal queue 1418
- FIXED Http StatusCode always 200 in middleware HTTP component 1425
- ADDED Pubsub AWS SNS/SQS - operations timeouts, retrying, backoffs 1426
.NET SDK
- FIXED Actor state is reset if execution ends in exception. 762
- ADDED Support for statestore query API 777
- ADDED Support for Configuration API 787
Go SDK
- ADDED add Unix domain socket support 206
- ADDED add support for statestore query API 215
- ADDED add support for TTL and time/interval formats in actor timers/reminders 222
- ADDED Add Pub/Sub routing support 226
- FIXED Inconsistent TopicEvent Data value between HTTP and gRPC service implementations. 228
- FIXED Fix error saving actor state for readonly changes 233
- FIXED bugfix/apptoken: missing app token verification codes 236
Java SDK
- RESOLVED Migrated out of JCenter as a Maven repository. 608
- FIXED Spring security context added as additional http header to http request via service invocation 638
- ADDED Support for Configuration API 659
- RESOLVED Update copyright information to Apache 2.0 665
- ADDED Add DCO requirements and updated code of conduct 669
Python SDK
- ADDED support for statestore query API 296
- ADDED support for Get Configuration API 308
- ADDED Deprecation notice for gRPC metadata API field 324
- ADDED Microseconds and milliseconds to timedelta conversion 327
JavaScript SDK
- FIXED Actors: Should not allow state manipulation outside Actor Runtime 136
- ADDED Feature: Query State API 139
Acknowledgements
Thanks to everyone who made this release possible!
@1046102779, @abelperezok, @amimimor, @amulyavarote, @andrey-dubnik, @anhldbk, @artursouza, @berndverst, @ceshihao, @ChethanUK, @chinzhiweiblank, @CodeMonkeyLeet, @CrazyHZM, @cshi0, @daixiang0, @dmitsh, @Gehhilfe, @greenie-msft, @guyzyl, @halspang, @haoxins, @jigargandhi, @jjcollinge, @Juneezee, @LaurenceLiZhixin, @LKI, @ls-2018, @lucasjellema, @marviniter, @mbimbij, @msfussell, @mthmulders, @mukundansundar, @paulyuk, @pkedy, @pravinpushkar, @rabollin, @rainfd, @robsondepaula, @shivamkm07, @sthussey, @Syuparn, @Taction, @tanvigour, @taojwmware, @theonefx, @timonwong, @uptutu, @victorp13, @wcs1only, @willtsai, @withinboredom, @x-shadow-man, @XavierGeerinck, @xj524598, @yaron2, @yordan-pavlov, @zach030, @zcong1993
Upgrading to Dapr 1.6.0
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.6.0
Wait for the update to finish, ensure you are using the latest version of Dapr(1.6.0) with:
$ dapr --version
CLI version: 1.6.0
Runtime version: 1.6.0
Kubernetes
Upgrading from previous version
You can perform zero-downtime upgrades using both Helm 3 and the Dapr CLI.
Upgrade using the CLI
Download the latest RC release from here and put the dapr
binary in your PATH.
To upgrade Dapr, run:
dapr upgrade --runtime-version 1.6.0 -k
To upgrade with high availability mode:
dapr upgrade --runtime-version 1.6.0 --enable-ha=true -k
Wait until the operation is finished and check your status with dapr status -k
.
All done!
Note: Make sure your deployments are restarted to pick the latest version of the Dapr sidecar
Upgrade using Helm
To upgrade Dapr using Helm, run:
helm repo add dapr https://dapr.github.io/helm-charts/
helm repo update
helm upgrade dapr dapr/dapr --version 1.6.0 --namespace=dapr-system --wait
Wait until the operation is finished and check your status with dapr status -k
.
All done!
Note: Make sure your deployments are restarted to pick the latest version of the Dapr sidecar
Starting a fresh install on a cluster
Please see how to deploy Dapr on a Kubernetes cluster for a complete guide to installing Dapr on Kubernetes
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.6.0 --namespace dapr-system --wait
Alternatively, you can use the latest version of CLI:
dapr init --runtime-version=1.6.0 -k
Post installation
Verify the control plane pods are running and are healthy:
$ dapr status -k
NAME NAMESPACE HEALTHY STATUS REPLICAS VERSION AGE CREATED
dapr-dashboard dapr-system True Running 1 0.9.0 15s 2022-01-18 13:07.39
dapr-sidecar-injector dapr-system True Running 1 1.6.0 15s 2022-01-18 13:07.39
dapr-sentry dapr-system True Running 1 1.6.0 15s 2022-01-18 13:07.39
dapr-operator dapr-system True Running 1 1.6.0 15s 2022-01-18 13:07.39
dapr-placement dapr-system True Running 1 1.6.0 15s 2022-01-18 13:07.39
After Dapr 1.6.0 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 & Deprecations
Dapr Runtime
- REMOVED Remove Cloudstate state store 1303
Python SDK
- Deprecation notice for gRPC metadata API field 324
.NET SDK
- FIXED Actor state is now reset if execution ends in an exception.
Details
- 🔍View and search all dapr releases.
- 🛠️Create and share lists to track your tools.
- 🚨Setup notifications for major, security, feature or patch updates.
- 🚀Much more coming soon!