github dapr/dapr v1.1.0
Dapr Runtime v1.1.0

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

Dapr 1.1.0

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

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

Highlights

  • New preview feature for sidecar injection in Kubernetes Job with new shutdown API to stop sidecar from app 2689
  • Defining Dapr sidecar environment variables 2508
  • Etag is required for actors in future added state stores 2890
  • Dapr API Token is not included in telemetry traces anymore 2974
  • Local Storage Binding 752
  • Added conformance tests for various pubsub components (Pulsar, MQTT, Hazelcast, RabbitMQ)
  • .NET Apps can now have unit tests for Actor Timers and Reminder functionality 575
  • .NET SDK support for hierarchical nesting configuration 615

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.

See this section on upgrading Dapr to version 1.1.0.

Acknowledgements

Thanks to everyone who made this release possible!

@1046102779, @Betula-L, @Hugome, @PeterGerrard, @SamuelMcAravey, @Taction, @artursouza, @dinggh, @halspang, @hnlq715, @jigargandhi, @ksivamuthu, @liamgib, @luckyxiaoqiang, @lynn-orrell, @moonchanyong, @mukundansundar, @orizohar, @pkedy, @puzpuzpuz, @rynowak, @springe2004, @tcnghia, @trondhindenes, @wcs1only, @withinboredom, @yaron2

New in this release

Dapr Runtime

  • FIXED Bug in runtime. 2348
  • RESOLVED feat: Allow for defining env-vars for sidecar 2508
  • ADDED Support response propagation for input bindings 2628
  • RESOLVED Prevent helm install from clashing with an existing role-tokenreview-binding (used by Vault) cluster role binding 2651
  • RESOLVED Daprd failed to start metric server due to address already in use even though configuration metric disabled. 2677
  • ADDED Dapr sidecar support for K8s Cronjob. 2689
  • ADDED list of Dapr components before loading them 2723
  • RESOLVED TraceId is not propagated when using dapr grpc client's InvokeMethodAsync method 2749
  • RESOLVED Avoid push of Helm chart when chart version wasn't updated 2750
  • RESOLVED hotfix(fswatcher): repair fswatcher fmask &error 2777
  • RESOLVED feat(logger): fix typo 2778
  • RESOLVED support(scopes): increase resource definition fault tolerance 2779
  • RESOLVED optimize(healthz): continuously check failed and return failure state 2781
  • RESOLVED Upgrade to Go 1.16 2819
  • RESOLVED optimize(components): use IsInitialVersion method 2832
  • RESOLVED confirms that state key does not contain "||" 2835
  • RESOLVED optimize(http): reduce repetitive secretstore codes 2841
  • FIXED Runtime will no longer override X-Forwarded Headers if they already exist 2846
  • RESOLVED fixme(fasthttp/router): upgrade fasthttp router to solve '/' 2863
  • RESOLVED Fail actors state stores if etag is not supported 2890
  • RESOLVED Fix spelling of separator 2913
  • RESOLVED Fix read/write map race in grpc.Manager 2915
  • RESOLVED Fix typos in comments 2928
  • FIXED Race condition of reading and writing components in runtime. 2932
  • RESOLVED Use filepath package to do file path operations 2936
  • FIXED Component update without checking namespace and scope by operator 2937
  • RESOLVED Fix typos related to placement 2959
  • RESOLVED Changed sidecar injector pull policy to IfNotPresent 2965
  • RESOLVED Dapr API Token should not be included in telemetry traces 2974

Dapr CLI

  • ADDED JSON logging option 515
  • ADDED --wait flag for init and upgrade commands 597
  • RESOLVED status check panic on pending containers 609
  • RESOLVED CRD gone after running dapr upgrade 622
  • FIXED CLI returns non-zero for dapr stop command in Windows 631

