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
**Note** Container requirements are available when using balenaCLI >= X.X.X (!TODO)
119
+
120
+
An additional set of labels allows to ensure the compatibility of a device when it comes to run a service. For example, before updating to a new release, it may be desirable to ensure that the device is running a specific version of [Supervisor][supervisor] or has a specific version of the [NVIDIA Tegra Linux Driver Package][l4t] (L4T).
121
+
122
+
The following set of requirement labels are enforced via the supervisor. Each service may define one or more requirements and if any of them is not met for any non-[optional](#optional-containers) service, then the release will be **rejected** and no changes will be performed for the new release.
| io.{{ $names.company.short }}.features.requires.sw.supervisor | Device Supervisor version (specified as a [version range][version-range]) | 10.16.17 |
127
+
| io.{{ $names.company.short }}.features.requires.sw.l4t | [L4T][l4t] version (specified as a [version range][version-range]) | 10.16.17 |
128
+
| io.{{ $names.company.short }}.features.requires.hw.device-type | The [device type][device-type] as given by `BALENA_MACHINE_NAME` | 11.1.0 |
129
+
| io.{{ $names.company.short }}.features.requires.arch.sw | The [architecture][arch] as given by `BALENA_ARCH` | 14.10.11 |
130
+
131
+
For example, the following composition defines requirements on the supervisor and l4t version on the first service, and on the device type and architecture on the second service.
By default, when a container requirement is not met, none of the services are deployed to the device. However, in a multi-container release, it is possible to ignore those services that do not meet requirements with the other services being deployed as normal. To do so, we make use of the `io.balena.features.optional: 1` label to indicate which services should be considered optional.
151
+
152
+
In the `docker-compose.yml` file, add the `io.balena.features.optional: 1` to the labels list for each service you wish to mark as optional. In the following example, even if the `first-service` requirements fail, the `second-service` service will still be deployed.
**Note** When updating between releases, if the new version of and optional service has unmet requirements, the old version of the service will still be killed.
0 commit comments