github psviderski/uncloud v0.10.0

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

This release introduces new machine management commands (rm, rename, update) and extends Docker Compose support.
Also, includes important bug fixes for machines using UFW firewall and race conditions during cluster initialisation.

✨ We also launched a new blog and published our first post: How to connect Docker containers across multiple hosts with WireGuard

Upgrade to 0.10.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.10.0/uncloudd_linux_amd64.tar.gz
# ARM64
# curl -fsSL -o uncloudd.tar.gz https://github.com/psviderski/uncloud/releases/download/v0.10.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

New features

Machine management

  • Added uc machine rm command to remove machines from the cluster and reset them to a clean state.
  • Added uc machine rename command to rename machines.
  • Added uc machine update command to update a public IP address of a machine used for registering machines in Uncloud DNS service (uc dns).

Docker Compose enhancements

  • Support for x-machines placement constraints in Compose files, allowing you to control which machines services are deployed to (#90).
  • Containers with pull_policy: always are now properly recreated on deployment to ensure the latest image is used (#100).

Bug fixes

  • Fixed machine initialisation when UFW firewall is active by properly allowing IPv6 management traffic (#65).
  • Resolved race condition during cluster initialisation by waiting for the corrosion service to be ready with schema applied (#89).
  • Fixed race condition that could occur during Docker network creation.

Improvements

  • Disabled masquerading for container IPs when communicating via WireGuard overlay network.

Contributors

Special thanks to our contributors for this release:

  • @OrlovEvgeny - Multiple features including machine management and placement constraints
  • @tonyo - Linting configuration and Docker Compose enhancements

Changelog

  • da3634b E2E tests use repeated strings for test data where constants add no value (#97)
  • 2d73b54 blog: proof read WireGuard overlay post, update blog description tag
  • 9b48003 blog: set diagram as og image for wireguard overlay post
  • 05d0078 chore: Enable more linters
  • 1e750cc chore: add Blog links on landing page, fix header on small screens
  • 614212a chore: clean up custom iptables chains on machine reset
  • 0bd42b2 chore: do not allow to remove a machine the client is connected to, add --no-reset flag
  • b39585d chore: do not masquerade container IPs when communicating via WG mesh
  • a7273c8 chore: fix wide svg rendering on landing
  • 8beb9e2 chore: lint
  • f613d3c chore: reformat code
  • 2acfafe chore: regenerate proto
  • 3faaac4 chore: run machine tests in parallel
  • 9a88e91 chore: simplify cluster controller initialisation, prepare for reset
  • b24b55c chore: update api.MachineClient interface
  • 1b61304 chore: use a new uncancelled context for stopping corrosion service
  • a54555c feat(deploy): Recreate container when pull_policy set to Always (#100)
  • 053d730 feat: Basic linting config
  • 2714587 feat: add RemoveMachine API endpoint to remove a machine from the cluster
  • fea7edc feat: add support for standard compose ports directive (#95)
  • 6fb07db feat: follow-up compose 'ports' support: use ingress mode by default (closes #81)
  • 2c3bea6 feat: impl of functionality for renaming and updating machines (#91)
  • 7a6c5bf feat: machine Reset endpoint with asynchronous resource and data cleanup
  • 65f5a71 feat: machine rm command to remove a machine from the cluster and reset it
  • 31cd4c7 feat: support x-machines placement constraints in compose files (#90)
  • 35d0a90 fix: add machine with UFW firewall (allow ipv6 management traffic) fixes #65
  • ff7bb25 fix: custom version handling in install.sh script
  • 3ab708a fix: graceful machine shutdown when not initialised
  • 0c2ff49 fix: log message deleting iptables chain
  • 492a0af fix: migration script for uncloud Docker network to be compatible with Docker 28.2.0+
  • 10bbe9f fix: prevent race condition with Docker network creation (#89)
  • 4166474 fix: race on cluster init by waiting for corrosion service to become ready with schema applied

Don't miss a new uncloud release

NewReleases is sending notifications on new releases.