Files
Miek GiebenandPasha Sviderski 417e402c73 feat(dns): allow setting an externally managed cluster domain (uc dns set)
* feat: add uc dns set

This allows manual setting of the cluster's domain name. I use this to
make the local cluster admin aware that this has been done.
(and then manually update the external dns)

```
% uc dns set ctrl.u.science.ru.nl
Set cluster domain: ctrl.u.science.ru.nl
Deploy the Caddy reverse proxy service ('uc caddy deploy') to enable internet access to your services via the reserved or your custom domain.

% uc dns show
ctrl.u.science.ru.nl

% uc dns set ctrl.u.science.ru.nl
Error: domain already reserved

% uc dns release
Released cluster domain: ctrl.u.science.ru.nl
```

See: #37

Signed-off-by: Miek Gieben <miek@miek.nl>

* docs

Signed-off-by: Miek Gieben <miek@miek.nl>

* check validatity

Signed-off-by: Miek Gieben <miek@miek.nl>

* No need to call out to update anything, as set doesnt use uncloud dns

Signed-off-by: Miek Gieben <miek@miek.nl>

* Ignore domain when there is no endpoint

Prevents this error, when you know what you're doing:

    Error: failed to update DNS records pointing to caddy service: create cluster domain records in Uncloud DNS: rpc error: code = Unknown desc = Post "/domains/ctrl.u.science.ru.nl/records": unsupported protocol scheme ""

Signed-off-by: Miek Gieben <miek@miek.nl>

* from main

Signed-off-by: Miek Gieben <miek@miek.nl>

* mise proto && make cli-docs

Signed-off-by: Miek Gieben <miek@miek.nl>

* Rebase and and generate protos again

Signed-off-by: Miek Gieben <miek@miek.nl>

* Rebase and fix

Signed-off-by: Miek Gieben <miek@miek.nl>

* feat(dns): allow setting an externally managed cluster domain

---------

Signed-off-by: Miek Gieben <miek@miek.nl>
Co-authored-by: Pasha Sviderski <me@psviderski.name>
2026-09-25 16:36:01 +10:00

2.1 KiB

uc

A CLI tool for managing Uncloud resources such as machines, services, and volumes.

Options

      --connect string          Connect to a remote cluster machine without using the Uncloud configuration file. [$UNCLOUD_CONNECT]
                                Format: [ssh://]user@host[:port], ssh+go://user@host[:port], tcp://host:port, or unix:///path/to/uncloud.sock
  -c, --context string          Name of the cluster context to use (default is the current context). [$UNCLOUD_CONTEXT]
  -h, --help                    help for uc
      --uncloud-config string   Path to the Uncloud configuration file. [$UNCLOUD_CONFIG] (default "~/.config/uncloud/config.yaml")

See also

  • uc build - Build services from a Compose file.
  • uc caddy - Manage Caddy reverse proxy service.
  • uc ctx - Switch between different cluster contexts. Contains subcommands to manage contexts.
  • uc deploy - Deploy services from a Compose file.
  • uc dns - Manage the cluster domain.
  • uc exec - Execute a command in a running service container.
  • uc image - Manage images on machines in the cluster.
  • uc images - List images on machines in the cluster.
  • uc inspect - Display detailed information on a service.
  • uc logs - View service logs.
  • uc ls - List services.
  • uc machine - Manage machines in the cluster.
  • uc proxy - Proxy a service port to a local port.
  • uc ps - List all service containers.
  • uc rm - Remove one or more services.
  • uc run - Run a service.
  • uc scale - Scale a replicated service by changing the number of replicas.
  • uc service - Manage services in the cluster.
  • uc start - Start one or more services.
  • uc stop - Stop one or more services.
  • uc version - Show version and build information.
  • uc volume - Manage volumes in the cluster.
  • uc wg - Inspect WireGuard network