RSS

Dapr v1.3 is now available

We are excited to announce the release of Dapr v1.3!

This is the third minor version update since the announcement of Dapr v1.0.

Release highlights

If you’re new to Dapr, familiarize yourself by visiting the getting started page.

Service Invocation

  • Added grpc proxying to enable bring-your-own-proto (preview feature) #323. Use your existing proto based gRPC services and have the traffic go through the Dapr sidecar. This enables Dapr applications to use the benefits of Service Invocation, including security, retries and ACLs to these gRPC services. See our How-To: Invoke services using gRPC documentation for further details.

Actors

  • Actor reminder and triggers now supports ISO 8601 intervals #2513. See this documentation for guidance on how to configure reminders using ISO 8601 intervals.

  • Added configuration for actor reentrancy (preview feature) #3049. Actor reentrancy has several configuration values that must be understood by the runtime/actors. Actors that will be reentrant must provide the appropriate configuration to use reentrancy. This is done by the actor’s endpoint for GET /dapr/config. See here for more details.

  • Added actor reentrancy support in .NET, PHP and Python SDKs (preview feature). Actor reentrancy remains a preview feature in this release. Note that Java and PHP SDKs will support actor reentrancy in the next release.

  • Support for actor reminder storage partitioning (preview feature) #2889. Applications can now enable partitioning of actor reminders in the state store across multiple keys. For more information on actor reminder storage partitioning, visit Dapr’s actors documentation.

State Management

  • Added support for TTL (time to live) to a subset of state store components #306. Applications can set time-to-live per state stored, and these states cannot be retrieved after expiration. Supported state store components that support TTL are: Cassandra, Memcache, Redis, CosmosDB. See here form more details.

New components

Dapr development

  • Setup VS Code development in a containerized environment and use this in GitHub Codespaces for contributing to dapr project #3229. See this guidance for Dapr development using VS Code.

Release notes

See a detailed description of changes, fixes and new features in the Dapr v1.3 release notes.

Supported releases

Dapr supports two (2) prior versions from the current release.

This means that there is a rolling window that moves forward for supported releases and it is your operational responsibility to remain up to date with these supported versions. If you have an older version of Dapr you may have to do intermediate upgrades to get to a supported version.

Since this release marks v1.3.0, the two prior supported versions are v1.1.0 and v1.2.0.

Please visit the Dapr Documentation for more information on supported releases.

Installing and upgrading to Dapr v1.3

To get started with Dapr v1.3 please see the getting started guide.

To upgrade to this release of Dapr, follow the steps below:

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

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

$ dapr --version

CLI version: 1.3.0
Runtime version: 1.3.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.3.0 -k

To upgrade with high availability mode:

$ dapr upgrade --runtime-version 1.3.0 --enable-ha=true -k

Wait until the operation is finished and check your status with dapr status -k.

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

Wait until the operation is finished and check your status with dapr status -k.

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

Alternatively, you can use the latest version of CLI:

dapr init --runtime-version=1.3.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.7.0    15s  2021-07-26 13:07.39
  dapr-sidecar-injector  dapr-system  True     Running  1         1.3.0   15s  2021-07-26 13:07.39
  dapr-sentry            dapr-system  True     Running  1         1.3.0   15s  2021-07-26 13:07.39
  dapr-operator          dapr-system  True     Running  1         1.3.0   15s  2021-07-26 13:07.39
  dapr-placement         dapr-system  True     Running  1         1.3.0   15s  2021-07-26 13:07.39

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

Acknowledgements

Thank you to everyone who made this release possible!

@1046102779, @AaronCrawfis, @akkie, @alvinhenrick, @amirmm11, @anhldbk, @artursouza, @Banchio, @beiwei30, @berndverst, @bjorkstromm, @caogj, @CodeMonkeyLeet, @CodingSinger, @daixiang0, @DanAbara, @DarqueWarrior, @delvh, @dmitsh, @emattiza, @eNeRGy164, @fabistb, @gogi2811, @greenie-msft, @halspang, @iamazy, @ItalyPaleAle, @jasonviviano, @jcdickinson, @jigargandhi, @Junnplus, @luckyxiaoqiang, @luiscantero, @marviniter, @msfussell, @mukundansundar, @orizohar, @pinxiong, @pkedy, @puzpuzpuz, @rovangju, @seeflood, @skyao, @stulzq, @Taction, @tanvigour, @tianjipeng, @tomkerkhove, @wcs1only, @withinboredom, @yaron2

Resources

We hope you try out this new release and raise issues on GitHub as well as reach out to us to ask questions on Discord or via Twitter. We also encourage you to attend our recurring Dapr community calls to see demos and discuss new feature proposals with the rest of the Dapr community!