docs/release_notes/v1.10.0.md
We're happy to announce the release of Dapr 1.10!
We would like to extend our thanks to all the new and existing contributors who helped make this release happen.
Thanks to everyone who made this release possible!
@1046102779, @addjuarez, @akhilac1, @alberthuang24, @alexlai97, @amulyavarote, @ana-cozma, @arjundevarajan, @artursouza, @ASHIQUEMD, @berndverst, @bookinstock, @Bryce-huang, @cgillum, @chalin, @ckchessmaster, @cmendible, @codefromthecrypt, @daixiang0, @dbrattli, @DeepanshuA, @drewby, @famarting, @federicocodo, @filintod, @findmyway, @gdlcf88, @greenie-msft, @halspang, @harrykimpel, @havardzzl, @hauju, @hhunter-ms, @hueifeng, @imneov, @Isekai-Seikatsu, @ItalyPaleAle, @Jarema, @jinjianfeng-chn, @jjcollinge, @joaocc, @johnewart, @JoshVanL, @KaiWalter, @kubemq, @LENSHOOD, @LionTao, @longshine, @LordMsz, @lucasalexsorensen, @MACEL94, @marcduiker, @mcandeia, @mecoding1, @mikeb26, @mindovermiles262, @mountain65, @msfussell, @mstrYoda, @mukundansundar, @NickLarsenNZ, @nyemade-uversky, @paulyuk, @pepegar, @philliphoff, @pravinpushkar, @rabollin, @renatolfc, @robertojrojas, @RyanLettieri, @ryou90, @safanaj, @salaboy, @salmankhan-prs, @sarsharma, @shivamkm07, @shubham1172, @sicoyle, @siredmar, @SpikeWong, @sujitdmello, @sunzhaochang, @Syuparn, @Taction, @tanvigour, @thielepaul, @ThumNet, @TKTheTechie, @tmacam, @VerstraeteBert, @vikram-thiru, @vishalsignity, @VuiDJi, @waitingkuo, @wxbty, @x-shadow-man, @XavierGeerinck, @yaoyaoio, @yaron2, @yash-nisar, @zcong1993, @Zizico2
Dapr now has workflows included as a new alpha API. Dapr Workflows enables you to build long running, persistent processes or data flows that span multiple apps. Dapr Workflows can be combined with other Dapr API building blocks. For example, a workflow can call another service with service invocation, trigger a binding or retrieve secrets, enabling you to orchestrate and build complex application scenarios.
You can read more about Dapr Workflow or dive in and try out a .NET Dapr Workflow quickstart to see this in action.
With the bulk publish and subscribe, you can publish and subscribe to multiple messages in a single request. When writing applications that need to send or receive a large number of messages, using bulk operations allows achieving high throughput by reducing the overall number of requests between the Dapr sidecar, the application, and the underlying pub/sub broker.
Dapr has built-in components that are included as part of the runtime. Dapr now allows you to create private components called "pluggable components". These are components that are self-hosted (exe or container), can be written in any language and are able to "plug" into Dapr. In this release preview SDKs for .NET, Java, and Go enable you to create pluggable components easily with the language of your choice. You can read more on .NET SDK here.
With Multi-App Run, you can start multiple applications in self-hosted mode using a single dapr run -f command using a template. The template file describes how to start multiple applications as if you had run many separate CLI run commands, significantly improving the experience of testings several apps at the same time. Try it out here with Java, Go, .NET, JavaScript and Python
In this release, resiliency policies, first introduced in the v1.7.0 release, are now stable. Try them out in these resiliency quickstarts
In this release, the following components were designated as stable:
The following components are now "deprecated" and marked for deletion in a future Dapr version:
There are now 111 built-in components in Dapr. Eight new components were added in this release:
--resources-path has been introduce for all resource types--components-path which was unclear. --components-path remains for backward compatibility (slated for removal in a future release), however--resources-path is the preferred choice. See examples in the quickstartsNote: ** This release contains breaking changes and deprecations in the runtime and SDKs.
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.10.
ALLOWED_SERVICE_ACCOUNTS option to the helm chart 5019runAsNonRoot and readOnlyRootFilesystem for Dapr sidecar 5374automountServiceAccountToken: false - use bound tokens for identity in Dapr 5371 5359 5623/healthz/outbound bypasses API access rules just like /healthz 5379--no-health-check-api-logging to omit health checks from API logging 5457maxRetries: 0 5531dapr_sidecar_injector.replicaCount is not considered with Helm deployment 5674{appID} 5690obfuscateURLs option to HTTP apiLogging configuration 5866 5409.metrics in addition to .metric 5824b64encoding option for messages 2249 2263domain and apiPrefix options 2400retained information to pubsub message metadata 2299noindex option to skip indexing of value 2479--components-path flag to a name for suitable for loading many resource types 953--image-variant flag to mtls renew-certificate command 1125dapr run command 1141resources_dir for dapr run -f 1142dapr list --output json includes related Dapr Compose configuration file metadata 1153dapr stop to handle applications spawned by dapr run -f 1165dapr list --output json returns inconsistent JSON 1171dapr run track and dapr list display the PID of run commands 1191Note: The Dapr Go SDK now requires Go 1.18 or higher.
wait() method to block until the Dapr sidecar is up 329grpcio and protobuf requirements for wider compatibility 480ensure_ascii = False for native Unicode representation 498dapr run -f . 243To 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 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.10
Wait for the update to finish, ensure you are using the latest version of Dapr(1.10) with:
$ dapr --version
CLI version: 1.10
Runtime version: 1.10
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.10 -k
To upgrade with high availability mode:
dapr upgrade --runtime-version 1.10 --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.10 --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.10 --namespace dapr-system --wait
Alternatively, you can use the latest version of CLI:
dapr init --runtime-version=1.10 -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.12.0 15s 2023-02-03 13:07.39
dapr-sidecar-injector dapr-system True Running 1 1.10 15s 2023-02-03 13:07.39
dapr-sentry dapr-system True Running 1 1.10 15s 2023-02-03 13:07.39
dapr-operator dapr-system True Running 1 1.10 15s 2023-02-03 13:07.39
dapr-placement dapr-system True Running 1 1.10 15s 2023-02-03 13:07.39
After Dapr 1.10 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>