Releases: aleph-im/aleph-vm
0.2.6 NFT Networking
0.2.6 NFT Networking
We are thrilled to announce the release of Aleph Compute Resource Nodes version 0.2.6! This update brings numerous improvements, bug fixes, and features that enhance the overall reliability and functionality of the project.
NFT in this context stands for nftables, not fancy tokens 😉.
Key highlights of this release include:
- Support for Ubuntu 22.04 as a host system
- Transition from iptables to nft, as iptables is now deprecated
- The diagnostic checks on
/status/check/fastapi
now include new checks for DNS and IPv4 connectivity. - Enhanced network compliance by removing hardcoded IP ranges
- Improved documentation and additional docstrings for methods
- Various fixes to ensure error handling and network configurations are optimal
- Improved CI with updated GitHub Actions version and job names
The new diagnostic checks will help node operators debugging configuration issues when setting up new nodes.
We would like to thank all the contributors for their valuable input in making this release possible. This version paves the way for more efficient and robust aleph.im Compute Resource Nodes and for new features in progress.
What's Changed
- Fix: Remove hardcoded 172.0.0.0/8 range from use to comply with RFC1918 by @tomribbens in #247
- Refactor: Move from iptables to nft as iptables is deprecated by @tomribbens in #250
- doc: Add docstrings for /raise & /crash methods by @BjrInt in #251
- Fix: Curl did not error when test failed. by @hoh in #254
- Fix: Network route should not contain IP mask by @hoh in #260
- Add requirements to support Docker in runtime by @hoh in #261
- Fix: Some types were not coherent. by @hoh in #262
- CI: Build packages and test droplet with Ubuntu 22.04 by @hoh in #268
- Fix: Supervisor started without /dev/kvm by @hoh in #270
- Fix: CI Ubuntu droplet fails due to apt already running. by @hoh in #272
- Fix: Network configuration was little documented by @hoh in #273
- Fix: dict.get does not take an argument named by @aliel in #277
- Fix: GitHub actions failed on Ubuntu due to Grub by @hoh in #280
- Fix: GitHub actions/checkout@v2 was deprecated by @hoh in #281
- Fix: VM connector does not start when run locally by @odesenfans in #287
- Fix: add nftables package to VM supervisor Dockerfile by @odesenfans in #288
- Fix: Firecracker version in README is outdated by @odesenfans in #291
- Doc: Info about filesystem paths was missing by @hoh in #296
- Fix: MongoDB '_id' cannot be fetched from 0.5.0 by @hoh in #297
- Fix: link to latest version in install guides by @odesenfans in #298
- Fix: get_event_loop() was called without a running event loop by @hoh in #282
- Exclude IPv6 DNS servers when configuring VMs by @odesenfans in #300
- Chore: Update GitHub Actions version by @hoh in #301
- Fix: CI failed due to apt lock being held by @hoh in #303
- Cleanup: Format with
black
andisort
by @hoh in #302 - Internal: DB migration system by @hoh in #304
- Fixed the virtual machine hostname that causes the virtual machine to… by @aliel in #283
- Fix: support running migrations on existing CRNs by @odesenfans in #306
- Better status for networking checks by @hoh in #299
- Fix: Runtime and new example were not tested in CI by @hoh in #307
- Fix: Job names were inprecise by @hoh in #311
Full Changelog: 0.2.5...0.2.6
New Contributors
- @tomribbens made their first contribution in #247
- @BjrInt made their first contribution in #251
How to upgrade
On Debian 11 (Bullseye):
rm -f /opt/aleph-vm.debian-11.deb
wget -P /opt https://github.com/aleph-im/aleph-vm/releases/download/0.2.6/aleph-vm.debian-11.deb
apt install /opt/aleph-vm.debian-11.deb
On Ubuntu 20.04 (Focal Fossa):
rm -f /opt/aleph-vm.ubuntu-20.04.deb
sudo wget -P /opt https://github.com/aleph-im/aleph-vm/releases/download/0.2.6/aleph-vm.ubuntu-20.04.deb
sudo apt install /opt/aleph-vm.ubuntu-20.04.deb
On Ubuntu 22.04 (Jammy Jellyfish):
rm -f /opt/aleph-vm.ubuntu-22.04.deb
sudo wget -P /opt https://github.com/aleph-im/aleph-vm/releases/download/0.2.6/aleph-vm.ubuntu-22.04.deb
sudo apt install /opt/aleph-vm.ubuntu-22.04.deb
0.2.5 Support persistent VMs
This release includes many stability and bug fixes, and starts the support for running persistent virtual machines 🎉.
What's Changed
- CI: Building example volume using Docker failed by @hoh in #217
- Fix: Examples doc typos by @RezaRahemtola in #218
- Fix: Network was depending on system logs print by @hoh in #216
- Update README.md by @mrhouzlane in #219
- Fix: Watching for updates could be started multiple times by @hoh in #215
- Fix: Dockerfile relied on old version of Firecracker by @hoh in #228
- Fix: Minor inconsistencies and improve logging by @hoh in #227
- Cleanup: Remove code duplication using
create_vm_execution
by @hoh in #225 - Internal: FilePath type can be replaced with pathlib.Path by @hoh in #223
- Fix: Internal PubSub
msubscribe
failed by @hoh in #230 - Feature: System resources were not exposed by @hoh in #224
- Fix: Typo prevented stopping service on upgrade by @hoh in #233
- Fix: Exceptions in coroutines were not logged by @hoh in #229
- Cleanup: Code cleanup by @hoh in #240
- Feature: VMs could not be persisted by @hoh in #241
- Fix: Annotation was not supported by Python 3.8 by @hoh in #244
New Contributors
- @RezaRahemtola made their first contribution in #218
- @mrhouzlane made their first contribution in #219
Full Changelog: 0.2.4...0.2.5
How to upgrade
On Debian:
rm -f /opt/aleph-vm.debian-11.deb
wget -P /opt https://github.com/aleph-im/aleph-vm/releases/download/0.2.5/aleph-vm.debian-11.deb
apt install /opt/aleph-vm.debian-11.deb
On Ubuntu:
rm -f /opt/aleph-vm.ubuntu-20.04.deb
sudo wget -P /opt https://github.com/aleph-im/aleph-vm/releases/download/0.2.5/aleph-vm.ubuntu-20.04.deb
sudo apt install /opt/aleph-vm.ubuntu-20.04.deb
0.2.4 Bugfix release
What's Changed
Full Changelog: 0.2.3...0.2.4
How to upgrade
On Debian:
rm -f /opt/aleph-vm.debian-11.deb
wget -P /opt https://github.com/aleph-im/aleph-vm/releases/download/0.2.4/aleph-vm.debian-11.deb
apt install /opt/aleph-vm.debian-11.deb
On Ubuntu:
rm -f /opt/aleph-vm.ubuntu-20.04.deb
sudo wget -P /opt https://github.com/aleph-im/aleph-vm/releases/download/0.2.4/aleph-vm.ubuntu-20.04.deb
sudo apt install /opt/aleph-vm.ubuntu-20.04.deb
0.2.3 Close file descriptors
This release fixes issues that impacted release 0.2.2.
An increase in the number of VMs started and stopped caused file descriptors that were not closed upon VM shutdown to accumulate much faster and cause issues such as the error "Too many files open".
What's Changed
- Fix: Pubsub subscribers did not get all relevant messages by @hoh in #208
- Doc: Format of Caddy GPG is now armored, did not work anymore by @hoh in #205
- Chore: Cleanup internal logging by @hoh in #209
- Fix: VM config files were never closed by @hoh in #210
- Fix: VM id counter values too high could cause issues in IP ranges by @hoh in #206
- Fix: VM unix socket were never closed by @hoh in #207
- Fix: Pubsub queues were not discarded after use by @hoh in #204
Full Changelog: 0.2.2...0.2.3
How to upgrade
On Debian:
rm -f /opt/aleph-vm.debian-11.deb
wget -P /opt https://github.com/aleph-im/aleph-vm/releases/download/0.2.3/aleph-vm.debian-11.deb
apt install /opt/aleph-vm.debian-11.deb
On Ubuntu:
rm -f /opt/aleph-vm.ubuntu-20.04.deb
sudo wget -P /opt https://github.com/aleph-im/aleph-vm/releases/download/0.2.3/aleph-vm.ubuntu-20.04.deb
sudo apt install /opt/aleph-vm.ubuntu-20.04.deb
0.2.2 Updated internals
This release upgrades Firecracker to 1.1.0, the Linux Kernel to 5.10, and fixes bugs in the VM supervisor.
What's Changed
- Doc: Use v 0.2.1 instead of 0.1.10 by @hoh in #188
- Fix: Lib
packaging
was not added to Dockerfile by @hoh in #192 - Fix: Concurrent requests could result in a different counter value by @hoh in #193
- Chore: Update firecracker to 1.1.0 by @hoh in #203
- Internal: Raise exception VmInitNotConnected when VM init cannot be reached by @hoh in #201
- Fix: Settings with implicit annotations were not displayed by @hoh in #200
- Fix: Recording VM usage crashed if process had stopped beforehand by @hoh in #198
- Fix: A VM would not restart if the init process crashes by @hoh in #199
- Chore: Update kernel to 5.10 by @hoh in #202
Full Changelog: 0.2.1...0.2.2
How to upgrade
On Debian:
rm -f /opt/aleph-vm.debian-11.deb
wget -P /opt https://github.com/aleph-im/aleph-vm/releases/download/0.2.2/aleph-vm.debian-11.deb
apt install /opt/aleph-vm.debian-11.deb
On Ubuntu:
rm -f /opt/aleph-vm.ubuntu-20.04.deb
sudo wget -P /opt https://github.com/aleph-im/aleph-vm/releases/download/0.2.2/aleph-vm.ubuntu-20.04.deb
sudo apt install /opt/aleph-vm.ubuntu-20.04.deb
0.2.1 Stability matters
This minor release improves the stability of the software. The main visible change is the switch to use the Aleph Load Balancer with official Aleph nodes by default instead of the api2.aleph.im server. This improves the reliability of Compute Resource Nodes by providing multiple nodes to connect to.
Operators
- Change: Use the load balancer instead of api2 by @hoh in #184
- Feature: User could not easily access the current version of the software by @hoh in #180
Developers
- Fix: Developer Dockerfile was obsolete and broken by @hoh in #172
- Feature: Developer could not run custom command in container by @hoh in #171
Other changes
- Fix: Cargo.toml file was missing from Rust example by @hoh in #175
- Fix: Database access during benchmarks errored by @hoh in #173
- Fix: Getting version from git crashed when git was missing or on shallow clone by @hoh in #170
- [Doc] Fix typos by @odesenfans in #178
- Fix: Users could not tell if redacted fields were empty by @hoh in #168
- Fix: Incomplete file download could lead to inconsistent state by @hoh in #177
- Fix: Process metrics crashed if process was already stopped by @hoh in #169
- Fix and cleanup vm_connector by @hoh in #179
- Fix: Response body requires bytes, was given str by @hoh in #182
- Fix: AttributeError crashed VM teardown by @hoh in #183
- Feature: Load balancer could not distinguish outdated supervisors by @hoh in #181
- Internal: Enhance typing by @hoh in #185
- Allow to run CI in a Droplet for nested virtualization by @hoh in #186
- Fix: Software version could not be fetched from apt by @hoh in #187
Full Changelog: 0.2.0...0.2.1
How to upgrade
On Debian:
rm -f /opt/aleph-vm.debian-11.deb
wget -P /opt https://github.com/aleph-im/aleph-vm/releases/download/0.2.1/aleph-vm.debian-11.deb
apt install /opt/aleph-vm.debian-11.deb
On Ubuntu:
rm -f /opt/aleph-vm.ubuntu-20.04.deb
sudo wget -P /opt https://github.com/aleph-im/aleph-vm/releases/download/0.2.1/aleph-vm.ubuntu-20.04.deb
sudo apt install /opt/aleph-vm.ubuntu-20.04.deb
0.2.0 Resource monitoring
This new release introduces the monitoring of the resources used by VMs, changes where files are stored on the system, and introduces multiple fixes and improvements.
Monitoring of VM resources
Execution times of VMs that stopped can be fetched on https://{host}/about/executions/records
. Resource usage of running VMs can be fetched after authentication on https://{host}/about/executions
.
Execution times are stored by default in /var/lib/aleph/vm/executions.sqlite3
(settings.EXECUTION_DATABASE
).
Breaking changes
- Aleph-VM files are now stored in
/var/lib/aleph/vm
:/srv/jailer
→/var/lib/aleph/vm/jailer
/var/tmp/aleph/volumes
→/var/lib/aleph/vm/volumes
- The supervisor cache moved from
/tmp/aleph/vm_supervisor
to/var/cache/aleph/vm
3b0d93a
Other changes
- Expose the version of aleph-vm in HTTP header
server
by @hoh in #151 - Dependency: Upgrade Firecracker to v1.0.0 by @hoh in #159
- Hoh small fixes by @hoh in #152
- Problem: Developers had no easy way to know which Python dependencies to use by @hoh in #153
- Build(deps): Bump psutil from 5.5.1 to 5.6.6 in /packaging by @dependabot in #156
- Build(deps): Bump aiohttp from 3.6.2 to 3.7.4 in /packaging by @dependabot in #155
- Cleanup: Remove unnecessary type annotations by @hoh in #154
- Fix: Querying index with HTTP HEAD raised 500 due to AssertionError by @hoh in #149
- Fix minor upgrade issues by @hoh in #157
- Cleanup: Use
black
formatter by @hoh in #161 - Hoh fix srv jailer by @hoh in #162
- Fix: Package postrm/postinst failed if directory was missing by @hoh in #163
Full Changelog: 0.1.10...0.2.0
How to upgrade
First read the Breaking changes section above and adjust your customized system configuration if relevant.
On Debian:
rm -f /opt/aleph-vm.debian-11.deb
wget -P /opt https://github.com/aleph-im/aleph-vm/releases/download/0.2.0/aleph-vm.debian-11.deb
apt install /opt/aleph-vm.debian-11.deb
On Ubuntu:
rm -f /opt/aleph-vm.ubuntu-20.04.deb
sudo wget -P /opt https://github.com/aleph-im/aleph-vm/releases/download/0.2.0/aleph-vm.ubuntu-20.04.deb
sudo apt install /opt/aleph-vm.ubuntu-20.04.deb
0.1.10 Reliability fixes
In short
This minor release improves the reliability of the VM Supervisor and fixes some bugs.
We recommend everyone to upgrade.
New features
Operators can use the new setting SENTRY_DSN
to configure the supervisor to report errors to a Sentry project (self-hosted or cloud).
How to upgrade
On Debian:
rm -f /opt/aleph-vm.debian-11.deb
wget -P /opt https://github.com/aleph-im/aleph-vm/releases/download/0.1.10/aleph-vm.debian-11.deb
apt install /opt/aleph-vm.debian-11.deb
On Ubuntu:
rm -f /opt/aleph-vm.ubuntu-20.04.deb
sudo wget -P /opt https://github.com/aleph-im/aleph-vm/releases/download/0.1.10/aleph-vm.ubuntu-20.04.deb
sudo apt install /opt/aleph-vm.ubuntu-20.04.deb
What's Changed
- Hoh fix teardown interfaces by @hoh in #131
- Feature: Add support for error monitoring on Sentry by @hoh in #133
- Fix: Unhandled error class during shutdown by @hoh in #135
- [Doc] Fix typos by @odesenfans in #136
- Fix: Users could not identify missing hash by @hoh in #146
- Fix: VM resource seconds field was ignored by @hoh in #144
- Fix: Sentry DSN appeared in clear in the logs by @hoh in #142
- Doc: Package installation was difficult to follow by @hoh in #141
- Fix: forget_vm called twice when VM init times out by @hoh in #138
New Contributors
- @odesenfans made their first contribution in #136
Full Changelog: 0.1.9...0.1.10
Fix package upgrade
Upgrading a Debian package was erasing the settings configured by the administrator. This minor release fixes this issue.
What's Changed
Full Changelog: 0.1.8...0.1.9
How to upgrade
On Debian 11, as root
wget -P /opt https://github.com/aleph-im/aleph-vm/releases/download/0.1.9/aleph-vm.debian-11.deb
apt install /opt/aleph-vm.debian-0.1.9.deb
On Ubuntu 20.04:
sudo wget -P /opt https://github.com/aleph-im/aleph-vm/releases/download/0.1.9/aleph-vm.ubuntu-20.04.deb
sudo apt install /opt/aleph-vm.ubuntu-20.04.deb
Important fixes and smaller Debian packages
This is a release with important bug fixes and reliability issues, and improves the packaging operations.
The main issue this fixes is the "Too many open files" issue some operators encountered.
It also fixes reliability issues in persistent volumes that were not properly synced before the shutdown of the VM.
A test runtime rootfs is not included in the packages anymore, bringing package sizes back to an acceptable size of 13.5 MB instead of ~200 MB. Package version numbers are automatically generated from Git.
What's Changed
- Fix: Redis connections were accumulating by @hoh in #111
- Fix: A directory with the numerical id of the VM was not deleted by @hoh in #113
- Feature: Admin could not distinguish guest_api among running processes by @hoh in #112
- Internal: Package
firecracker
was not mounted in development container by @hoh in #114 - Fix: VM were not properly shutdowm, persistent volumes could be corrupted by @hoh in #115
- Feature: Publish artifacts from GH actions by @hoh in #117
Full Changelog: 0.1.7...0.1.8