github psviderski/uncloud v0.9.0

latest releases: v0.16.0, v0.15.1, v0.15.0...
7 months ago

Uncloud 0.9.0 Release Notes

This release includes critical Docker 28.2.0+ compatibility fixes, sets better defaults for container logging, and includes minor housekeeping improvements.

Upgrade to 0.9.0

Uncloud CLI locally

To upgrade the Uncloud CLI (uc) locally:

# Homebrew (macOS, Linux)
brew upgrade uncloud

# Install script (macOS, Linux)
curl -fsS https://get.uncloud.run/install.sh | sh

Machine daemon

To upgrade the Uncloud daemon on your machines, run the following commands on each machine:

# AMD64
curl -fsSL -o uncloudd.tar.gz https://github.com/psviderski/uncloud/releases/download/v0.9.0/uncloudd_linux_amd64.tar.gz
# ARM64
# curl -fsSL -o uncloudd.tar.gz https://github.com/psviderski/uncloud/releases/download/v0.9.0/uncloudd_linux_arm64.tar.gz
tar -xf uncloudd.tar.gz
sudo install uncloudd /usr/local/bin/uncloudd
rm uncloudd uncloudd.tar.gz
sudo systemctl restart uncloud

Bug fixes

Docker 28.2.0+ compatibility

Fixed connectivity between containers across machines with Docker 28.2.0 and later versions. The fix only works for new clusters and new machines added to existing clusters.

Starting with Docker 28.2.0 (moby/moby#49832), Docker networks must explicitly specify from which host interfaces they allow direct routing to their containers. This is done by specifying the com.docker.network.bridge.trusted_host_interfaces option when creating the network. We now create the uncloud Docker network with com.docker.network.bridge.trusted_host_interfaces=uncloud option to allow the WireGuard mesh network (uncloud interface) to route traffic to uncloud-managed containers.

If you upgraded Docker to 28.2.0 or a later version on an existing machine, you need to manually recreate the uncloud Docker network with the com.docker.network.bridge.trusted_host_interfaces=uncloud option on it to fix cross-machine communication. We prepared the migration script that will do that for you.
⚠️ Note: the migration process may cause temporary service disruption. Download and run it on your machines:

curl -O https://raw.githubusercontent.com/psviderski/uncloud/refs/heads/main/scripts/migrate_docker_28.2.0.sh
chmod +x migrate_docker_28.2.0.sh
sudo ./migrate_docker_28.2.0.sh
rm migrate_docker_28.2.0.sh

New features

  • The default log driver for all service containers is set to local, which preserves 100MB of log messages per container and uses automatic compression to reduce the size on disk. There is no longer a need to manually specify the log driver limits to prevent logs from filling up the disk space. Contributed by @zasdaym.
  • Added unofficial Debian package repository maintained by @dariogriffo.

Improvements

  • Uncloud-managed volumes are labeled with uncloud.managed to make it easier to identify and manage them.
  • Anonymous volumes are now properly cleaned up when removing service containers.

Developer Experience

  • Protobuf compiler and Go plugins are now managed through mise, using consistent versions across all development environments.
  • Added CI checks for protobuf generation on multiple platforms.
  • Added .editorconfig for consistent code formatting across different editors.

Contributors

Special thanks to our contributors for this release:

Changelog

  • f75afa0 Merge branch 'pasha/machine-rm'
  • 638f320 build: Install protobuf tools via mise (#77)
  • 2f35ac6 chore: Add .editorconfig
  • 8e0a24e chore: add donate button in README
  • e3e39dd chore: create FUNDING.yml
  • 0f38b12 chore: fail 'machine rm' as not fully implemented
  • a73cbfd chore: hide incomplete machine rm command from help output
  • 2b4da1e chore: remove anonymous volumes created by service containers when removing
    them
  • 4c77fe2 chore: tidy up
  • 5c8beb8 chore: tidy up go.mod, remove toolchain
  • 44549c0 feat: Label new volumes as managed by uncloud (#79)
  • 535b91f feat: add stub for Reset method in machine API
  • 59b96cc feat: init 'machine rm' command that outputs service containers that will be
    removed
  • be8b4f0 feat: remove containers on machine before removing it
  • 1abadae feat: set default log driver for service containers to 'local' (#83)
  • 3b1ce42 fix(docs): add missing word to complete the sentence (#82)
  • 26f34df fix: Improve output for build operations
  • 89fb9ef fix: Use GITHUB_TOKEN to increase the rate limit for mise action
  • 55773e9 fix: allow direct routing from WireGuard mesh to containers for Docker
    28.2.0+
  • 3b89af4 fix: e2e compose build test on macOS with Docker Desktop

Don't miss a new uncloud release

NewReleases is sending notifications on new releases.