2. Reference
2.1. Configuration File
Example configuration:
[client]
hawkbit_server = 127.0.0.1:8080
ssl = false
ssl_verify = false
tenant_id = DEFAULT
target_name = test-target
auth_token = bhVahL1Il1shie2aj2poojeChee6ahShu
bundle_download_location = /tmp/bundle.raucb
[device]
key1 = valueA
key2 = valueB
[client] section
Configures how to connect to a hawkBit server, etc.
Mandatory options:
hawkbit_server=<host>[:<port>]
The IP or hostname of the hawkbit server to connect to (Punycode representation must be used for host names containing Unicode characters). The
port
can be provided optionally, separated by a colon.target_name=<name>
Unique
name
string to identify controller.auth_token=<token>
Controller-specific authentication token. This is set for each device individually. For details, refer to https://eclipse.dev/hawkbit/concepts/authentication/.
Note
Either
auth_token
orgateway_token
must be providedgateway_token=<token>
Gateway authentication token. This is a tenant-wide token and must explicitly be enabled in hakwBit first. It is actually meant to authenticate a gateway that itself manages/authenticates multiple targets, thus use with care. For details, refer to https://eclipse.dev/hawkbit/concepts/authentication/.
Note
Either
auth_token
orgateway_token
must be providedbundle_download_location=<path>
Full path to where the bundle should be downloaded to. E.g. set to
/tmp/_bundle.raucb
to let rauc-hawkbit-updater use this location within/tmp
.Note
Option can be ommited if
stream_bundle
is enabled.
Optional options:
tenant_id=<ID>
ID of the tenant to connect to. Defaults to
DEFAULT
.ssl=<boolean>
Whether to use SSL connections (
https
) or not (http
). Defaults totrue
.ssl_verify=<boolean>
Whether to enforce SSL verification or not. Defaults to
true
.connect_timeout=<seconds>
HTTP connection setup timeout [seconds]. Defaults to
20
seconds. Has no effect on bundle downloading when used withstream_bundle=true
.timeout=<seconds>
HTTP request timeout [seconds]. Defaults to
60
seconds.retry_wait=<seconds>
Time to wait before retrying in case an error occurred [seconds]. Defaults to
300
seconds.low_speed_time=<seconds>
Time to be below
low_speed_rate
to trigger the low speed abort. Defaults to60
. See https://curl.se/libcurl/c/CURLOPT_LOW_SPEED_TIME.html. Has no effect when used withstream_bundle=true
.low_speed_rate=<bytes per second>
Average transfer speed to be below during
low_speed_time
seconds to consider transfer as “too slow” and abort it. Defaults to100
. See https://curl.se/libcurl/c/CURLOPT_LOW_SPEED_LIMIT.html. Has no effect when used withstream_bundle=true
.resume_downloads=<boolean>
Whether to resume aborted downloads or not. Defaults to
false
. Has no effect when used withstream_bundle=true
.stream_bundle=<boolean>
Whether to install bundles via RAUC’s HTTP streaming installation support. Defaults to
false
. rauc-hawkbit-updater does not download the bundle in this case, but rather hands the hawkBit bundle URL and the authentication header to RAUC.Important
hawkBit’s default configuration limits the number of HTTP range requests to ~1000 per action and 200 per second. Depending on the bundle size and bandwidth available, streaming a bundle might exceed these limitations. Starting hawkBit with
--hawkbit.server.security.dos.filter.enabled=false
--hawkbit.server.security.dos.maxStatusEntriesPerAction=-1
disables these limitations.Note
hawkBit generates an “ActionStatus” for each range request, see this hawkBit issue.
post_update_reboot=<boolean>
Whether to reboot the system after a successful update. Defaults to
false
.Important
Note that this results in an immediate reboot without contacting the system manager and without terminating any processes or unmounting any file systems. This may result in data loss.
log_level=<level>
Log level to print, where
level
is a string ofdebug
info
message
critical
error
fatal
Defaults to
message
.
[device] section
This section allows to set a custom list of key-value pairs that will be used as config data target attribute for device registration. They can be used for target filtering.
Important
The [device] section is mandatory and at least one key-value pair must be configured.