Dapr 0.9.0
We're happy to announce the release of Dapr 0.9.0!
Highlights
- New components: Scheduler binding, PostgreSQL state store
- Dapr dashboard Helm integration
- Command completion feature in Dapr CLI
- Initialize Dapr without Docker dependency
- Transaction support in the Azure Cosmos DB component
- Dapr dashboard CLI command
- Local development secret store
- Modified Dapr init and uninstall behavior
We would like to extend our thanks to all new and existing contributors who helped make this release happen.
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 How To section.
Note: This release contains a few breaking changes.
See this section on upgrading Dapr to version 0.9.0.
New in this release
Dapr Runtime
Integrated Postgresql state store (Thanks @brooke-hamilton)
Added github actions workflow to push helm charts to githubpages helm repo
Fixed inappropriate HTTP API status codes
Added install dapr control plane to linux containers
Added Dapr dashboard Helm integration
Fixed state error messages
Added transaction support for actors using cosmos
Added injection of Dapr env vars in user container
Improved http/gRPC internal metadata handling
Fixed add trace headers if not provided in response
Added decision record for HTTP Appcallback versioning
Added Registering local secretstore (Thanks @cmendible)
Added Dapr dependencies in e2e test apps whenever proto has breaking changes
Added functionality to remove default components dir
Fixed stateapp dockerfile
Renamed default config to daprsystem config
Changed servicediscovery pkg to nameresolution pkg and remove mdns code
Added sidecar injector readiness/liveness probe path adjustement (Thanks @piotr.mscichowski)
Fixed return GRPC OK for 2xx http status code
Fixed Helm chart installation issue with missing package
Added ARC-004-http-server ADR
Fixed 1s delay for service invocation on selfhost mode
Fixed TestSignCSR flaky test
Added destination appID target and header tests
Dapr CLI
Added command completion feature to Dapr CLI (Thanks @halation3)
Added support to initialize dapr without docker dependency
Added new CLI dapr dashboard command (Thanks @gdhuper)
Added support in the dashboard to accept -n namespace argument
Updated standalone dapr init and uninstall behavior (#breaking-changes)
Updated cli documentation to cover all command options (Thanks @halation3)
Updated linter version to 1.26
Fixed timeout for linter
Added tracing config, Zipkin component on init
Updated dapr init behavior to create default component files (#breaking-changes)
Fixed path truncation issue with Windows
Added functionality to pass components folder to daprd
Components
Added transaction support in the Cosmos db component
Fixed json array envelope parsing
Fixed double envelope when published payload is already a cloud event
Added support output to Twitter binding
Added PostgreSQL State Store (Thanks @brooke-hamilton)
Updated cloudevent identification
Added scheduler (cron) binding
Fixed Azure Service Bus lock renewal per topic (Thanks @jjcollinge)
Added functionality to handle errors in AzureEventHubs.Read (Thanks @nilstschmidt.de)
Fixed enableTLS to work as per the config for Apache Pulsar (Thanks @khous)
Fixed context deadline exceeded issue with an operation timeout
Renamed and refactored servicediscovery to nameresolution pkg
Updated setting URL in mongoDB component to make username/password optional
Refactored JSONSecretStore to LocalSecretStore (Thanks @cmendible)
Fixed the minimum delay of 1s for service invocation
Java SDK
Fixed content-type for Spring controller
Updated use of TypeRef for deserialization and client APIs
Updated samples to use --components-path
Fixed documentation for samples directory
.NET SDK
Updated dotnet sdk in github actions
Fixed actor method names in getting started guide (Thanks @@LayZeeDK)
Fixed InvokeAsync example in getting started guide (Thanks @@LayZeeDK)
Rust/Go SDK
Added pub sub example (Thanks @gdhuper)
Updated and Beautified code snippet (Thanks @franpog859)
JS-SDK
Updated workflow to publish npm package
Updated package.json of samples
Docs
Added threat model image png
Added readme note for uninstall in linux
Updated minor style guide changes to hybrid-clusters howto stub
Fixed typo in setup-azure-servicebus.md (Thanks @candreso)
Added docs for dapr init without Docker
Updated Put a note that Windows containers are not supported in Kubernetes
Updated Cosmos documentation for transaction changes
Moved Kubernetes hybrid-cluster guide howto
Added Kubernetes docs for installing dapr to hybrid windows/linux clusters
Updated Azure Service Bus metadata (Thanks @jjcollinge)
Updated section related to output binding support
Updated documentation related to PostgreSQL (Thanks @brooke-hamilton)
Updated bindings_api.md
Added cron binding documentation
Added binding listing, docs on canceling schedules
Added local developement secret store how to (Thanks @cmendible)
Added docs for injecting env vars
Updated to rename default config to daprsystem config
Updated docs for Zipkin initialization
Updated with missing Kafka link in reference section
Updated component-secrets.md
Updated W3C tracing docs to describe how to use tracing in your applications
Added Dapr with Docker docs (Thanks @jjcollinge)
Updated the doc as how to retrieve the response headers
Added How to Use W3C Trace Context
Added link from main observability how-to
Updated Grafana dashboard - dapr sidecar dashboard and add new actor dashboard #634
Added links to videos from the community calls
Updated Event Hubs doc
Updated Pub/Sub index
Upgrading to Dapr 0.9.0
If you're upgrading from an older version of Dapr to 0.9.0, 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. Note that this will remove the default .dapr directory, binaries and all containers dapr_redis, dapr_placement and dapr_zipkin. Linux users need to run sudo if they have installed binary in default path /usr/local/bin/ or have docker command needing sudo.:
dapr uninstall --all
Next, get the latest CLI following these instructions, or alternatively download the latest and greatest release from here and put the dapr
binary in your PATH.
Once you have downloaded the CLI, run:
dapr init
Wait for the update to finish, and you're good to go!
Make sure you have the right runtime version (0.9.0) with:
dapr --version
Kubernetes
Download the latest CLI release as outlined above in the Local Machine / Self-hosted
section.
If you previously installed Dapr on your Kubernetes cluster using the Dapr CLI, run:
dapr uninstall --kubernetes
It's fine to ignore any errors that might show up.
If you previously installed Dapr using Helm 2.X:
helm del --purge dapr
If you previously installed Dapr using Helm 3.X:
helm uninstall dapr -n dapr-system
Update the Dapr repo:
helm repo update
If you installed Dapr with Helm to a namespace other than dapr-system
, modify the uninstall command above to account for that.
You can now follow these instructions on how to install Dapr using Helm 3.
Alternatively, if you want to install Dapr in a dev/test setup, run:
dapr init --kubernetes
Post installation
After Dapr 0.9.0 has been installed, perform a rolling restart for your deployments.
Breaking Changes
Standalone dapr init and uninstall behavior
- dapr uninstall --all now removes the default .dapr directory and binaries
- dapr init fails if a previous version is installed. You will need to run dapr uninstall first.
- dapr init now deploys a local Zipkin container by default for use with local diagnostic testing.
Dapr init behavior to create default component files
- The default component files are now created during dapr init time.
Cosmos DB partition key setup and usage
The name of the required partition key has changed from /id
to /partitionKey
. Please see this for more details.