Project: Dapr (App Definition and Development / Application Definition & Image Build)
File: v1.1.0.md

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 Defining Dapr sidecar environment variables Etag is required for actors in future added state stores Dapr API Token is not included in telemetry traces anymore Local Storage Binding Added conformance tests for various pubsub components (Pulsar, MQTT, Hazelcast, RabbitMQ) .NET Apps can now have unit tests for Actor Timers and Reminder functionality .NET SDK support for hierarchical nesting configuration If you're new to Dapr, visit the 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 and the . See section on upgrading Dapr to version 1.1.0. 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 FIXED Bug in runtime. RESOLVED feat: Allow for defining env-vars for sidecar ADDED Support response propagation for input bindings RESOLVED Prevent helm install from clashing with an existing `role-tokenreview-binding` (used by Vault) cluster role binding RESOLVED Daprd failed to start metric server due to address already in use even though configuration metric disabled. ADDED Dapr sidecar support for K8s Cronjob. ADDED list of Dapr components before loading them RESOLVED TraceId is not propagated when using dapr grpc client's InvokeMethodAsync method RESOLVED Avoid push of Helm chart when chart version wasn't updated RESOLVED hotfix(fswatcher): repair fswatcher fmask &error RESOLVED feat(logger): fix typo RESOLVED support(scopes): increase resource definition fault tolerance RESOLVED optimize(healthz): continuously check failed and return failure state RESOLVED Upgrade to Go 1.16 RESOLVED optimize(components): use IsInitialVersion method RESOLVED confirms that state key does not contain "||" RESOLVED optimize(http): reduce repetitive secretstore codes FIXED Runtime will no longer override X-Forwarded Headers if they already exist RESOLVED fixme(fasthttp/router): upgrade fasthttp router to solve '/' RESOLVED Fail actors state stores if etag is not supported RESOLVED Fix spelling of separator RESOLVED Fix read/write map race in grpc.Manager RESOLVED Fix typos in comments FIXED Race condition of reading and writing components in

RESOLVED Use filepath package to do file path operations FIXED Component update without checking namespace and scope by operator RESOLVED Fix typos related to placement RESOLVED Changed sidecar injector pull policy to IfNotPresent RESOLVED Dapr API Token should not be included in telemetry traces ADDED JSON logging option ADDED `--wait` flag for `init` and `upgrade` commands RESOLVED status check panic on pending containers RESOLVED CRD gone after running `dapr upgrade` FIXED CLI returns non-zero for dapr stop command in Windows ADDED blob deletion support in Azure Blob Storage binding RESOLVED Avoid using github.com/satori/go.uuid ADDED message redelivery and improved concurrency settings for Redis PubSub ADDED Retries to handle MQTT message error and acknowledge processed messages ADDED Retries to handle Hazelcast message errors ADDED `eTag` support for MongoDB state store RESOLVED GetResponse does not return nil eTag in state store RESOLVED Storing `byte ADDED AWS SSM Parameter store component as secret store RESOLVED Local Storage Binding RESOLVED refactor GCP pubsub RESOLVED fix pubsub redis close bug RESOLVED Added documentation for docker-compose, Tye and other local development options RESOLVED Updated actor docs RESOLVED Make it possible to unit test Actor Timers and Reminder functionality FIXED handling of non-JSON content in data field for CloudEvents RESOLVED Add documentation for dependency injection in actors ADDED support for hierarchical nesting configuration ADDED support for configuring key delimiters for nesting configuration ADDED Add DAPRHTTPTIMEOUT_SECONDS configuration option. ADDED Shutdown support for python-sdk RESOLVED fix go-sdk example doc RESOLVED Update pub.go RESOLVED doc: fix typo RESOLVED feat: add shutdown RESOLVED Broken Link for .net SDK quick start examples RESOLVED Update quickstarts to reflect dapr init --namespace option RESOLVED Autovalidate external URLs RESOLVED Multiple race conditions when deploying quickstarts to Kubernetes RESOLVED Pub/Sub quickstart links lead to Chinese pages 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? Uninstall Dapr using the CLI you currently have installed. Note that this will remove the default $HOME/.dapr directory, binaries and all containers daprredis, daprplacement and dapr_zipkin. Linux users need to run sudo if docker command needs sudo: ```bash dapr uninstall --all ``` For releases like this, download the latest and greatest release from and put the `dapr` binary in your PATH. Alternatively, follow instructions to get the latest CLI. Once you have installed the CLI, run: ```bash 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: ```bash $ dapr --version CLI version: 1.1.0 Runtime version:

``` You can perform zero-downtime upgrades using both Helm 3 and the Dapr CLI. Download the latest CLI release from and put the `dapr` binary in your PATH. Alternatively, follow 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 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. 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 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 ``` 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> ``` None.