Skip to content

Commit d23df25

Browse files
committed
docs: graduate HotReload to GA
Reflect dapr/dapr#9577 and dapr/dapr#9811: HotReload is on by default in v1.18. Remove the preview rows and update prose to default-on with an opt-out note. Signed-off-by: Javier Aliaga <javier@diagrid.io>
1 parent 362092b commit d23df25

8 files changed

Lines changed: 29 additions & 27 deletions

File tree

daprdocs/content/en/concepts/components-concept.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ For more information read [Pluggable components overview]({{% ref "pluggable-com
5454

5555
## Hot Reloading
5656

57-
With the [`HotReload` feature enabled]({{% ref "support-preview-features" %}}), components are able to be "hot reloaded" at runtime.
57+
Since Dapr v1.18, components are "hot reloaded" at runtime by default. To opt out, disable the `HotReload` feature in the [Dapr application configuration]({{% ref "preview-features.md" %}}).
5858
This means that you can update component configuration without restarting the Dapr runtime.
5959
Component reloading occurs when a component resource is created, updated, or deleted, either in the Kubernetes API or in self-hosted mode when a file is changed in the `resources` directory.
6060
When a component is updated, the component is first closed, and then reinitialized using the new configuration.

daprdocs/content/en/developing-applications/building-blocks/pubsub/howto-publish-subscribe.md

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -188,9 +188,14 @@ The example above shows an event subscription to topic `orders`, for the pubsub
188188
Place `subscription.yaml` in the same directory as your `pubsub.yaml` component. When Dapr starts up, it loads subscriptions along with the components.
189189

190190
{{% alert title="Note" color="primary" %}}
191-
This feature is currently in preview.
192-
Dapr can be made to "hot reload" declarative subscriptions, whereby updates are picked up automatically without needing a restart.
193-
This is enabled by via the [`HotReload` feature gate]({{% ref "support-preview-features" %}}).
191+
Since Dapr v1.18, declarative subscriptions are "hot reloaded" by default, whereby updates are picked up automatically without needing a restart. To opt out, disable the `HotReload` feature in the Dapr application configuration:
192+
193+
```yaml
194+
spec:
195+
features:
196+
- name: HotReload
197+
enabled: false
198+
```
194199
To prevent reprocessing or loss of unprocessed messages, in-flight messages between Dapr and your application are unaffected during hot reload events.
195200
{{% /alert %}}
196201

daprdocs/content/en/developing-applications/building-blocks/pubsub/pubsub-overview.md

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -87,9 +87,8 @@ For more information, read [about the subscriptions in Subscription Types]({{% r
8787

8888
### Reloading topic subscriptions
8989

90-
To reload topic subscriptions that are defined programmatically or declaratively, the Dapr sidecar needs to be restarted.
91-
The Dapr sidecar can be made to dynamically reload changed declarative topic subscriptions without restarting by enabling the [`HotReload` feature gate]({{% ref "support-preview-features" %}}).
92-
Hot reloading of topic subscriptions is currently a preview feature.
90+
Programmatic topic subscriptions require the Dapr sidecar to be restarted in order to be reloaded.
91+
Since Dapr v1.18, the Dapr sidecar dynamically reloads changed declarative topic subscriptions without restarting. This is enabled by default; to opt out, disable the `HotReload` feature in the [Dapr application configuration]({{% ref "preview-features.md" %}}).
9392
In-flight messages are unaffected when reloading a subscription.
9493

9594
### Message routing

daprdocs/content/en/developing-applications/building-blocks/pubsub/subscription-methods.md

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,14 @@ The examples below demonstrate pub/sub messaging between a `checkout` app and an
2121
### Declarative subscriptions
2222

2323
{{% alert title="Note" color="primary" %}}
24-
This feature is currently in preview.
25-
Dapr can be made to "hot reload" declarative subscriptions, whereby updates are picked up automatically without needing a restart.
26-
This is enabled by via the [`HotReload` feature gate]({{% ref "support-preview-features" %}}).
24+
Since Dapr v1.18, declarative subscriptions are "hot reloaded" by default, whereby updates are picked up automatically without needing a restart. To opt out, disable the `HotReload` feature in the Dapr application configuration:
25+
26+
```yaml
27+
spec:
28+
features:
29+
- name: HotReload
30+
enabled: false
31+
```
2732
To prevent reprocessing or loss of unprocessed messages, in-flight messages between Dapr and your application are unaffected during hot reload events.
2833
{{% /alert %}}
2934

daprdocs/content/en/operations/components/component-updates.md

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -6,29 +6,25 @@ weight: 300
66
description: "Updating deployed components, configurations, resiliency, and HTTPEndpoints used by applications"
77
---
88

9-
When making an update to an existing deployed component used by an application, Dapr does not update the component automatically unless the [`HotReload`](#hot-reloading-preview-feature) feature gate is enabled.
10-
The Dapr sidecar needs to be restarted in order to pick up the latest version of the component.
11-
How this is done depends on the hosting environment.
9+
Since Dapr v1.18, updates to deployed resources (Components, Subscriptions, Configurations, Resiliency, and HTTPEndpoints) are picked up automatically by the sidecar via [hot reloading](#hot-reloading). Hot reloading is enabled by default; to opt out, disable the `HotReload` feature in the [Dapr application configuration]({{% ref "preview-features.md" %}}).
10+
When hot reloading is disabled, the Dapr sidecar needs to be restarted in order to pick up the latest version of the resource. How this is done depends on the hosting environment.
1211

1312
### Kubernetes
1413

15-
When running in Kubernetes, the process of updating a component involves two steps:
14+
When hot reloading is disabled and running in Kubernetes, the process of updating a component involves two steps:
1615

1716
1. Apply the new component YAML to the desired namespace
18-
1. Unless the [`HotReload` feature gate is enabled](#hot-reloading-preview-feature), perform a [rollout restart operation](https://kubernetes.io/docs/reference/kubectl/cheatsheet/#updating-resources) on your deployments to pick up the latest component
17+
1. Perform a [rollout restart operation](https://kubernetes.io/docs/reference/kubectl/cheatsheet/#updating-resources) on your deployments to pick up the latest component
1918

2019
### Self Hosted
2120

22-
Unless the [`HotReload` feature gate is enabled](#hot-reloading-preview-feature), the process of updating a component involves a single step of stopping and restarting the `daprd` process to pick up the latest component.
21+
When hot reloading is disabled, the process of updating a component involves a single step of stopping and restarting the `daprd` process to pick up the latest component.
2322

2423
> **Note:** On POSIX-compatible systems (Linux, macOS), you can also send a `SIGHUP` signal to the `daprd` process to reload the runtime in-process without fully restarting it. See [Reloading configuration with SIGHUP]({{% ref "configuration-overview.md#reloading-configuration-with-sighup" %}}) for more information.
2524
26-
## Hot Reloading (Preview Feature)
25+
## Hot Reloading
2726

28-
> This feature is currently in [preview]({{% ref "preview-features.md" %}}).
29-
> Hot reloading is enabled via the [`HotReload` feature gate]({{% ref "support-preview-features.md" %}}).
30-
31-
Dapr can be made to "hot reload" resources whereby updates are picked up automatically without the need to manually restart the Dapr sidecar process or Kubernetes pod.
27+
Dapr "hot reloads" resources whereby updates are picked up automatically without the need to manually restart the Dapr sidecar process or Kubernetes pod.
3228

3329
### Components and Subscriptions
3430

@@ -53,7 +49,7 @@ Any create, update, or deletion of these component types is ignored by the sidec
5349

5450
### Configurations, Resiliency, and HTTPEndpoints
5551

56-
With the `HotReload` feature gate enabled, the Dapr sidecar also supports reloading [Configuration]({{% ref "configuration-overview.md" %}}), [Resiliency]({{% ref "resiliency-overview.md" %}}), and [HTTPEndpoint]({{% ref "service-invocation-overview.md" %}}) resources.
52+
The Dapr sidecar also reloads [Configuration]({{% ref "configuration-overview.md" %}}), [Resiliency]({{% ref "resiliency-overview.md" %}}), and [HTTPEndpoint]({{% ref "service-invocation-overview.md" %}}) resources.
5753

5854
Unlike Components and Subscriptions which are reloaded in-place, changes to these resource types trigger an automatic **graceful restart** of the Dapr sidecar process (via SIGHUP). This ensures that the new configuration is applied cleanly. Unchanged resources are detected and silently ignored, so a restart only occurs when an actual change is detected.
5955

daprdocs/content/en/operations/configuration/configuration-overview.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -447,7 +447,7 @@ spec:
447447

448448
## Hot Reloading
449449

450-
When the [`HotReload` feature gate]({{% ref "support-preview-features" %}}) is enabled, changes to Configuration resources are automatically detected and trigger a graceful restart of the Dapr sidecar (via SIGHUP) to apply the new configuration. Unchanged Configuration resources are silently ignored. SIGHUP is not supported on Windows.
450+
Since Dapr v1.18, changes to Configuration resources are automatically detected and trigger a graceful restart of the Dapr sidecar (via SIGHUP) to apply the new configuration. Unchanged Configuration resources are silently ignored. SIGHUP is not supported on Windows. To opt out, disable the `HotReload` feature in the [Dapr application configuration]({{% ref "preview-features.md" %}}).
451451

452452
See [Updating resources]({{% ref "component-updates.md" %}}) for more information.
453453

daprdocs/content/en/operations/resiliency/resiliency-overview.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -175,7 +175,7 @@ spec:
175175
176176
## Hot Reloading
177177
178-
When the [`HotReload` feature gate]({{% ref "support-preview-features" %}}) is enabled, changes to Resiliency resources are automatically detected and trigger a graceful restart of the Dapr sidecar (via SIGHUP) to apply the updated resiliency policies. Unchanged Resiliency resources are silently ignored. SIGHUP is not supported on Windows.
178+
Since Dapr v1.18, changes to Resiliency resources are automatically detected and trigger a graceful restart of the Dapr sidecar (via SIGHUP) to apply the updated resiliency policies. Unchanged Resiliency resources are silently ignored. SIGHUP is not supported on Windows. To opt out, disable the `HotReload` feature in the [Dapr application configuration]({{% ref "preview-features.md" %}}).
179179

180180
See [Updating resources]({{% ref "component-updates.md" %}}) for more information.
181181

daprdocs/content/en/operations/support/support-preview-features.md

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,5 @@ For CLI there is no explicit opt-in, just the version that this was first made a
1919
| **Multi-App Run for Kubernetes** | Configure multiple Dapr applications from a single configuration file and run from a single command on Kubernetes | `dapr run -k -f` | [Multi-App Run]({{% ref multi-app-dapr-run.md %}}) | v1.12 |
2020
| **Cryptography** | Encrypt or decrypt data without having to manage secrets keys | N/A | [Cryptography concept]({{% ref "components-concept#cryptography" %}})| v1.11 |
2121
| **Actor State TTL** | Allow actors to save records to state stores with Time To Live (TTL) set to automatically clean up old data. In its current implementation, actor state with TTL may not be reflected correctly by clients, read [Actor State Transactions]({{% ref actors_api.md %}}) for more information. | `ActorStateTTL` | [Actor State Transactions]({{% ref actors_api.md %}}) | v1.11 |
22-
| **Component Hot Reloading** | Allows for Dapr-loaded components to be "hot reloaded". A component spec is reloaded when it is created/updated/deleted in Kubernetes or on file when running in self-hosted mode. Ignores changes to actor state stores and workflow backends. | `HotReload`| [Hot Reloading]({{% ref components-concept.md %}}) | v1.13 |
23-
| **Subscription Hot Reloading** | Allows for declarative subscriptions to be "hot reloaded". A subscription is reloaded either when it is created/updated/deleted in Kubernetes, or on file in self-hosted mode. In-flight messages are unaffected when reloading. | `HotReload`| [Hot Reloading]({{% ref "subscription-methods.md#declarative-subscriptions" %}}) | v1.14 |
24-
| **Configuration, Resiliency, and HTTPEndpoint Hot Reloading** | Changes to Configuration, Resiliency, and HTTPEndpoint resources are automatically detected and trigger a graceful restart of the Dapr sidecar via SIGHUP. Not supported on Windows. | `HotReload`| [Hot Reloading]({{% ref "component-updates.md" %}}) | v1.18 |
2522
| **Workflows Clustered Deployment** | Enable Workflows to function when workflow clients communicate to multiple daprds of the same appID who are behind a loadbalancer. Only relevant when using [Dapr shared]({{% ref "kubernetes-dapr-shared" %}}) | `WorkflowsClusteredDeployment`| [Dapr Shared]({{% ref "kubernetes-dapr-shared" %}}) | v1.16 |
2623
| **Workflows Durable Activity Results** | If set, ensures that activity results are durably sent to the owning workflow in multi-application scenarios, even when the owning workflow application is unavailable. Unless running multiple Dapr versions, this feature gate should be enabled. Disabled by default for backwards compatibility. | `WorkflowsRemoteActivityReminder` | [Multi-application Workflows]({{% ref "workflow-multi-app.md#durable-activity-results" %}}) | v1.17 |

0 commit comments

Comments
 (0)