github psviderski/uncloud v0.17.1

15 hours ago

This is small patch release that adds WireGuard endpoint management for machines, Compose stop_grace_period support, and several networking fixes.

WireGuard endpoint management

You can now manually specify what WireGuard endpoint to use when adding or initialising a machine instead of relying on auto-detection. This is useful when a machine is behind a NAT or has multiple network interfaces.

uc machine init user@host --wg-endpoint 203.0.113.1
uc machine add user@host --wg-endpoint 203.0.113.2 --wg-endpoint 192.168.1.5

You can also update the WireGuard endpoint for an existing machine:

uc machine update my-machine --wg-endpoint 203.0.113.1

Compose stop_grace_period support

Control how long to wait before sending SIGKILL to a container during replacements and stops.

services:
  app:
    image: myapp
    stop_grace_period: 30s

Improvements

  • Tailscale addresses are excluded from auto-detected WireGuard endpoints: see Discord thread
  • uc logs now prints a warning and continues instead of failing when some Compose services are not found in the cluster
  • Improved reliability of the initial cluster store sync by waiting for known missing changes
  • Removed the obsolete uc machine token command

Bug fixes

  • Fixed Uncloud DNS resolution for IPv6 machines by creating AAAA records: #257
  • Fixed connection formatting when changing connection with uc ctx conn

Upgrade to 0.17.1

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

Changelog

  • d5687cd chore: combine some e2e tests to reduce the number of ucind clusters hence used system resources
  • 4de17cb chore: delete the obsolete 'machine token' command
  • e548717 chore: increase wait for test cluster timeout 30s -> 60s for e2e tests on GHA
  • 38c7dda chore: rename --endpoint to --wg-endpoint for 'uc machine update' command
  • 897f03a chore: skip not found services when streaming logs for Compose services (print warning)
  • 2405b15 chore: validate endpoints is not empty in update machine requests
  • a67f936 chore: wait for known missing changes during the initial cluster store sync
  • 51c7b5b feat: add --wg-endpoint flag to 'uc machine add/init' to specify wireguard endpoint for the machine instead of auto-detecting
  • bad0f97 feat: add support for updating WireGuard endpoints for a machine (uc machine update)
  • d9934b9 feat: support compose stop_grace_period to change timeout before sending SIGKILL
  • 7b306f2 fix: another attempt to fix flaky test container_crashes_on_startup_without_healthcheck
  • 2222434 fix: connection formatting when changing connection with 'ctx conn'
  • a507b20 fix: create AAAA DNS record for IPv6 machines" (#257)
  • 3c43543 fix: flaky test TestDeployment/container_crashes_on_startup_without_healthcheck
  • 1f328e9 fix: remove the incorrect e2e test for updating machine endpoints with empty list
  • e6f013d fix: skip Tailscale addresses for using as auto-detected WireGuard endpoints
  • 51b8c29 fix: typo

Don't miss a new uncloud release

NewReleases is sending notifications on new releases.