You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Clarify generateResourceLimits.cpu default varies by deployment method
The docs previously stated CPU resource limits are enabled by default,
which is true for REST API/Bicep/ARM deployments but not for Azure CLI.
The CLI actively sets generateResourceLimits.cpu to Disabled to avoid
deployment failures on resource-constrained clusters.
This clarification addresses customer confusion reported in
ICM 51000000903558 where the documented default didn't match the
CLI deployment behavior.
Also updated the configuration section to cover both enabling and
disabling the setting, since CLI users who want resource limits need
to explicitly enable them.
Copy file name to clipboardExpand all lines: articles/iot-operations/manage-mqtt-broker/howto-configure-availability-scale.md
+22-4Lines changed: 22 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -248,7 +248,15 @@ In comparison, the *Tiny* memory profile has a frontend memory usage of 99 MiB a
248
248
249
249
## Cardinality and Kubernetes resource limits
250
250
251
-
To prevent resource starvation in the cluster, the broker is configured by default to [request Kubernetes CPU resource limits](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/). Scaling the number of replicas or workers proportionally increases the CPU resources required. A deployment error is emitted if there are insufficient CPU resources available in the cluster. This notification helps you avoid situations where the requested broker cardinality lacks enough resources to run optimally. It also helps to avoid potential CPU contention and pod evictions.
251
+
To prevent resource starvation in the cluster, the broker can be configured to [request Kubernetes CPU resource limits](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/) based on the cardinality settings. When enabled, scaling the number of replicas or workers proportionally increases the CPU resources required. A deployment error is emitted if there are insufficient CPU resources available in the cluster. This notification helps you avoid situations where the requested broker cardinality lacks enough resources to run optimally. It also helps to avoid potential CPU contention and pod evictions.
252
+
253
+
> [!IMPORTANT]
254
+
> The default value for `generateResourceLimits.cpu` depends on the deployment method:
255
+
>
256
+
> -**Azure CLI (`az iot ops create`)**: `Disabled` by default. The CLI actively sets this value to `Disabled` to avoid deployment failures on resource-constrained clusters, particularly single-node clusters where the CPU requests can exceed available resources.
257
+
> -**REST API, Bicep, and ARM templates**: `Enabled` by default, as defined in the [Broker API specification](/rest/api/iotoperations/broker/create-or-update). If you deploy using these methods without explicitly setting `generateResourceLimits.cpu`, CPU resource limits are applied automatically.
258
+
>
259
+
> If you enable CPU resource limits, make sure your cluster has enough CPU resources to satisfy the broker's requests based on your cardinality configuration. See the CPU requirements below.
252
260
253
261
The MQTT broker currently requests one (1.0) CPU unit per frontend worker and two (2.0) CPU units per backend worker. For more information, see [Kubernetes CPU resource units](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#meaning-of-cpu).
254
262
@@ -273,15 +281,25 @@ For example, the following cardinality would request the following CPU resources
273
281
}
274
282
```
275
283
276
-
To disable this setting, set the `generateResourceLimits.cpu` field to `Disabled` in the Broker resource.
284
+
To change this setting, set the `generateResourceLimits.cpu` field to`Enabled` or`Disabled` in the Broker resource.
277
285
278
286
# [Portal](#tab/portal)
279
287
280
-
Changing the `generateResourceLimits` field isn't supported in the Azure portal. To disable this setting, use the Azure CLI.
288
+
Changing the `generateResourceLimits` field isn't supported in the Azure portal. To change this setting, use the Azure CLI.
281
289
282
290
# [Azure CLI](#tab/azure-cli)
283
291
284
-
Prepare a Broker configuration file in JSON format, which includes the desired properties of the [Resource Manager `microsoft.iotoperations/instances/brokers` resource](/rest/api/iotoperations/broker/create-or-update), and set the `generateResourceLimits.cpu` field to `Disabled`. For example:
292
+
Prepare a Broker configuration file in JSON format, which includes the desired properties of the [Resource Manager `microsoft.iotoperations/instances/brokers` resource](/rest/api/iotoperations/broker/create-or-update), and set the `generateResourceLimits.cpu` field. For example, to enable CPU resource limits:
0 commit comments