06c3fba96e
feat: add support for sysctls compose key ( #239 )
...
* feat: add support for `sysctls` compose key
* lint
---------
Co-authored-by: Pasha Sviderski <me@psviderski.name >
2026-01-10 15:53:56 +11:00
Andrey Viktorov and GitHub
6c2f85d38a
feat: add support for cap_add and cap_drop compose keys ( #238 )
2026-01-10 15:13:03 +11:00
Anton Ovchinnikov and GitHub
9a1d2e0d46
fix: Equals and Clone for configs ( #235 )
2025-12-30 20:32:19 +10:00
Pasha Sviderski
d2a7af744d
fix: uncloud daemon crash when listing partially replicated container records
2025-12-18 16:32:26 +10:00
Pasha Sviderski
db09dec855
chore: add more tests for MatchesDockerVolume and update error message when volume spec doesn't match
2025-12-15 18:12:12 +10:00
Justin Bradford and GitHub
20cdcdf917
fix: Set volume driver name to "local" if not specified ( #219 )
2025-12-15 17:50:36 +10:00
a9a720f3c3
feat: Add uc service start/stop commands ( #195 )
...
* feat: Add `uc service start/stop` commands
* Add nolint:dupl for service start/stop commands
Co-authored-by: Pasha Sviderski <me@psviderski.name >
* Add --signal and --timeout options to uc service stop
* Check whether service stop --timeout flag was used to set options properly
---------
Co-authored-by: Pasha Sviderski <me@psviderski.name >
2025-12-09 15:58:09 +10:00
Pasha Sviderski
1e6aaf451e
feat: support filtering service logs by machine (-m/--machine)
2025-12-03 15:01:23 +10:00
79dc05cb66
feat: service logs command to stream service logs ( #196 )
...
* chore: fix landing logo shadow
* feat: implement service logs command with colored output and strict ordering
* revert Makefile
* fix after rebase
* move logs command under services with root shortcut
* simplify server options for streaming logs and CLI flags
* refactor ContainerLogs grpc server
* update --tail flag
* minor docker.proto
* refactor client ServiceLogs and ContainerLogs
* move ProxyMachinesContext from api to client pkg
* minor refactor proto Stream
* add api/logs
* implement LogMerger
* fix LogMerger to correctly use semaphore
* increate inflish entries to 100 per stream
* send heartbeats
* refactor ContainerLogs to synchronise Send of entries and heartbeats to the steram
* minor logmerege
* remove ContainerName form ServiceLogEntryMetadata
* refactor ContainerLogs into docker.Service
* detect stalled container logs streams
* update logmerger tests
* fix comment in test
* refactor LogMerger with options
* uc logs: format one or multiple services
* make LogMerger emit heartbeats, emit entries <= watermark, rewrite tests
* update uc logs with new LogMerger
* go mod tidy
* fix after merge
---------
Co-authored-by: Evgenii Orlov <evgenii.orlov@semrush.com >
2025-12-02 19:50:48 +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
Pasha Sviderski
6e4439bf49
chore: show container image for the remove container plan operation
2025-11-04 18:15:16 +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
a30ed600b6
chore: update docker and compose Go dependencies to the latest versions
2025-10-08 13:56:58 +10:00
Pasha Sviderski
a2c6cbe633
chore(images): filter images by name with wildcard pattern using Docker filter
2025-10-08 12:33:13 +10:00
Pasha Sviderski
6d2e100d63
feat(images): 'uc image ls' and 'uc images' (alias) commands to list images on machines
2025-10-03 20:53:30 +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
cdff036935
feat(images): gRPC client and server for ListImages
2025-10-03 14:23:18 +10:00
Pasha Sviderski
458d282357
chore: correct comment and add TODO to move machine resolution to grpc-proxy router
2025-10-02 20:12:45 +10:00
Pasha Sviderski
332e7bca90
feat(push): --platform flag to push a specific platform of a multi-platform image
2025-09-30 18:59:03 +10:00
Anton Ovchinnikov and GitHub
63c4de512e
feat: Initial support for Compose configs ( #116 )
2025-09-26 21:24:10 +10:00
Pasha Sviderski
60926f64cc
feat: show IMAGE column when listing services (uc ls) #13
2025-09-22 14:03:45 +10:00
Pasha Sviderski
ff213e71d3
fix: unmarshaling of ServiceSpec in ServiceContainer struct
2025-08-22 17:25:28 +10:00
Pasha Sviderski
75fdbaf2f4
chore: relax ports+Caddy spec validation to allow host mode ports
2025-08-22 15:34:59 +10:00
Pasha Sviderski
066d411367
chore: parse Created time on container with CreatedTime
2025-08-20 22:54:51 +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
dd7bc6c982
chore: trim spaces for x-caddy, diff Caddy configs when comparing service specs
2025-08-13 19:27:40 +10:00
Pasha Sviderski
12c07812a2
chore: add Caddy config to ServiceSpec, load x-caddy to it
2025-08-13 18:44:38 +10:00
Pasha Sviderski
b24b55c4c7
chore: update api.MachineClient interface
2025-07-24 14:25:09 +10:00
da3634b690
E2E tests use repeated strings for test data where constants add no value ( #97 )
...
---------
Co-authored-by: Pasha Sviderski <me@psviderski.name >
Co-authored-by: Anton Ovchinnikov <anton@tonyo.info >
2025-07-21 19:30:02 +02:00
Pasha Sviderski
6fb07db4b2
feat: follow-up compose 'ports' support: use ingress mode by default ( closes #81 )
2025-07-21 16:56:52 +10:00
Evgenii Orlov and GitHub
fea7edcbc5
feat: add support for standard compose ports directive ( #95 )
2025-07-21 15:24:37 +10:00
Zasda Yusuf Mikail and GitHub
1abadaef50
feat: set default log driver for service containers to 'local' ( #83 )
2025-06-27 16:42:26 +10:00
Pasha Sviderski and GitHub
bb97537df7
fix: format error message
2025-05-07 15:59:53 +10:00
Tova-Rozovsky
9f4b8179b5
valid service name
2025-05-06 17:43:05 +03:00
Tova-Rozovsky
469d6fadcd
Fix: restrict validation to RFC1123 label name
2025-05-04 16:14:17 +03:00
Tova-Rozovsky
5f214247ca
added validition for service name
2025-05-02 10:00:16 +03:00
Pavel Sviderski
3f70018e7c
fix: import cycle in pkg/api
2025-04-30 14:18:28 +10:00
Pavel Sviderski
70e9385032
chore(dns-server): implement resolver for service records that watches container changes
2025-04-30 14:13:48 +10:00
Pavel Sviderski
72bf34632f
chore: map new container properties to Docker container configs
2025-04-24 17:24:58 +10:00
Pavel Sviderski
7db8bba6ea
refactor: cpu and memory under Resources struct
2025-04-24 16:40:26 +10:00
Pavel Sviderski
badb8ecd3c
chore: implement EvalContainerSpecChange for new container properties
2025-04-24 15:51:47 +10:00
Pavel Sviderski
9413f1c0b1
feat: define essential container spec parameters
2025-04-24 13:37:25 +10:00
Pavel Sviderski
b605a64fbe
chore: add e2e compose test with volumes
2025-04-23 10:41:24 +10:00
Pavel Sviderski
16c876d83f
fix: compare container specs with equate empty option (nil map == {} map)
2025-04-22 23:31:45 +10:00
Pavel Sviderski
fcf164dda1
chore: refactor schedulers to work with cluster state snapshot, VolumeScheduler updates state with scheduled volumes
2025-04-22 20:34:54 +10:00
Pavel Sviderski
e5957d9d6b
chore: map compose volumes to server spec, initial volume scheduling
2025-04-21 21:25:26 +10:00
Pavel Sviderski
143e68cc95
chore: do not set default volume driver to local, distinguish behaviour when it's set or not
2025-04-21 16:53:43 +10:00
Pavel Sviderski
45497fd20c
chore: update api.ServiceClient interface to include service creation and removal
2025-04-21 12:48:21 +10:00
Pavel Sviderski
948201cb6f
add VolumeScheduler with one flaky test
2025-04-20 11:13:30 +10:00
Pavel Sviderski
1acb0ff110
chore: implement VolumesConstraint to only schedule on machines with required volumes
2025-04-17 21:34:52 +10:00