v0.17.1

gristlabs/grist-corev0.17.1Mar 9, 2026by psviderski

AI Summary

A patch release focusing on WireGuard endpoint management, Compose configuration support, and various networking reliability improvements.

Key Highlights

  • Manual WireGuard endpoint specification for machines behind NAT
  • Compose `stop_grace_period` support to control container shutdown timeouts
  • Improved reliability of initial cluster store sync

Breaking Changes

  • Removed obsolete `uc machine token` command

New Features

  • WireGuard endpoint flags for init, add, and update commands
  • IPv6 DNS resolution fixes
  • Improved log streaming for Compose services

Full Release Notes

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.

```shell
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:

```shell
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.

```yaml
services:
  app:
    image: myapp
    stop_grace_period: 30s
```

## Improvements

- Tailscale addresses are excluded from auto-detected WireGuard endpoints: see [Discord thread](https://discord.com/channels/1371726032104587335/1477823130670993408)
- `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: https://github.com/psviderski/uncloud/pull/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:

```bash
# 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:

```bash
# 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
* d5687cd71307ae6bbdbc081290a5b2d841fd07bf chore: combine some e2e tests to reduce the number of ucind clusters hence used system resources
* 4de17cb63cca7b43335b6bc211debfa1de67ef9c chore: delete the obsolete 'machine token' command
* e54871758b6c7281809960cb4ee58d65ee89dd3a chore: increase wait for test cluster timeout 30s -> 60s for e2e tests on GHA
* 38c7dda6a02b1cc8623d8b58111c5365d5f1717f chore: rename --endpoint to --wg-endpoint for 'uc machine update' command
* 897f03aafd4638e0485dbbfa91bee8beb62e7ae3 chore: skip not found services when streaming logs for Compose services (print warning)
* 2405b156e45b50f82ab72c46ff7f2943264b4dc5 chore: validate endpoints is not empty in update machine requests
* a67f936cc17494efc1ca87ce036186124962d7d4 chore: wait for known missing changes during the initial cluster store sync
* 51c7b5ba8f6d3511531fe2c8e6f8d9a496c68f66 feat: add --wg-endpoint flag to 'uc machine add/init' to specify wireguard endpoint for the machine instead of auto-detecting
* bad0f97b6632a327caf0c4448e954f38cde9612b feat: add support for updating WireGuard endpoints for a machine (uc machine update)
* d9934b9dbadc7a6ff795473f86e840fef6975a45 feat: support compose stop_grace_period to change timeout before sending SIGKILL
* 7b306f25ceab051f8272239e33a18b185ab5a7cc fix: another attempt to fix flaky test container_crashes_on_startup_without_healthcheck
* 222243493417b3e0892e2a77784faf9e570ce08d fix: connection formatting when changing connection with 'ctx conn'
* a507b202ec48a62f601fd55be77815415eeacc67 fix: create AAAA DNS record for IPv6 machines" (#257)
* 3c435434a837ac17985e5ae95896a041efd29d40 fix: flaky test TestDeployment/container_crashes_on_startup_without_healthcheck
* 1f328e99d5f257b34eabf3ce645ba7f7c7190c88 fix: remove the incorrect e2e test for updating machine endpoints with empty list
* e6f013dbc86c0bcbbac041e55ff7327c1ed8560d fix: skip Tailscale addresses for using as auto-detected WireGuard endpoints
* 51b8c29d634fc7b29b9dd7936ba2d30027888d5b fix: typo