Pasha Sviderski
992b819f5b
feat(caddystorage): simplify CaddyStorage gRPC API to allow only one2one calls
2026-09-08 14:36:43 +10:00
Pasha Sviderski
842f796e38
refactor(store): unify logic and enhance logging for initial store sync (waitStoreSync)
2026-09-08 12:04:26 +10:00
Pasha Sviderski
0f6c03240b
feat(store): add WaitForStoreVersion API to wait for cluster store replication up to target version
2026-09-08 10:52:53 +10:00
Pasha Sviderski
c6d0371f15
feat(caddystorage): integrate CaddyStorage gRPC service in machine API
2026-09-07 10:44:08 +10:00
Pasha Sviderski
8aedc2bf19
refactor(proto): move protobuf generated API to the top-level api/pb package
2026-09-04 10:50:30 +10:00
Pasha Sviderski
7a88865f64
feat(caddystorage): implement the machine-local CaddyStorage gRPC service
2026-09-04 10:50:30 +10:00
Pasha Sviderski
a24fc11caf
feat(caddystorage): generic namespace-scoped key-value storage using cluster table in Corrosion
2026-09-04 10:50:30 +10:00
Pasha Sviderski
c7e0e36daa
feat(caddystorage): define CaddyStorage gRPC service API for distributed Caddy storage
2026-09-04 10:50:30 +10:00
Pasha Sviderski
1c29d4d5d0
feat(distlock): integrate distributed lease management into Machine API
2026-08-28 20:59:10 +10:00
Pasha Sviderski
613cd6e418
feat(distlock): refactor into a standalone package
2026-08-27 15:49:59 +10:00
Pasha Sviderski
5a956e72de
feat(distlock): declare Lease gRPC service API for distributed locks
2026-08-26 16:06:47 +10:00
Miek Gieben and Pasha Sviderski
b7e224a1ef
feat(compose): support stdin_open and tty ( #419 )
...
* feat: support stdin_open and tty
This can be useful to leave a container running without specifying a
command like `sleep`, and probably in other situations as well.
Signed-off-by: Miek Gieben <miek@miek.nl >
* Complete full spec test case
Signed-off-by: Miek Gieben <miek@miek.nl >
* fix container log streaming for containers with TTY
---------
Signed-off-by: Miek Gieben <miek@miek.nl >
Co-authored-by: Pasha Sviderski <me@psviderski.name >
2026-07-30 21:50:54 +10:00
Pasha Sviderski
dc721e511e
fix(daemon): extend systemd service start timeout when pulling Docker image for corrosion service
2026-07-10 20:42:27 +10:00
Pasha Sviderski
ad43569fe5
feat(machine): add OS and kernel version information to machine info, show in 'machine ls'
2026-06-24 17:57:20 +10:00
Pasha Sviderski
9ea30e6ee9
refactor(corrosion): reduce transport retry time for corrosion 10s->2s, move some logs to error level
2026-06-24 16:06:00 +10:00
Pasha Sviderski
a040ce5f8e
chore: make retry log debug
2026-06-24 14:50:45 +10:00
Pasha Sviderski
328d17599b
fix(machine): improve context cancellation handling during watch and sync operations
2026-06-24 13:41:14 +10:00
Pasha Sviderski
35191c00e0
fix(cluster): improve error handling on failed machine subscription in cluster store
2026-06-23 20:54:25 +10:00
Pasha Sviderski
b08cee03e3
refactor(machine): improve startup and shuitdown logic, shutdown corrosion in one place
2026-06-23 16:03:04 +10:00
Pasha Sviderski
5f07bc5832
fix(machine): correctly recreate machine in store if missing, improve context handling
2026-06-23 09:29:04 +10:00
Pasha Sviderski
8b95db66d1
feat(machine): sync machine arch, daemon and docker versions to store, sync machine info on schedule
2026-06-22 19:47:35 +10:00
Pasha Sviderski
23d6b4409a
machine: make each machine the source of truth for its configuration, sync it to cluster store
2026-06-19 20:51:19 +10:00
Pasha Sviderski
0c42a7df65
cluster: derive default machine name from its hostname when adding to cluster
2026-06-19 16:54:59 +10:00
Pasha Sviderski
7bb3cb9682
logs: stream corrosion logs with 'uc machine logs corrosion' from container instead of journal ( fixes #392 )
2026-06-17 18:28:25 +10:00
Pasha Sviderski
d36ff67409
unregistry: change the listening port on each machine 5000 -> 51500
2026-06-17 16:32:09 +10:00
Pasha Sviderski
0c3b8b122f
network: add auto-detection of optimal MTU for WireGuard interface, --wg-mtu flag, set max_mtu for Corrosion to 1232
2026-06-16 21:36:12 +10:00
Pasha Sviderski
2f76187bf5
corrosion: use Corrosion 2026.6.15 with fixed API authz for CLI query/exec commands
2026-06-15 16:34:06 +10:00
Miek Gieben and Pasha Sviderski
1247f961c2
feat: allow to bind to multiple host IP addresses specified as CIDR prefix in x-ports ( #358 )
...
Signed-off-by: Miek Gieben <miek@miek.nl >
Co-authored-by: Pasha Sviderski <me@psviderski.name >
2026-06-04 20:07:58 +10:00
Miek Gieben and Pasha Sviderski
24b81af43c
feat: add :51090/metrics endpoint with Prometheus metrics listening on machine IP ( #304 )
...
Signed-off-by: Miek Gieben <miek@miek.nl >
Co-authored-by: Pasha Sviderski <me@psviderski.name >
2026-05-29 18:23:07 +10:00
Pasha Sviderski
9424daff28
feat: enable auth for local requests to Corrosion API ( resolves #110 )
2026-05-26 10:07:12 +10:00
Pasha Sviderski
26951773d1
feat: add created_at/updated_at columns to cluster and machines store tables
2026-05-26 10:07:12 +10:00
Pasha Sviderski
442b5c62bf
refactor: cleanup Corrosion container on reset, move admin socket to runtime dir
2026-05-25 21:41:35 +10:00
Pasha Sviderski
71da32549a
refactor: migrate to run Corrosion service as managed container instead of systemd unit, automatically migrate data to v1
2026-05-25 17:15:44 +10:00
Pasha Sviderski
9236aa341a
refactor: migrate to latest Corrosion version 2026.5.14 for ucind (compare versions vector for store sync)
2026-05-25 14:09:51 +10:00
Pasha Sviderski
0dd4bc9d36
chore: build a use new corrosion image 2026.5.14 (pointing to v1.0.0 upstream) for ucind
2026-05-22 19:36:07 +10:00
Pasha Sviderski
07acb31bf3
fix: do not include outdated containers from the removed machine in DNS and Caddy configs
2026-05-21 19:33:28 +10:00
Aaron Echols
424263bdd4
feat: allow to customise WireGuard listen port with --wg-port for machine init/add ( #366 )
2026-05-19 16:55:55 +10:00
Justin Bradford and Pasha Sviderski
c95136eae6
BREAKING CHANGE: resolve gRPC API proxy targets (machines) on server instead of client, needs upgrade to v0.20 ( #247 )
...
Co-authored-by: Pasha Sviderski <me@psviderski.name >
2026-05-19 15:22:50 +10:00
Miek Gieben
d23f1bdc00
refactor: manually modernize Go ( #349 )
...
Signed-off-by: Miek Gieben <miek@miek.nl >
2026-05-04 13:20:48 +10:00
Pasha Sviderski
3310b478a1
chore: do not log too noisy 'Sent log stream heartbeat.' log line for machine logs
2026-04-24 14:22:25 +10:00
Pasha Sviderski
45cf87a0cb
feat(caddy): order local machine upstreams first in generated Caddyfile
2026-04-23 19:42:33 +10:00
Pasha Sviderski
47199c36ce
fix: containerd socket detection and unregistry startup on machine reboot
2026-04-22 15:31:18 +10:00
Pasha Sviderski
84990ad692
refactor(rtt): use proto Duration, add tests
2026-04-20 11:36:44 +10:00
Justin Bradford
8d023f5c53
feat(rtt): 'machine rtt' command to show round-trip time between macines usign using gossip data ( #226 )
...
* Add corrosion admin client function to get RTT to other machines in the cluster
* Add `uc machine rtt` showing all pair-wise RTT stats from corrosion
* Add long description to machine rtt command
* Include machine peer RTTs in InspectMachine instead of adding new gRPC API for it
* Add nil check on InspectMachine's Rtt field to protect from a potential edge case
* Generate docs for machine rtt command
* Handle m.Message being nil when a node is down or unavailble
* Update cli-docs
* Use tui Table instead of tabwriter
* Change reported RTT to the median rather than mean. Still calculate include stddev, as it might be a useful indication of network jitter.
* Show RTT to peers in `wg show` output
* Update cli docs
2026-04-20 08:01:20 +10:00
Pasha Sviderski
208a561003
chore: trigger container sync on ActionHealthStatusRunning Docker event as well
2026-04-15 17:34:24 +10:00
Pasha Sviderski
6e9acefbe6
fix: Caddy config regeneration due to non-deterministic container serialisation ( fixes #111 )
2026-04-15 16:49:01 +10:00
Pasha Sviderski
ab644f6a47
fix: race on warned flag in versioncheck pkg, make consistent use of client/server terms
2026-04-08 20:42:27 +10:00
Pasha Sviderski
883f184e37
lint
2026-04-08 19:53:26 +10:00
Justin Bradford and Pasha Sviderski
897f30fd36
feat: add client/server version check mechanism to gRPC calls ( #260 )
...
* Add version check mechanism to gRPC calls
* Use semver not semver/v3
* Give dev builds a special "infinite" version number (999.0.0-dev)
* Handle no metadata on grpc call correctly for version check
* Move versioncheck package to root pkg/ from pkg/api/ since it is shared by both pkg/api/ and pkg/client/
* Only show "no daemon version" warning once
* Append version headers to metadata, not overwrite...
* Unit tests on versioncheck logic
* Move SetHeader to the ServerStream in ServerStreamInterceptor
* Go modernizer nits: interface{} -> any
* Use more conventional gRPC header names for version/min-versions
* Add TODO notes on checkDaemonVersionInResponse and related code that can be removed eventually after transition to version checking client/daemons
* Use testify for testing assertions
* Add explanatory comments on MinCLIVersion and MinDaemonVersion
---------
Co-authored-by: Pasha Sviderski <me@psviderski.name >
2026-04-08 19:52:42 +10:00
Pasha Sviderski
e96cce88c1
fix(pre-deploy): exclude hook containers from caddy and dns controllers
2026-04-08 19:16:42 +10:00