
# Dapr 1.0.0-rc.2

We're happy to announce the release of Dapr 1.0.0-rc.2!

We would like to extend our [thanks to all](#Acknowledgements) new and existing contributors who helped make this release happen.

This is a release candidate version as we progress towards Dapr v1.0.0. We appreciate you trying Dapr and providing feedback on this release.

See [this](#upgrading-to-dapr-100-rc2) section on upgrading Dapr to version 1.0.0-rc.2.

> Dapr CLI version in this release is 1.0.0-rc.3 and is not compatible with runtime versions prior to 1.0.0-rc.2. Download Dapr CLI 1.0.0-rc.3 from [here](https://github.com/dapr/cli/releases) and put the `dapr` binary in your PATH, or use the rc1 install script in the Getting Started guide.

> For Java applications using Dapr Java SDK, use SDK version 1.0.0-rc-2. See [upgrade instructions for the Java SDK](https://github.com/dapr/java-sdk/issues/415).

> For .Net applications using Dapr .Net SDK, use SDK version 1.0.0-rc02. See [upgrade instructions for the .Net SDK](https://github.com/dapr/dotnet-sdk/issues/505).

### **Note: This release contains a few [breaking changes](#breaking-changes).**</font>

## Highlights

* Added the ability to share state between different applications using prefix strategies. Visit [this](https://v1-rc2.docs.dapr.io/developing-applications/building-blocks/state-management/howto-share-state/) link to learn more.

* Added a [bulk secrets API](https://v1-rc2.docs.dapr.io/reference/api/secrets_api/#get-bulk-secret) to get all the secrets at once from a secret store that the app has access to. Implemented in the [secret components](https://github.com/dapr/components-contrib/tree/master/secretstores)

* Actors in Java SDK communicate to Dapr sidecar via GRPC. This allows better performance for invocation of Actor methods, timers and reminders. `ActorProxyBuilder` is now closeable, holding an instance of gRPC's `ManagedChannel` class to be closed. See [upgrade instructions for the Java SDK](https://github.com/dapr/java-sdk/issues/415).

* Deprecation of exporters component [#2337](https://github.com/dapr/dapr/issues/2337):  Tracing is now part of Dapr core, and tracing settings have moved to Configuration CRD. See [this doc](https://v1-rc2.docs.dapr.io/operations/configuration/configuration-overview/#tracing) for information about the new tracing settings. For more detailed instructions on setting up tracing in new Configuration, check out the [observability quickstart sample](https://github.com/dapr/quickstarts/tree/v1.0.0-rc.2/observability) as well as backend-specific guides for [Zipkin](https://v1-rc2.docs.dapr.io/operations/monitoring/zipkin/), [Jaeger](https://v1-rc2.docs.dapr.io/operations/monitoring/jaeger/), [New Relics](https://v1-rc2.docs.dapr.io/operations/monitoring/newrelic/), and [OpenTelemetry trace backends like Azure AppInsight](https://v1-rc2.docs.dapr.io/operations/monitoring/open-telemetry-collector/).

* Service invocation performance test results now published and available at the [dapr perf website](http://daprperf.azurewebsites.net/)

* Full review on the [Dapr CLI](https://v1-rc2.docs.dapr.io/reference/cli/) to make command parameters consistent, update descriptions, provide more examples and add capabilities such as getting the [output for configuration](https://v1-rc2.docs.dapr.io/reference/cli/dapr-configurations/).Note that this includes breaking changes.

* Improvements to the [Dapr metrics dashboards](https://v1-rc2.docs.dapr.io/operations/monitoring/grafana/).

* Improvements to the Dapr operational dashboard.

* Round robin load balancing of mDNS requests. This supports multiple app instances for a single standalone app id with round robin load balancing across them for environments that support mDNS, such a physical machines.  For example, if you have 1 instance of app A and 5 instances of app B and then call from A->B, Dapr round robins' between the 5 B instances.

* Added the option to specify whether Dapr should ignore errors when loading a component and continue initialization. See [here](https://v1-rc2.docs.dapr.io/operations/components/component-schema/) for the new `ignoreErrors` field.

* [Dependency injection (DI)](https://github.com/dapr/dotnet-sdk/issues/505) for .NET actors

## Acknowledgements

Thanks to everyone who made this release possible!

@1046102779, @DarqueWarrior, @PeterGerrard, @Phiph, @ProfessorMc, @Qalifah, @ZeyadYasser, @abserari, @artursouza, @cmendible, @cvictory, @eNeRGy164, @halspang, @harrykimpel, @issacg, @jigargandhi, @jjcollinge, @juazasan, @ksivamuthu, @mchmarny, @msfussell, @mukundansundar, @rynowak, @sau-lanvy, @shubham1172, @skyao, @tcnghia, @tianvan, @trondhindenes, @vinayada1, @wcs1only, @wwulfric, @yaron2, @youngbupark

## New in this release

### Dapr Runtime

- **RESOLVED** Enable perf test UI and alerts [1790](https://github.com/dapr/dapr/issues/1790)

- **RESOLVED** Make Dapr logging less actor verbose [1966](https://github.com/dapr/dapr/issues/1966)

- **RESOLVED** Actor Reminder not persisting [2049](https://github.com/dapr/dapr/issues/2049)

- **FIXED** Use of Content-Type header for wrapping pubsub payload into CloudEvent [2080](https://github.com/dapr/dapr/issues/2080)

- **RESOLVED** Get all secrets from secrets API [2168](https://github.com/dapr/dapr/issues/2168)

- **FIXED** Pubsub API will now return 403 for forbidden pubsub topics. [2323](https://github.com/dapr/dapr/issues/2323)

- **ADDED** timeout setting for components [2352](https://github.com/dapr/dapr/issues/2352)

- **RESOLVED** Review and improve bulk operations of state for a  unified user experience [2368](https://github.com/dapr/dapr/issues/2368)

- **RESOLVED** Pass pubsub subscription metadata to pubsub component [2379](https://github.com/dapr/dapr/issues/2379)

- **RESOLVED** Dapr health endpoint is incorrectly reporting healthy if bindings have failed to initialize [2437](https://github.com/dapr/dapr/issues/2437)

- **FIXED** Changed ImagePullPolicy for Dapr sidecar Docker image from `Allways` to `IfNotPresent` [2444](https://github.com/dapr/dapr/issues/2444)

- **RESOLVED** dapr sidecar is crash-looping, but the logs don't indicate that anything's wrong [2449](https://github.com/dapr/dapr/issues/2449)

- **RESOLVED** Add components to metadata endpoint [2462](https://github.com/dapr/dapr/issues/2462)

- **ADDED** Reminder and State APIs for Actors in GRPC [2466](https://github.com/dapr/dapr/issues/2466)

- **ENABLED** DynamoDB as a supported statestore driver [2469](https://github.com/dapr/dapr/issues/2469)

- **ADDED** Support for imagePullSecret Secret on Helm Chart [2475](https://github.com/dapr/dapr/issues/2475)

- **RESOLVED** Head method not allowed by Dapr [2490](https://github.com/dapr/dapr/issues/2490)

- **RESOLVED** PublishRequest and SubscriberRequest need metadata  [2495](https://github.com/dapr/dapr/issues/2495)

- **RESOLVED** Review Grafana dashboard and fix the inconsistency [2505](https://github.com/dapr/dapr/issues/2505)

- **MOVED** Zipkin trace configuration from Zipkin exporter into Dapr core [2521](https://github.com/dapr/dapr/issues/2521)

- **RESOLVED** Move Zipkin exporter code into Dapr core [2522](https://github.com/dapr/dapr/issues/2522)

- **FIXED** Grpc context leak on failed connection. [2533](https://github.com/dapr/dapr/issues/2533)

- **ADDED** configuration for webhook failure policy in sidecar injector helm chart [2549](https://github.com/dapr/dapr/issues/2549)

- **FIXED** can not invoke service http route '/' [2571](https://github.com/dapr/dapr/issues/2571)

- **FIXED** missing traceparent for http app channel call [2588](https://github.com/dapr/dapr/issues/2588)

### Dapr CLI

- **RESOLVED** `dapr init` should start the Redis host even if a non-default host name is specified [418](https://github.com/dapr/cli/issues/418)

- **UPDATED** configuration command output and print yaml and json output. [487](https://github.com/dapr/cli/issues/487)

- **FIXED** empty spaces in path [513](https://github.com/dapr/cli/issues/513)

- **MADE** shorthands across commands consistent [530](https://github.com/dapr/cli/issues/530)

- **ADDED** new shorthands for different flags [531](https://github.com/dapr/cli/issues/531)

- **UPDATED** Default standalone Configuration to not use deprecated Zipkin exporter component. [534](https://github.com/dapr/cli/issues/534)

- **ADDED** --publish-app-id to the publish command [536](https://github.com/dapr/cli/issues/536)

- **REMOVED** unused and unsupported `--image` flag from `run` command. [537](https://github.com/dapr/cli/issues/537)

- **UPDATED** supported platforms for CLI commands [538](https://github.com/dapr/cli/issues/538)

- **ADDED** examples for all CLI commands [539](https://github.com/dapr/cli/issues/539)

- **REMOVED** `redis-host` flag from `dapr init` [540](https://github.com/dapr/cli/issues/540)

### Components

- **RESOLVED** Expand the secret store implementation to provide a method to retrieve all secrets from a store [309](https://github.com/dapr/components-contrib/issues/309)

- **RESOLVED** Goroutine leak in ASB pubsub when message cannot be completed/abandoned [376](https://github.com/dapr/components-contrib/issues/376)

- **RESOLVED** Have Dapr support multiple instances registered with same app-id and load balance requests across them [514](https://github.com/dapr/components-contrib/issues/514)

- **RESOLVED** State Management Couchbase Components, Deserialize Problem [518](https://github.com/dapr/components-contrib/issues/518)

- **RESOLVED** Azure Key Vault Secret Store can read different secret versions. [522](https://github.com/dapr/components-contrib/issues/522)

- **RESOLVED** Getting a weird error when trying to log more [529](https://github.com/dapr/components-contrib/issues/529)

- **ADDED** Postmark output binding [545](https://github.com/dapr/components-contrib/issues/545)

- **RESOLVED** Add access level to Azure Blob Storage [548](https://github.com/dapr/components-contrib/issues/548)

- **FIXED** Bug in flattening of JSON hierarchy by local file secrets store. [550](https://github.com/dapr/components-contrib/issues/550)

### Dashboard

- **FIXED** Display dashboard version correctly in command line interface [86](https://github.com/dapr/dashboard/issues/86)

- **FIXED** Display Placement service in Dashboard list of Dapr services [101](https://github.com/dapr/dashboard/issues/101)

- **FIXED** Display dashboard in list of Dapr services [102](https://github.com/dapr/dashboard/issues/102)

- **ADDED** Metrics setting in Configurations screen [103](https://github.com/dapr/dashboard/issues/103)

- **UPDATED** Configuration to auto-fill screen [105](https://github.com/dapr/dashboard/issues/105) [106](https://github.com/dapr/dashboard/issues/106) [107](https://github.com/dapr/dashboard/issues/107)

- **FIXED** display of multiple replicas of Dapr services [108](https://github.com/dapr/dashboard/issues/108)

- **UPDATED** Application list action from trash can icon to text button [109](https://github.com/dapr/dashboard/issues/109)

### .NET SDK

- **RESOLVED** Dependency injection for Actors is enabled by default for ASP.NET Core projects [171](https://github.com/dapr/dotnet-sdk/issues/171)

- **RESOLVED** Dapr Actors should not use BinaryFormatter [414](https://github.com/dapr/dotnet-sdk/issues/414)

- **UPDATED** Naming of HTTPExtension and related types to follow .NET conventions [421](https://github.com/dapr/dotnet-sdk/issues/421)

- **RESOLVED** InvokeMethodAsync reports cancellation using RpcException instead of OperationCanceledOperation [422](https://github.com/dapr/dotnet-sdk/issues/422)

- **FIXED** Timer invocation after Actor runtime app restarts. [435](https://github.com/dapr/dotnet-sdk/issues/435)

- **REMOVED** public constructor on ActorTypeInfo - this is a breaking change but unlikely to impact users as it was not useful before [461](https://github.com/dapr/dotnet-sdk/issues/461)

- **RESOLVED** Resurrect .NET configuration provider [462](https://github.com/dapr/dotnet-sdk/issues/462)

- **ADDED** Fluent methods to construct and manipulate HTTPExtensions class [472](https://github.com/dapr/dotnet-sdk/issues/472)

- **RESOLVED** Remove ContentType property from InvocationRequest class [474](https://github.com/dapr/dotnet-sdk/issues/474)

- **RESOLVED** Error in Dapr Documentation prevents dapr run of DaprClient from running. [481](https://github.com/dapr/dotnet-sdk/issues/481)

- **UPDATED** branding of .NET SDK libraries to reflect 1.0.0 RC [482](https://github.com/dapr/dotnet-sdk/issues/482)

- **FIXED** Bug in AspNetCore package [496](https://github.com/dapr/dotnet-sdk/issues/496)

### Go SDK

- **RESOLVED** Cancel gRPC returns error [100](https://github.com/dapr/go-sdk/issues/100)

- **ADDED** Expose HTTP/gRPC server address on created client [111](https://github.com/dapr/go-sdk/issues/111)

- **UPDATE** Have consistent method/parameter names across SDKs [117](https://github.com/dapr/go-sdk/issues/117)

- **ADDED** Parameterize request method verb on service invocation [118](https://github.com/dapr/go-sdk/issues/118)

- **ADDED** Support HTTP query string on method invoke [125](https://github.com/dapr/go-sdk/issues/125)

### Java SDK

- **USED** DaprException consistently across the SDK. [203](https://github.com/dapr/java-sdk/issues/203)

- **UPDATED** Opentelemetry library version to 0.10.0 [379](https://github.com/dapr/java-sdk/issues/379)

- **ADDED** Support for Actor APIs over GRPC from app into runtime [393](https://github.com/dapr/java-sdk/issues/393)

- **UPDATED** Java SDK trace sample at https://github.com/dapr/java-sdk/blob/v0.10.0/examples/src/main/java/io/dapr/examples/tracing/README.md to not use exporter components. [404](https://github.com/dapr/java-sdk/issues/404)

### Python SDK

- **FIXED** Timer invocation after Actor runtime app restarts. [134](https://github.com/dapr/python-sdk/issues/134)

- **RESOLVED** Broken kubernetes link in examples readme [147](https://github.com/dapr/python-sdk/issues/147)


### Rust SDK

- **RESOLVED** Create Cargo package [32](https://github.com/dapr/rust-sdk/issues/32)

### Documentation

- **RESOLVED** Distributed Tracing with Jaeger [693](https://github.com/dapr/docs/issues/693)

- **RESOLVED** Need to update the conceptual docs for pub/sub for declarative subscribe  [795](https://github.com/dapr/docs/issues/795)

- **RESOLVED** Document the Metadata API [825](https://github.com/dapr/docs/issues/825)

- **RESOLVED** Operations tracing troubleshooting guide is incorrect [886](https://github.com/dapr/docs/issues/886)

- **RESOLVED** Update middleware-concept.md [929](https://github.com/dapr/docs/pull/929)

- **RESOLVED** spelling error [937](https://github.com/dapr/docs/pull/937)

- **RESOLVED** [CONTENT] Instructions for setting up observability with New Relic [949](https://github.com/dapr/docs/issues/949)

- **RESOLVED** Added New Relic How-to docs [951](https://github.com/dapr/docs/pull/951)

- **RESOLVED** The Dapr System service dashboard do not have docs describing how to read the information. [959](https://github.com/dapr/docs/issues/959)

- **RESOLVED** Update typo and broken link [961](https://github.com/dapr/docs/pull/961)

- **RESOLVED** Update trace configurations to not use exporter component [967](https://github.com/dapr/docs/issues/967)

- **UPDATED** CLI reference documentation. [972](https://github.com/dapr/docs/issues/972)

- **RESOLVED** Update dapr-run.md [974](https://github.com/dapr/docs/pull/974)

- **RESOLVED** Update trace spec in Configuration to mention `zipkin` section [978](https://github.com/dapr/docs/issues/978)

- **UPDATED** overview description for pub/sub topics and subscriptions [987](https://github.com/dapr/docs/issues/987)

- **UPDATED** pubsub documentation to mention use of Content-Type header for CloudEvent wrapping. [998](https://github.com/dapr/docs/issues/998)

- **RESOLVED** Fixed typo in setup-sqlserver [1004](https://github.com/dapr/docs/pull/1004)

- **UPDATED** component field for ignoreErrors [1007](https://github.com/dapr/docs/issues/1007)

- **UPDATED** custom certs instructions [1008](https://github.com/dapr/docs/issues/1008)

### Quickstarts

- **UPDATED** observability quickstart to add instruction for self-host mode [288](https://github.com/dapr/quickstarts/issues/288)

- **ADDED** Support for ARM and ARM64 containers in quickstarts [327](https://github.com/dapr/quickstarts/issues/327)

- **RESOLVED** update tracing config fields [335](https://github.com/dapr/quickstarts/pull/335)

- **RESOLVED** Update quickstarts to not use exporter components [336](https://github.com/dapr/quickstarts/issues/336)

### Samples

- **ADDED** Java version for twitter processing pipeline app sample [34](https://github.com/dapr/samples/issues/34) [38](https://github.com/dapr/samples/issues/38)

- **ADDED** Python version for twitter processing pipeline app sample [36](https://github.com/dapr/samples/issues/36)

### Test-infra

- **ADDED** CI/CD pipeline for longhaul tests [72](https://github.com/dapr/test-infra/issues/72)

- **ADDED** Create Prometheus dashboard for longhaul tests. [73](https://github.com/dapr/test-infra/issues/73)

### Homebrew-tap

- **ADDED** RC releases for cli are now installable from Homebrew [11](https://github.com/dapr/homebrew-tap/issues/11)

## Upgrading to Dapr 1.0.0-rc.2

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?

### 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:

```bash
dapr uninstall --all
```

For RC releases like this, download the latest and greatest release from [here](https://github.com/dapr/cli/releases) and put the `dapr` binary in your PATH.

Once you have installed the CLI, run:

```bash
dapr init --runtime-version=1.0.0-rc.2
```

Wait for the update to finish,  ensure you are using the latest version of Dapr(1.0.0-rc.2) with:

```bash
$ dapr --version

CLI version: 1.0.0-rc.3
Runtime version: 1.0.0-rc.2
```

### Kubernetes

#### Upgrading from previous version

If you previously installed Dapr using Helm, you can upgrade Dapr to a new version.
If you installed Dapr using the CLI, go [here](#starting-fresh-install-on-a-cluster).

##### 1. Get the latest CLI

Download the latest RC release from [here](https://github.com/dapr/cli/releases) and put the `dapr` binary in your PATH.

##### 2. Upgrade from existing cluster running 0.11.x

Follow instructions below to migrate from 0.11.x placement service to 1.0.0-rc.2 placement service safely.

First run these two commands to disable `helm upgrade` from uninstall 0.11.x placement service.

```sh
kubectl annotate deployment dapr-placement helm.sh/resource-policy=keep -n dapr-system
kubectl annotate svc dapr-placement helm.sh/resource-policy=keep -n dapr-system
```

###### Delete exporter components

Now, check if you have any exporter type components, by running the following command `kubectl get components -o=custom-columns='NAME:metadata.name,TYPE:spec.type'` and look for components with type `exporter.*`.
Since exporter components are no longer supported, you will need to remove them prior to upgrading. You may want to print their content for your reference using `kubectl get component <component-name> -o yaml`.

Then, export certs:

```sh
dapr mtls export -o ./certs
```

Now, upgrade Dapr to 1.0.0-rc.2 using the below commands:

```sh
helm repo update
helm upgrade dapr dapr/dapr --version 1.0.0-rc.2 --namespace dapr-system --reset-values --set-file dapr_sentry.tls.root.certPEM=./certs/ca.crt --set-file dapr_sentry.tls.issuer.certPEM=./certs/issuer.crt --set-file dapr_sentry.tls.issuer.keyPEM=./certs/issuer.key --set global.ha.enabled=true --wait
```

Due to Helm being unable to upgrade CRDs, we will need to upgrade CRD directly.
```sh
kubectl replace -f https://raw.githubusercontent.com/dapr/dapr/21636a9237f2dcecd9c80f329e99b512e8377739/charts/dapr/crds/configuration.yaml
kubectl replace -f https://raw.githubusercontent.com/dapr/dapr/21636a9237f2dcecd9c80f329e99b512e8377739/charts/dapr/crds/components.yaml
```

To re-incorporate your tracing settings, follow the [observability docs](https://v1-rc2.docs.dapr.io/operations/monitoring//) to leverage the new trace settings in the Configuration resource.

Once Dapr is installed completely, ensure that 0.11.x dapr-placement service is still running and **wait until all pods are running**
```sh
kubectl get pods -n dapr-system -w

NAME                                     READY   STATUS    RESTARTS   AGE
dapr-dashboard-69f5c5c867-mqhg4          1/1     Running   0          42s
dapr-operator-5cdd6b7f9c-9sl7g           1/1     Running   0          41s
dapr-operator-5cdd6b7f9c-jkzjs           1/1     Running   0          29s
dapr-operator-5cdd6b7f9c-qzp8n           1/1     Running   0          34s
dapr-placement-5dcb574777-nlq4t          1/1     Running   0          76s  ---- 0.11.x placement
dapr-placement-server-0                  1/1     Running   0          41s
dapr-placement-server-1                  1/1     Running   0          41s
dapr-placement-server-2                  1/1     Running   0          41s
dapr-sentry-84565c747b-7bh8h             1/1     Running   0          35s
dapr-sentry-84565c747b-fdlls             1/1     Running   0          41s
dapr-sentry-84565c747b-ldnsf             1/1     Running   0          29s
dapr-sidecar-injector-68f868668f-6xnbt   1/1     Running   0          41s
dapr-sidecar-injector-68f868668f-j7jcq   1/1     Running   0          29s
dapr-sidecar-injector-68f868668f-ltxq4   1/1     Running   0          36s
```


Restart your application deployments to update the Dapr runtime.
```sh
kubectl rollout restart deploy/<DEPLOYMENT-NAME>
```

Once the deployment is completed, delete the 0.11.x dapr-placement service by running the following commands:
```sh
kubectl delete deployment dapr-placement -n dapr-system
kubectl delete svc dapr-placement -n dapr-system
```

All done!

##### 2. Upgrade from existing cluster running 1.0.0-rc.1

First, export certs:

```sh
dapr mtls export -o ./certs
```

###### Delete exporter components
Now, check if you have any exporter type components, by running the following command `kubectl get components -o=custom-columns='NAME:metadata.name,TYPE:spec.type'` and look for components with type `exporter.*`.
Since exporter components are no longer supported, you will need to remove them prior to upgrading. You may want to print their content for your reference using `kubectl get component <component-name> -o yaml`.

Then, upgrade Dapr to 1.0.0-rc.2 using the below commands:

```sh
helm repo update
helm upgrade dapr dapr/dapr --version 1.0.0-rc.2 --namespace dapr-system --reset-values --set-file dapr_sentry.tls.root.certPEM=./certs/ca.crt --set-file dapr_sentry.tls.issuer.certPEM=./certs/issuer.crt --set-file dapr_sentry.tls.issuer.keyPEM=./certs/issuer.key --set global.ha.enabled=true --wait
```

Due to Helm being unable to upgrade CRDs, we will need to upgrade CRD directly.
```sh
kubectl replace -f https://raw.githubusercontent.com/dapr/dapr/21636a9237f2dcecd9c80f329e99b512e8377739/charts/dapr/crds/configuration.yaml
kubectl replace -f https://raw.githubusercontent.com/dapr/dapr/21636a9237f2dcecd9c80f329e99b512e8377739/charts/dapr/crds/components.yaml
```

To re-incorporate your tracing settings, follow the [observability docs](https://v1-rc2.docs.dapr.io/operations/monitoring/) to leverage the new trace settings in the Configuration resource.

Once Dapr is installed completely, ensure until **all pods are running**
```sh
kubectl get pods -n dapr-system -w

NAME                                     READY   STATUS    RESTARTS   AGE
dapr-dashboard-69f5c5c867-mqhg4          1/1     Running   0          42s
dapr-operator-5cdd6b7f9c-9sl7g           1/1     Running   0          41s
dapr-operator-5cdd6b7f9c-jkzjs           1/1     Running   0          29s
dapr-operator-5cdd6b7f9c-qzp8n           1/1     Running   0          34s
dapr-placement-server-0                  1/1     Running   0          41s
dapr-placement-server-1                  1/1     Running   0          41s
dapr-placement-server-2                  1/1     Running   0          41s
dapr-sentry-84565c747b-7bh8h             1/1     Running   0          35s
dapr-sentry-84565c747b-fdlls             1/1     Running   0          41s
dapr-sentry-84565c747b-ldnsf             1/1     Running   0          29s
dapr-sidecar-injector-68f868668f-6xnbt   1/1     Running   0          41s
dapr-sidecar-injector-68f868668f-j7jcq   1/1     Running   0          29s
dapr-sidecar-injector-68f868668f-ltxq4   1/1     Running   0          36s
```


Restart your application deployments to update the Dapr runtime.
```sh
kubectl rollout restart deploy/<DEPLOYMENT-NAME>
```

All done!

#### Starting fresh install on a cluster

You can use Helm 3 to install Dapr:
```sh
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.0.0-rc.2 --namespace dapr-system
```

Alternatively, you can use the latest version of CLI:

```
dapr init --runtime-version=1.0.0-rc.2 --kubernetes
```

If you previously installed Dapr on your Kubernetes cluster using the Dapr CLI, run:

*Note: Make sure you're uninstalling with your existing CLI version*

```bash
dapr uninstall --kubernetes
```

If you previously installed Dapr using __Helm 3.X__:

```bash
helm uninstall dapr -n dapr-system
```

If you installed Dapr with Helm to a namespace other than `dapr-system`, modify the uninstall command above to account for that.

##### Post installation

Verify the control plane pods are running and are healthy:

```
$ kubectl get pods -n dapr-system
NAME                                    READY   STATUS    RESTARTS   AGE
dapr-dashboard-85cc6c9f7d-hzk69         1/1     Running   0          13m
dapr-operator-84985cb985-h2zdv          1/1     Running   0          13m
dapr-placement-server-0                 1/1     Running   0          13m
dapr-sentry-5974c7cb6d-9bnqd            1/1     Running   0          13m
dapr-sidecar-injector-5b5bb9454-sfmmx   1/1     Running   0          13m
```

## Breaking Changes

### Dapr Runtime

See [instructions](#delete-exporter-components) to delete exporter components.

- **FIXED** Pubsub API will now return 403 for forbidden pubsub topics. [2323](https://github.com/dapr/dapr/issues/2323)

- **MOVED** Zipkin trace configuration from Zipkin exporter into Dapr core [2521](https://github.com/dapr/dapr/issues/2521)

### Dapr CLI

- **MADE** shorthands across commands consistent [530](https://github.com/dapr/cli/issues/530)

- **UPDATED** Default standalone Configuration to not use deprecated Zipkin exporter component. [534](https://github.com/dapr/cli/issues/534)

- **ADDED** `--publish-app-id` to the publish command [536](https://github.com/dapr/cli/issues/536)

- **REMOVED** unused and unsupported `--image` flag from `run` command. [537](https://github.com/dapr/cli/issues/537)

- **REMOVED** `redis-host` flag from `dapr init` [540](https://github.com/dapr/cli/issues/540)

### .NET SDK

See [migration instructions](https://github.com/dapr/dotnet-sdk/issues/505) for the .Net SDK.

- **RESOLVED** Dependency injection for Actors is enabled by default for ASP.NET Core projects [171](https://github.com/dapr/dotnet-sdk/issues/171)

- **RESOLVED** Dapr Actors should not use BinaryFormatter [414](https://github.com/dapr/dotnet-sdk/issues/414)

- **UPDATED** Naming of HTTPExtension and related types to follow .NET conventions [421](https://github.com/dapr/dotnet-sdk/issues/421)

- **FIXED** Timer invocation after Actor runtime app restarts. [435](https://github.com/dapr/dotnet-sdk/issues/435)

- **REMOVED** public constructor on ActorTypeInfo - this is a breaking change but unlikely to impact users as it was not useful before [461](https://github.com/dapr/dotnet-sdk/issues/461)

### Go SDK

- **RESOLVED** Have consistent method/parameter names across SDKs [117](https://github.com/dapr/go-sdk/issues/117)

### Java SDK

See [migration instructions](https://github.com/dapr/java-sdk/issues/415) for the Java SDK.

- **USE** DaprException consistently across the SDK. [203](https://github.com/dapr/java-sdk/issues/203)

- **UPDATED** Opentelemetry library version to 0.10.0 [379](https://github.com/dapr/java-sdk/issues/379)

- **ADDED** Support for Actor APIs over GRPC from app into runtime [393](https://github.com/dapr/java-sdk/issues/393)

### Python SDK

- **FIXED** Timer invocation after Actor runtime app restarts. [134](https://github.com/dapr/python-sdk/issues/134)

