Special considerations for building images
Review the following special considerations when building images for the Red Hat Edge Manager, including build-time compared to runtime configuration, the /usr directory, drop-in directories, and scripts.
Build-time configuration over dynamic runtime configuration
Add configuration to the operating system image at build time. Adding configuration at build time ensures that the configurations are tested, distributed, and updated together. In cases when build-time configuration is not feasible or desirable, you can dynamically configure devices at runtime instead with the Red Hat Edge Manager.
Dynamic runtime configuration is preferable in the following cases:
- You have a configuration that is deployment or site-specific, such as a hostname or a site-specific network credential.
- You have secrets that are not secure to distribute with the image.
- You have application workloads that need to be added, updated, or deleted without reboot or they are on a faster cadence than the operating system.
Configuration in /usr directory
Place configuration files in the /usr directory if the configuration is static and the application or service supports that configuration. By placing the configuration in the /usr directory, the configuration remains read-only and fully defined by the image.
It is not feasible or desirable to place the configuration in the /usr directory in the following cases:
- The configuration is deployment or site-specific.
- The application or service only supports reading configuration from the
/etcdirectory. - The configuration might need to be changed at runtime.
Drop-in directories
Use drop-in directories to add, replace, or remove configuration files that the service aggregates. Do not directly edit configuration files, because direct edits can cause deviation from the target configuration.
You can identify drop-in directories by the .d/ at the end of the directory name. For example, /etc/containers/certs.d, /etc/cron.d, and /etc/NetworkManager/conf.d.
Operating system images with scripts
Avoid executing scripts or commands that change the file system. The bootc tool or the Red Hat Edge Manager can overwrite the changed files, which might cause a deviation or failed integrity checks.
Instead, run such scripts or commands during image building, so changes are part of the image. Alternatively, use the configuration management mechanisms of the Red Hat Edge Manager.
OS support and compatibility
The Red Hat Edge Manager service provides full cross-version flexibility. The OS versions of your backend (API and worker) and agents (edge devices) operate independently.
- Forward compatible: You can run EL10 agents on an EL9 backend.
- Backward compatible: You can run EL9 agents on an EL10 backend.
Any combination of EL9 and EL10 is a supported configuration.
See Generic guidance for building images in the Additional resources section.
For more information about configuring devices at runtime, see Operating system configuration for edge devices in the Additional resources section.
For Red Hat Edge Manager server, agent, CLI, and Ansible collection version rules (including semantic versioning and lifecycle tables), see Version compatibility matrix in the Additional resources section.