v0.7.0

psviderski/uncloudv0.7.0May 1, 2025by psviderski

AI Summary

This release v0.7.0 introduces an embedded DNS service for internal service discovery, handling the `.internal` domain for service-to-service communication, along with Compose profiles support and various CLI improvements including a `--version` flag.

Key Highlights

  • Embedded DNS service running on each machine's IP (10.210.X.1) for `.internal` domain service discovery
  • Compose profiles support via `-p/--profile` flag
  • Added `--version` flag to both `uc` and `uncloudd` binaries
  • Fixed Caddy proxy to only route to healthy containers
  • Fixed panic in `ctx` command when only one context exists in config

New Features

  • Embedded DNS service for internal service discovery - resolves service names to container IPs, forwards external queries upstream
  • Compose profiles support via `-p/--profile` flag
  • CLI `--version` flag for displaying version information
  • Accessible confirmation forms throughout CLI
  • Fast failure during machine init/add if DNS port is already in use

Full Release Notes

This release introduces embedded DNS service for internal service discovery, Compose profiles support, and several improvements for CLI and machine daemon.

## New Features

### Embedded DNS service
- Runs on each machine's IP (10.210.X.1) and handles `.internal` domain.
- Automatically configured for all service containers and used for service discovery (resolves `service-name` and `service-name.internal` to IP addresses of the `service-name` service containers).
- Transparently forwards non-`.internal` queries to upstream DNS servers.
- Can be used as the main nameserver on the machine to simplify service troubleshooting from the host shell. K8s, don't be jealous!
- Fast failure during `machine init/add` if DNS port is already in use.

### Compose profiles
- Support for Compose profiles via `-p/--profile` flag.

### CLI enhancements
- Display version information for `uc` and `uncloudd` binaries with `--version` flag.
- Made all confirmation forms accessible.

## Bug fixes
- Fixed Caddy proxy to only route to healthy containers.
- Fixed panic in `ctx` command when Uncloud config contains only one context. Thanks to @tonyo for reporting.
- Fixed loss of message from child loggers (created with `slog.With`).

## Contributors
Thanks to @cedws for contributing the Compose profiles and CLI `--version` features!

## Changelog
* ef57b62625dae11631d62b6c1ee53b85124682de Merge pull request #50 from cedws/version
* 7861d56dffe524980400702a7fb982e59a960750 Merge pull request #54 from cedws/profiles
* c56385602e93b2866aaee456405ff3ef4b14e6eb chore(dns-server): authoritative responses for internal DNS queries and forwarding to ustream servers
* 70e9385032185e91c596d3211af895007f3dfc9a chore(dns-server): implement resolver for service records that watches container changes
* 6e1165ec57625c71e2895e30632a1f0f334967ec chore(dns-server): make TCP server non-critical; do not exit if it fails to start
* fbbf839258cc42eec789c705a37720aac26496c0 chore: init embedded DNS server
* 769f5e47c326498f6a351e5f2bc7544fae7619c0 feat(dns-server): check system prerequisites when init/add machine: DNS port is not in use by another DNS server
* 8d16da596c6d09b0e6a664c9960870e69a50f83f feat(dns-server): run embedded internal DNS server on machine IP in uncloudd daemon process
* cf7e333579561316a8f41cca9d378c1e33e5c2aa feat(dns-server): use embedded DNS server for all service containers
* 7bc69b9a9e1ccbc973ae5f91a940fc79a3b53466 feat: add support for Compose profiles
* e854bbb3e179ac37ed140366a417e9f01a0422b7 feat: add version flag to main cmd
* eee28e2eada83c7c01840322fa3e1d8e7fa8d8a8 feat: add version flag to uncloudd binary
* 0b8495e96421bea3e0533677333045786be49c24 feat: make all confirmation forms accessible
* 38800924edf19f20142d9d958ca23686832ea20b fix(caddy): proxy to only healthy containers
* 6068e24f4f67fea46d1f0d5fe13f7039f505031b fix(ctx): panic: index out of range when only one context in uncloud config (closes #52)
* d6c06828b311828c3c343be462ea2590060aec6e fix(dns-server): fix constructor and log messages
* db3016fe898f3630660622ce462f2c3c215e5fbd fix: --file flag description for uc deploy cmd
* fe93d91894a049960bb4f981d92e958dc70a5013 fix: attributes handling in SlogTextHandler for child loggers
* 3f70018e7c4e07beb9bbb88c7652d01e9fd9b3ff fix: import cycle in pkg/api