Skip to content

Commit

Permalink
Prepare update manager config page (eclipse-kanto#269)
Browse files Browse the repository at this point in the history
[eclipse-kanto#242]Prepare documentation page for the Update Manager configuration

---------
Signed-off-by: Dimitar Dimitrov <[email protected]>
Co-authored-by: Filip Fidanov <[email protected]>
Co-authored-by: Stoyan Zoubev <[email protected]>
  • Loading branch information
dimitar-dimitrow authored Sep 1, 2023
1 parent e4d43ea commit 4b2842d
Showing 1 changed file with 106 additions and 0 deletions.
106 changes: 106 additions & 0 deletions web/site/content/docs/references/update-manager-config.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
---
title: "Update manager configuration"
type: docs
description: >
Customize the update manager.
weight: 6
---

### Properties

To control all aspects of the update manager.

| Property | Type | Default | Description |
| - | - | - | - |
| **General** | | | |
| domain | string | device | The domain of the update manager, used as MQTT topic prefix |
| domains | string | containers| A comma-separated list of domains handled by the update manager. This configuration option is available only as a flag, but not inside the JSON config file. In JSON config file, the keys inside the Domain agents structure serve as domain names. |
| phaseTimeout | string | 10m | Timeout as duration string for completing an Update Orchestration phase |
| rebootAfter | string | 30s | Time period as duration string to wait before a reboot process is initiated after successful update operation |
| rebootEnabled | bool | true | Enable the reboot process after successful update operation |
| reportFeedbackInterval | string | 1m | Time interval as duration string for reporting intermediate desired state feedback messages during an active update operation |
| currentStateDelay | string | 30s | Time interval as duration string for reporting current state messages |
| thingsEnabled | bool | true | Specify whether the Update Manager will behave as a thing's feature |
| **Domain agents** | | | Holds a map structure (_agents_) with update agent configurations where each map key is treated as domain name |
| readTimeout | string | 1m | Timeout as duration string for reading the current state for the domain |
| rebootRequired | bool | false | Require a reboot for the domain after successful update |
| **Local connectivity** | | | |
| broker | string | tcp://localhost:1883 | Address of the MQTT server/broker that the container manager will connect for the local communication, the format is: `scheme://host:port` |
| keepAlive | string | 20s | Keep alive duration for the MQTT requests as duration string |
| disconnectTimeout | string | 250ms | Disconnect timeout for the MQTT server/broker as duration string |
| username | string | | Username that is a part of the credentials |
| password | string | | Password that is a part of the credentials |
| acknowledgeTimeout | string | 15s | Acknowledge timeout for the MQTT requests as duration string |
| connectTimeout | string | 30s | Connect timeout for the MQTT server/broker as duration string |
| subscribeTimeout | string | 15s | Subscribe timeout for the MQTT requests as duration string |
| unsubscribeTimeout | string | 5s | Unsubscribe timeout for the MQTT requests as duration string |
| **Logging** | | | |
| logFile | string | | Path to the file where the update manager’s log messages are written |
| logLevel | string | INFO | All log messages at this or a higher level will be logged, the log levels in descending order are: ERROR, WARN, INFO, DEBUG and TRACE |
| logFileCount | int | 5 | Log file maximum rotations count |
| logFileMaxAge | int | 28 | Log file rotations maximum age in days, use 0 to not remove old log files |
| logFileSize | int | 2 | Log file size in MB before it gets rotated |

### Example

An example for configuring the update manager with two domains - `containers` and `custom-domain`, report feedback interval at 30 seconds, and log, written to custom log file `update-manager.log` with
log level `DEBUG`.

```json
{
"log": {
"logFile": "update-manager.log",
"logLevel": "DEBUG"
},
"agents": {
"containers": {
"readTimeout": "30s"
},
"custom-domain": {
"rebootRequired": true
}
},
"reportFeedbackInterval": "30s"
}
```

### Template

The configuration can be further adjusted according to the use case.
The following template illustrates all possible properties with their default values.

```json
{
"domain": "device",
"agents": {
"containers": {
"rebootRequired": false,
"readTimeout": "1m"
}
},
"log": {
"logFile": "",
"logLevel": "INFO",
"logFileCount": 5,
"logFileMaxAge": 28,
"logFileSize": 2
},
"connection": {
"broker": "tcp://localhost:1883",
"keepAlive": "20s",
"acknowledgeTimeout": "15s",
"username": "",
"password": "",
"connectTimeout": "30a",
"disconnectTimeout": "250ms",
"subscribeTimeout": "15s",
"unsubscribeTimeout": "5s"
},
"phaseTimeout": "10m",
"rebootAfter": "30s",
"rebootEnabled": true,
"reportFeedbackInterval": "1m",
"currentStateDelay": "30s",
"thingsEnabled": true
}
```

0 comments on commit 4b2842d

Please sign in to comment.