Releases: peridio/peridiod
v3.1.3
- Bug fixes
- [Core] Fixed persisted state can become corrupted when performing
get_and_update
- [Core] Fixed persisted state can become corrupted when performing
What's Changed
- Rel v3.1.3 by @mobileoverlord in #59
Full Changelog: v3.1.2...v3.1.3
v3.1.2
- Bug fixes
- [Ubuntu | Red Hat] Updated peridiod deb / rpm packages to include additional dependency recommends for remote access tunnels.
- [Ubuntu | Red Hat] When installing Peridiod for the first time from deb / rpm package default peridio_vsn_current to 0.1.0. If you would like installs provisioned with this version to adopt into the release graph, configure your first build in the graph with a version requirement of
~> 0.1
or similar
What's Changed
- Rel v3.1.2 by @mobileoverlord in #58
Full Changelog: v3.1.1...v3.1.2
v3.1.1
- Bug fixes
- [Network Monitor] Updated internet host list to monitor peridio infrastructure over 443 to closely represent "healthy" conditions.
Previously, internet connectivity health was determined from checks on port 50 to common internet dns server addresses. This would yield false results.
- [Network Monitor] Updated internet host list to monitor peridio infrastructure over 443 to closely represent "healthy" conditions.
What's Changed
- Use peridio remote access tunnel server for internet monitor by @mobileoverlord in #57
Full Changelog: v3.1.0...v3.1.1
v3.1.0
-
Enhancements
- [Network Monitor] Added network monitoring options for devices with multi-wan connected network interfaces. Linux will route requests to the internet using the route with the lowest metric. If the default route with the lowest metric is unable to access the internet but other interfaces can, we should try to use those other interfaces. This feature enables peridiod to monitor a specified list of priority network interfaces for connectivity. It will bind network communications to a prioritized route and fail over if it no longer can connect to the internet.
Add the following to your peridio config to enable:
"network_monitor": { ["eth0", "eth1", {"ppp0": {"disconnect_on_higher_priority": true}}] }
-
The list is in order of highest priority to lowest priority.
-
It can contain
string
network device names, or, an object with a single key of the interface name and options{"ppp0": {}}
-
Specifying the option
"disconnect_on_higher_priority": true
will forcefully disconnect from that interface when a higher priority interface becomes * available. This is helpful for preventing long lived socket connections from persisting on metered data links like cellular. -
In the example above, if we are bound to
eth1
andeth0
regains connectivity to the internet, we will not disconnect from eth1 -
[Change Plans] The underlying binary installer engine has been rewritten to prepare support for complex bundle installation cases such as
- Inter-bundle binary dependencies
- Custom lifecycle script execution
- Better handling of sequential and parallel installers
- Multi-stage updates that require multiple update reboots
-
Bug fixes
- Fixes issue installing multiple binaries in a bundle in parallel using installers that only support sequential execution
- Affected installers:
swupdate
,dpkg
,apt
,opkg
- Affected installers:
- Fixes issue where installers that can only install from path would not cache the binary before running the installer
- Affected installers:
swupdate
,dpkg
,apt
,opkg
- Affected installers:
- Fixes issue installing multiple binaries in a bundle in parallel using installers that only support sequential execution
What's Changed
- Add network_monitor feature by @mobileoverlord in #55
- Introduce change plans by @mobileoverlord in #56
Full Changelog: v3.0.1...v3.1.0
v3.0.1
- Bug fixes
- [Bundles] Fix issue with bundle update resolution where all binaries may be installed instead of only binaries that are not installed.
Full Changelog: v3.0.0...v3.0.1
v3.0.0
Added Support for Bundle Distributions
Backwards compatible with firmware deployments
Added peridiod
config keys introduced:
update_poll_enabled
: true | falseupdate_poll_interval
: the interval in ms to automatically check for updatesupdate_resume_max_boot_count
: Max restart / reboots before failing an resumed bundle install. Defaults to10
cache_dir
: a writable path whereperidiod
can store release metadatatargets
: A list of string target names for peridiod to install as part of a release updatetrusted_signing_keys
: A list of base64 encoded ed25519 public signing key stringsreboot_delay
: Number of milliseconds to wait before rebooting the system Defaults to 5000.reboot_cmd
: The system reboot command. Defaultsreboot
reboot_opts
: Extra args to be passed to the reboot command. Defaults[]
reboot_sync_cmd
: The system sync command to force filesystem writes. Defaultssync
reboot_sync_opts
: Extra args to be passed to the sync command. Defaults[]
cache_log_enabled
: Enable writing logs to the cache_dir. Defaulttrue
cache_log_max_bytes
: Max bytes for log file storage. Default10485760
(10mb)cache_log_max_files
: Max number of rotating log files to store. Default5
cache_log_compress
: Compress logs on rotation. Defaulttrue
cache_log_level
: Defaultdebug
Optionsdebug
|info
|warning
|error
More information can be found in the Peridiod Configuration docs
U-Boot Environment additions
peridiod releases will track and expose release metadata in the uboot environment under the following new keys.
If you are using UBoot environment variable whitelisting features in your bootloader it is important that these values be added.
peridio_via_current
: the PRN of the current installed release or bundle overrideperidio_via_previous
: the PRN of the previous installed release or bundle overrideperidio_via_progress
: the PRN of the release or bundle override in progressperidio_vsn_current
: the semantic version of the current installed releaseperidio_vsn_previous
: the semantic version of the previous installed releaseperidio_vsn_progress
: the semantic version of the release in progressperidio_bin_current
: an concatenated key / value paired encoded string of<binary_id><custom_metadata_sha256_hash>
internally used to diff installed binaries from bundle to bundleperidio_bin_previous
: an concatenated key / value paired encoded string of<binary_id><custom_metadata_sha256_hash>
internally used to diff installed binaries from bundle to bundleperidio_bin_progress
: an concatenated key / value paired encoded string of<binary_id><custom_metadata_sha256_hash>
internally used to diff installed binaries from bundle to bundleperidio_bun_current
: the PRN of the current installed bundleperidio_bun_previous
: the PRN of the previous installed bundleperidio_bu 10000 n_progress
: the PRN of the bundle install in progressperidio_bc_progress
: Boot / restart counter for peridiod for in progress bundle installation resumptionperidio_bc_current
: Reserved for future use
More information can be found in the Peridiod Configuration docs
Installing Bundles and Binaries
Releases allow greater control and flexibility to managing devices in the field. You can package and bundle many binaries with a release enabling workflows for use in embedded products, empowering app stores, and managing connected peripheral device firmware. It offers advanced deployment options for scheduled and phased rollouts.
To use releases, binaries must be configured to use an installer. An Installer is a module that can handle the last mile of deploying your binary onto your device. The following installer modules are currently supported:
fwup
: Binary in the (fwup)[https://github.com/fwup-home/fwup] format.file
: Writes individual files to a writeable location on the system.deb
: (Debian package manager)[https://www.debian.org/doc/manuals/debian-faq/pkg-basics.en.html] install format.rpm
: (RPM Package manager)[https://rpm.org/] install format.opkg
: (OPkg Package manager)[https://openwrt.org/docs/guide-user/additional-software/opkg] installer format.swupdate
: (SWUpdate)[https://sbabic.github.io/swupdate/swupdate.html] package format.
See the Peridiod Packaging Updates integration docs for more information.
Full Changelog: v2.5.4...v3.0.0
3.0.0-rc.7
Important Updates
The following updates to keys in your peridio.json
file are required prior to migrating to the upcoming v3.0.0 official release
release_poll_interval
has been renamed toupdate_poll_interval
release_poll_enabled
has been renamed toupdate_poll_enabled
If your system is using uboot environment variable whitelisting you will need to allow the following variables to use cohort based workflows:
peridio_via_current
,peridio_via_previous
,peridio_via_progress
peridio_bun_current
,peridio_bun_previous
,peridio_bun_progress
peridio_bin_current
,peridio_bin_previous
,peridio_bin_progress
- Enhancements
- Full support for installing via bundle overrides and releases in cohort workflows
- Improved log messaging
- Bug fixes
- Fixed issue with Cache downloader appending to existing cache file instead of starting over on restart. This was causing the cache download file to fail signature checks and grow the cache to unreasonable size.
- Allow custom_metadata installer_opts key to be optional. Caused Installer process to crash if omitted.
3.0.0-rc.6
- Bug fixes
- Fix issues with
swupdate
,deb
,apt
, andopkg
installers writing intermediate files outside peridiod cache dir. - Improved error handling for responses from release server check for update when a device is not in a cohort.
- Improved error handling for erroneous responses from the release server.
- Fixed issue with release server crashing peridiod on start if
release_poll_enabled
is enabled and the server responds abnormally. - Improvements to installers for verifying system executable dependencies are present.
- Trim plain text from the preamble of certificates in ubootenv and env. This was causing
SERVER ALERT: Fatal - Handshake Failure
. - Remote Access Tunnels: Fix issue where CIDR and Port negotiation may fail if a tunnel is in the process of closing when the system is queried for used resources.
- Fix issues with
v2.6.2
- Bug fixes
- Skip Remote Access Tunnel sync if disabled
- Force files writes to be synced to disk as they are written to the cache
- Handle corrupt cached metadata in wireguard config parsing
v2.6.0
- Enhancements
-
Remote Access Tunnels
- Tunnels that are unknown will be closed and cleaned up
- Tunnels that are requested while the device was offline will configure and open
- Tunnels that are known will be resumed
- Tunnels that are expected to be open but are missing configurations / interfaces will be closed
This also adds support for configuring a persistent
data_dir
where you want to write tunnel interface configurations in the peridio config. By specifying a persistent location for configurations, tunnels will resume even after device reboots."remote_access_tunnels": { "enabled": true, "data_dir": "/etc/peridiod" },
-