docs/release_notes/v1.4.0.md
We're happy to announce the release of Dapr 1.4.0!
We would like to extend our thanks to all the new and existing contributors who helped make this release happen.
Highlights
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.
If you are upgrading from 1.3.0, check these instructions before proceeding with the upgrade. Then, see this section on upgrading Dapr to version 1.4.0.
Note: This release contains a few breaking changes.
Thanks to everyone who made this release possible!
@1046102779, @AaronCrawfis, @CodeMonkeyLeet, @Fabian-Schmidt, @ItalyPaleAle, @LLKennedy, @TomCools, @UmutComlekci, @amimimor, @artursouza, @beiwei30, @berndverst, @blackstorm, @cshi0, @daixiang0, @dmitsh, @fjvela, @greenie-msft, @halspang, @howlowck, @jigargandhi, @kevinten10, @l0ll098, @li1234yun, @luckyxiaoqiang, @marcmaranon, @marviniter, @matthewgaim, @msfussell, @mthmulders, @mukundansundar, @omidb, @orizohar, @paulyuk, @pkedy, @ravi-k4, @riezebosch, @tanvigour, @theonefx, @variadico, @vikborisov, @wcs1only, @weibubli, @willtsai, @yaron2, @yufan022, @jerrylisl, @variadico
initialOffset option to Kafka binding and pubsub components 1120To upgrade to this release of Dapr, follow the steps here to upgrade.
Important: If you are running a production cluster and cannot handle some downtime there are special steps that required to upgrade from 1.3.0 to 1.4.0 to ensure no downtime. See Production upgrade from 1.3.0 to 1.4.0 for detailed steps
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.4.0
Wait for the update to finish, ensure you are using the latest version of Dapr(1.4.0) with:
$ dapr --version
CLI version: 1.4.0
Runtime version: 1.4.0
You can perform zero-downtime upgrades using both Helm 3 and the Dapr 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.4.0 -k
To upgrade with high availability mode:
dapr upgrade --runtime-version 1.4.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
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.4.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
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.4.0 --namespace dapr-system --wait
Alternatively, you can use the latest version of CLI:
dapr init --runtime-version=1.4.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.8.0 15s 2021-09-13 13:07.39
dapr-sidecar-injector dapr-system True Running 1 1.4.0 15s 2021-09-13 13:07.39
dapr-sentry dapr-system True Running 1 1.4.0 15s 2021-09-13 13:07.39
dapr-operator dapr-system True Running 1 1.4.0 15s 2021-09-13 13:07.39
dapr-placement dapr-system True Running 1 1.4.0 15s 2021-09-13 13:07.39
After Dapr 1.4.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>
In 1.3.0 a bug was introduced that prevented no downtime upgrades, meaning the upgrading from 1.3.0 to 1.4.0 causes all the Dapr sidecars in a cluster to restart at the same time.
A new patch release v1.3.1 has been released to address this issue. For successful no downtime upgrade, you need to first deploy the v1.3.1 release.
Overview
This is a fix for a regression caused by making Dapr sidecar crash if it cannot reach the Dapr Operator. Dapr Operator can be down due to upgrades, for example, and should not impact running Dapr sidecars. Dapr guarantees zero downtime upgrades, and this bug violates this guarantee.
DO NOT upgrade from 1.3.0 to 1.3.1 or any other version without performing the following steps first:
First upgrade the sidecar injector
helm repo update
helm upgrade dapr dapr/dapr --set-string dapr_sidecar_injector.image.name=docker.io/daprio/daprd:1.3.1 -n dapr-system
Then do a rollout deployment that use the Dapr sidecar
kubectl rollout restart deploy/<name>
Now, follow instructions to upgrade to 1.4.0 as usual.