Skip to content

Commit 35d40a2

Browse files
Merge pull request #281106 from PatAltimore/patricka-broker-advanced-release-aio-july-updates
Add broker advanced settings
2 parents 50bb33b + 1950ea0 commit 35d40a2

File tree

1 file changed

+77
-4
lines changed

1 file changed

+77
-4
lines changed

articles/iot-operations/manage-mqtt-broker/howto-configure-availability-scale.md

Lines changed: 77 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -133,15 +133,88 @@ Then, run the following command to deploy the broker:
133133
kubectl apply -f <path-to-yaml-file>
134134
```
135135

136-
## Configure MQTT broker diagnostic settings
136+
## Configure MQTT broker advanced settings
137+
138+
The following table lists the properties of the broker advanced settings that include client configurations, encryption of internal traffic, certificate rotation, and node tolerations.
139+
140+
| Name | Type | Description |
141+
|-------------------------------------|--------------------------|-----------------------------------------------------------------------------|
142+
| clients | ClientConfig | Configurations related to all clients |
143+
| clients.maxKeepAliveSeconds | `integer` | Upper bound of a client's keep alive, in seconds |
144+
| clients.maxMessageExpirySeconds | `integer` | Upper bound of message expiry interval, in seconds |
145+
| clients.maxReceiveMaximum | `integer` | Upper bound of receive maximum that a client can request in the CONNECT packet |
146+
| clients.maxSessionExpirySeconds | `integer` | Upper bound of session expiry interval, in seconds |
147+
| clients.subscriberQueueLimit | `SubscriberQueueLimit` | The limit on the number of queued messages for a subscriber |
148+
| clients.subscriberQueueLimit.length | `integer` | The maximum length of the queue before messages are dropped |
149+
| clients.subscriberQueueLimit.strategy | `SubscriberMessageDropStrategy` | The strategy for dropping messages from the queue |
150+
| clients.subscriberQueueLimit.strategy.DropOldest | `string` | The oldest message is dropped |
151+
| clients.subscriberQueueLimit.strategy.None | `string` | Messages are never dropped |
152+
| encryptInternalTraffic | Encrypt | The setting to enable or disable encryption of internal traffic |
153+
| encryptInternalTraffic.Disabled | `string` | Disable internal traffic encryption |
154+
| encryptInternalTraffic.Enabled | `string` | Enable internal traffic encryption |
155+
| internalCerts | CertManagerCertOptions | Certificate rotation and private key configuration |
156+
| internalCerts.duration | `string` | Lifetime of certificate. Must be specified using a *Go* *time.Duration* format (h, m, s). For example, 240h for 240 hours and 45m for 45 minutes. |
157+
| internalCerts.privateKey | `CertManagerPrivateKey` | Configuration of certificate private key |
158+
| internalCerts.renewBefore | `string` | Duration before renewing a certificate. Must be specified using a *Go* *time.Duration* format (h, m, s). For example, 240h for 240 hours and 45m for 45 minutes. |
159+
| internalCerts.privateKey.algorithm | PrivateKeyAlgorithm | Algorithm for private key |
160+
| internalCerts.privateKey.rotationPolicy | PrivateKeyRotationPolicy | Cert-manager private key rotation policy |
161+
| internalCerts.privateKey.algorithm.Ec256 | `string`| Algorithm - EC256 |
162+
| internalCerts.privateKey.algorithm.Ec384 | `string`| Algorithm - EC384 |
163+
| internalCerts.privateKey.algorithm.Ec521 | `string`| Algorithm - EC521 |
164+
| internalCerts.privateKey.algorithm.Ed25519 | `string`| Algorithm - Ed25519|
165+
| internalCerts.privateKey.algorithm.Rsa2048 | `string`| Algorithm - RSA2048|
166+
| internalCerts.privateKey.algorithm.Rsa4096 | `string`| Algorithm - RSA4096|
167+
| internalCerts.privateKey.algorithm.Rsa8192 | `string`| Algorithm - RSA8192|
168+
| internalCerts.privateKey.rotationPolicy.Always | `string`| Always rotate key |
169+
| internalCerts.privateKey.rotationPolicy.Never | `string`| Never rotate key |
170+
| tolerations | NodeTolerations | The details of tolerations that are applied to all *Broker* pods |
171+
| tolerations.effect | `string` | Toleration effect |
172+
| tolerations.key | `string` | Toleration key |
173+
| tolerations.operator | `TolerationOperator` | Toleration operator. For example, "Exists" or "Equal". |
174+
| tolerations.value | `string` | Toleration value |
175+
| tolerations.operator.Equal | `string` | Equal operator |
176+
| tolerations.operator.Exists | `string` | Exists operator |
177+
178+
Here's an example of a *Broker* with advanced settings:
179+
180+
```yml
181+
apiVersion: mq.iotoperations.azure.com/v1beta1
182+
kind: Broker
183+
metadata:
184+
name: broker
185+
namespace: azure-iot-operations
186+
spec:
187+
advanced:
188+
clients:
189+
maxSessionExpirySeconds: 282277
190+
maxMessageExpirySeconds: 1622
191+
subscriberQueueLimit:
192+
length: 1000
193+
strategy: DropOldest
194+
maxReceiveMaximum: 15000
195+
maxKeepAliveSeconds: 300
196+
encryptInternalTraffic: Enabled
197+
internalCerts:
198+
duration: 240h
199+
renewBefore: 45m
200+
privateKey:
201+
algorithm: Rsa2048
202+
rotationPolicy: Always
203+
tolerations:
204+
effect: string
205+
key: string
206+
operator: Equal
207+
value: string
208+
```
137209
138-
MQTT broker includes diagnostics that provides metrics for MQTT broker components. Operators can use these metrics to monitor the health of the system. A Prometheus endpoint is provided for metrics from all MQTT broker components including self-test metrics.
210+
## Configure MQTT broker diagnostic settings
139211
140212
Diagnostic settings allow you to enable metrics and tracing for MQTT broker.
141213
142214
- Metrics provide information about the resource utilization and throughput of MQTT broker.
143215
- Tracing provides detailed information about the requests and responses handled by MQTT broker.
144-
- Adjust the log level of MQTT broker to control the amount and detail of information that is logged. The log level can be set for different components of MQTT broker. The default log level is `info`.
216+
217+
To override default diagnostic settings for MQTT broker, update the `spec.diagnostics` section in the *Broker* resource. Adjust the log level to control the amount and detail of information that is logged. The log level can be set for different components of MQTT broker. The default log level is `info`.
145218

146219
You can configure diagnostics using the *Broker* custom resource definition (CRD). The following table shows the properties of the broker diagnostic settings and all default values.
147220

@@ -167,7 +240,7 @@ You can configure diagnostics using the *Broker* custom resource definition (CRD
167240
| traces.selfTracing | SelfTracing | | The self tracing properties |
168241
| traces.spanChannelCapacity | integer | 1000 | The span channel capacity |
169242

170-
Here's an example of a *Broker* custom resource with diagnostics settings enabled:
243+
Here's an example of a *Broker* custom resource with metrics and tracing enabled and self-check disabled:
171244

172245
```yaml
173246
apiVersion: mq.iotoperations.azure.com/v1beta1

0 commit comments

Comments
 (0)