Components

  • ADDED blob deletion support in Azure Blob Storage binding 681
  • RESOLVED Avoid using github.com/satori/go.uuid 703
  • ADDED message redelivery and improved concurrency settings for Redis PubSub 710
  • ADDED Retries to handle MQTT message error and acknowledge processed messages 720
  • ADDED Retries to handle Hazelcast message errors 723
  • ADDED eTag support for MongoDB state store 726
  • RESOLVED GetResponse does not return nil eTag in state store 731
  • RESOLVED Storing byte[] value in CosmoDB state component 745
  • ADDED AWS SSM Parameter store component as secret store 746
  • RESOLVED Local Storage Binding 752
  • RESOLVED refactor GCP pubsub 760
  • RESOLVED fix pubsub redis close bug 769

.NET SDK

  • RESOLVED Added documentation for docker-compose, Tye and other local development options 534
  • RESOLVED Updated actor docs 546
  • RESOLVED Make it possible to unit test Actor Timers and Reminder functionality 575
  • FIXED handling of non-JSON content in data field for CloudEvents 592
  • RESOLVED Add documentation for dependency injection in actors 612
  • ADDED support for hierarchical nesting configuration 615
  • ADDED support for configuring key delimiters for nesting configuration 627

Python SDK

  • ADDED Add DAPR_HTTP_TIMEOUT_SECONDS configuration option. 162
  • ADDED Shutdown support for python-sdk 210

Go SDK

  • RESOLVED fix go-sdk example doc 144
  • RESOLVED Update pub.go 145
  • RESOLVED doc: fix typo 148
  • RESOLVED feat: add shutdown 151

Quickstarts

  • RESOLVED Broken Link for .net SDK quick start examples 389
  • RESOLVED Update quickstarts to reflect dapr init --namespace option 393
  • RESOLVED Autovalidate external URLs 394
  • RESOLVED Multiple race conditions when deploying quickstarts to Kubernetes 398
  • RESOLVED Pub/Sub quickstart links lead to Chinese pages 410

Upgrading to Dapr 1.1.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 releases like this, download the latest and greatest release from here and put the dapr binary in your PATH. Alternatively, follow these instructions to get the latest CLI.

Once you have installed the CLI, run:

dapr init --runtime-version=1.1.0

Wait for the update to finish, ensure you are using the latest version of Dapr(1.1.0) with:

$ dapr --version

CLI version: 1.1.0
Runtime version: 1.1.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 CLI release from here and put the dapr binary in your PATH.
Alternatively, follow these instructions to get the latest CLI.

To upgrade Dapr, run:

dapr upgrade --runtime-version 1.1.0 -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

Troubleshooting upgrade using the CLI

There is a known issue running upgrades on clusters that may have previously had a version prior to 1.0.0-rc.2 installed on a cluster.

Most users should not encounter this issue, but there are a few upgrade path edge cases that may leave an incompatible CustomResourceDefinition installed on your cluster. The error message for this case looks like this:

❌  Failed to upgrade Dapr: Warning: kubectl apply should be used on resource created by either kubectl create --save-config or kubectl apply
The CustomResourceDefinition "configurations.dapr.io" is invalid: spec.preserveUnknownFields: Invalid value: true: must be false in order to use defaults in the schema

To resolve this issue please run the follow command to upgrade the CustomResourceDefinition to a compatible version:

kubectl replace -f https://raw.githubusercontent.com/dapr/dapr/5a15b3e0f093d2d0938b12f144c7047474a290fe/charts/dapr/crds/configuration.yaml

Then proceed with the dapr upgrade --runtime-version 1.1.0 -k command as above.

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

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.1.0 --namespace dapr-system --wait

Alternatively, you can use the latest version of CLI:

dapr init --runtime-version=1.1.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.6.0    15s  2021-03-31 13:07.39
  dapr-sidecar-injector  dapr-system  True     Running  1         1.1.0   15s  2021-03-31 13:07.39
  dapr-sentry            dapr-system  True     Running  1         1.1.0   15s  2021-03-31 13:07.39
  dapr-operator          dapr-system  True     Running  1         1.1.0   15s  2021-03-31 13:07.39
  dapr-placement         dapr-system  True     Running  1         1.1.0   15s  2021-03-31 13:07.39

After Dapr 1.1.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

None.

Don't miss a new dapr release

NewReleases is sending notifications on new releases.