Anton Ovchinnikov
3c33973269
chore(exec): Update TODO regarding signal forwarding
2025-11-23 23:58:53 +01:00
Anton Ovchinnikov
30bb33f1a0
fix(exec): Handle context cancellation server-side
2025-11-09 18:19:41 +01:00
Pasha Sviderski
b6dfc2175f
fix: reconfigure WireGuard peers when listed >=1 machines in cluster store ( fixes #155 )
2025-11-07 12:51:40 +10:00
Anton Ovchinnikov and GitHub
abea3e229e
feat: "exec" command to start processes inside remote containers ( #139 )
2025-11-05 23:47:24 +01:00
Justin Bradford and GitHub
ba6290d616
feat: add "nearest.<service>.internal" mode to internal DNS ( #159 )
...
* feat: Adding a "nearest.service.local" mode to internal DNS
* Pass listenAddr to internal DNS server (rather than calling into network.MachineIP)
Also adds an exact round-robin via "rr.{service}" mode. Not sure we want that over random or not, though.
* Remove the resolved count and rotating round-robin. "rr.name" mode is now the same as default with random shuffle.
* Add test on nearest internal DNS lookup
* Add docs on internal DNS order modes
2025-10-29 14:25:59 +10:00
Justin Bradford and GitHub
3b4bcb7932
feat: support service.gpus and reservations.devices ( #156 )
...
* feat: support compose.yaml `service.gpus` and `service.deploy.resources.reservations.devices` DeviceRequests to Docker container
* Fix lint error
* Adjust test comments to work with linter
* Rename DeviceRequests to DeviceReservations to be more consistent with compose nomenclature
* Device reservation changes are immutable and should trigger a container recreate rather than update
2025-10-27 16:49:38 +10:00
Pasha Sviderski
521ccf2026
chore(push): run unregistry only if containerd image store enabled for docker
2025-10-09 12:48:51 +10:00
Pasha Sviderski
a30ed600b6
chore: update docker and compose Go dependencies to the latest versions
2025-10-08 13:56:58 +10:00
3e804d9ecc
feat: set UNCLOUD_MACHINE_ID in service container ENV ( #135 )
...
* Set machine id in service container ENV
* Add machine id to clone of the container's env map to avoid exposing serialization format
* fix: panic on setting UNCLOUD_MACHINE_ID env var when Env is nil in the spec
---------
Co-authored-by: Pasha Sviderski <me@psviderski.name >
2025-10-07 14:12:00 +10:00
Pasha Sviderski
784d86d8e8
fix: test build for docker server
2025-10-03 21:10:02 +10:00
Pasha Sviderski
cce81ecaad
chore(images): simplifies ListImages service, server, and client to only list Docker images and not directly access containerd
2025-10-03 18:25:39 +10:00
Pasha Sviderski
82fd9744bf
chore: remove unused imports
2025-10-03 15:03:19 +10:00
Pasha Sviderski
cdff036935
feat(images): gRPC client and server for ListImages
2025-10-03 14:23:18 +10:00
Pasha Sviderski
59074a275f
chore(images): initialise Docker service with containerd client
2025-10-02 15:51:54 +10:00
Pasha Sviderski
92975eec51
feat(images): add gRPC proto ListImages
2025-10-02 12:50:53 +10:00
Pasha Sviderski
fa004d63bb
chore: add firewall rule to allow cluster machines to push to other machines unregistry
2025-10-01 12:34:03 +10:00
Pasha Sviderski
bcc504b8cc
chore: internal Docker client PushImage
2025-09-30 13:58:34 +10:00
Pasha Sviderski
e0045c7570
chore: refactor gRPC docker client
2025-09-26 21:24:56 +10:00
Anton Ovchinnikov and GitHub
63c4de512e
feat: Initial support for Compose configs ( #116 )
2025-09-26 21:24:10 +10:00
Justin Bradford and GitHub
2d361d3ee6
Adding machine.service.internal dns entries ( #123 )
2025-09-24 20:06:54 +10:00
Pasha Sviderski
08f233c5b1
fix: auto-detect containerd.sock path and conditionally start unregistry
2025-09-23 15:10:34 +10:00
Pasha Sviderski
9438654d99
docs: fix comment in schema.sql
2025-09-23 12:21:45 +10:00
Pasha Sviderski
b6b8286118
feat: run embedded unregistry on machine IP in uncloudd daemon
2025-09-19 20:43:20 +10:00
Pasha Sviderski
b6e9766f40
lint: gRPC status.Error for static error messages
2025-09-15 17:11:12 +10:00
Pasha Sviderski
7b88b8b810
fix: write generated Caddyfile to disk only if succesfully loaded into local Caddy (means valid)
2025-09-10 16:59:31 +10:00
Pasha Sviderski
97bdb8eae1
fix: skip validation for user-defined Caddy configs if caddy not running locally
2025-09-10 15:04:45 +10:00
Pasha Sviderski
5baa8087e5
chore: load Caddy config via admin API instead of watching Caddyfile change on fs
2025-09-09 19:10:32 +10:00
Pasha Sviderski
b046b78398
feat: migrate Caddy to generated Caddyfile, mount persistent data volume
2025-08-22 19:51:15 +10:00
Pasha Sviderski
e99e769455
chore: add Caddy gRPC service to retrieve Caddyfile config from machines
2025-08-21 17:04:42 +10:00
Pasha Sviderski
11949eeb3b
chore: include validation errors for user-defined Caddy configs as a comment in Caddyfile
2025-08-21 14:01:24 +10:00
Pasha Sviderski
b437659678
chore: update comments in generated Caddyfile
2025-08-21 13:14:54 +10:00
Pasha Sviderski
c01365b416
chore: add header to generated Caddyfile that it's autogenerated
2025-08-21 08:54:06 +10:00
Pasha Sviderski
813c397644
chore: change reverse_proxy upstreams from 'to' to the directive arguments
2025-08-21 08:32:45 +10:00
Pasha Sviderski
5cc005a423
feat: validate and append custom per-service Caddy configs to generated Caddyfile
2025-08-21 08:18:59 +10:00
Pasha Sviderski
03970862ab
feat: concatenate custom Caddy configs for services into final Caddyfile (no upstream interpolation)
2025-08-19 22:01:48 +10:00
Pasha Sviderski
8bf9fc0c9c
chore: introduce mockery for generating mocks, generate for CaddyfileValidator
2025-08-18 18:50:47 +10:00
Pasha Sviderski
93fef88fac
chore: refactor Caddyfile generator to accept a validator
2025-08-18 18:48:32 +10:00
Pasha Sviderski
455174ccb0
chore: generate sites in Caddyfile from x-ports alongside caddy.json
2025-08-15 18:29:23 +10:00
Pasha Sviderski
1ce3e62dbb
fix: use local and remote Docker credentials to pull image from private registry
2025-08-15 14:09:40 +10:00
Pasha Sviderski
4be8339c51
chore: generate a minimal Caddyfile with verify handler alongside caddy.json
2025-08-14 19:43:40 +10:00
Pasha Sviderski
8dd69b46da
chore: refactor docker gRPC server to use docker service for inspecting and listing containers
2025-08-14 15:34:59 +10:00
Pasha Sviderski
4cc1e556dd
chore: store ServiceContainer (includes service spec) instead of Container in Corrosion store
2025-08-14 14:53:33 +10:00
Pasha Sviderski
ae9f943404
chore: change default restart policy for service containers always -> unless-stopped
2025-08-07 18:09:35 +10:00
Pasha Sviderski
6c244bb8f9
fix: do not try to reset machine when removing unreachable machine
2025-08-06 15:11:27 +10:00
Pasha Sviderski
8beb9e2679
chore: lint
2025-08-04 19:20:52 +10:00
Pasha Sviderski
0c2ff499c6
fix: log message deleting iptables chain
2025-08-04 19:16:54 +10:00
Pasha Sviderski
b39585df4c
chore: do not masquerade container IPs when communicating via WG mesh
2025-08-04 19:09:38 +10:00
Pasha Sviderski
35d0a90125
fix: add machine with UFW firewall (allow ipv6 management traffic) fixes #65
2025-08-04 16:50:18 +10:00
Pasha Sviderski
2714587ec5
feat: add RemoveMachine API endpoint to remove a machine from the cluster
2025-07-25 19:30:59 +10:00
Pasha Sviderski
4166474ee8
fix: race on cluster init by waiting for corrosion service to become ready with schema applied
2025-07-25 16:28:32 +10:00