Pasha Sviderski
4443fa9e0e
chore: update full-spec test to include latest implemented Compose attributes
2026-02-25 16:01:31 +10:00
Pasha Sviderski
f8d1945544
chore: add TODO for ReplaceContainerOperation
2026-02-24 15:30:23 +10:00
Pasha Sviderski
93d7f29d31
chore: remove TODO about encapsulating Client in deploy operations
2026-02-24 13:17:59 +10:00
Pasha Sviderski
18ebd29032
chore: split deploy operations into separate files in operation package
2026-02-24 11:42:47 +10:00
Pasha Sviderski
5c54e9d059
chore: refactor device mapping to be compliant with Compose (CDI requests)
2026-02-11 17:44:38 +00:00
Justin Bradford and GitHub
ab6f856987
feat: Add support for compose devices mappings ( #250 )
...
* feat: Add support for compose `devices` mappings
https://docs.docker.com/reference/compose-file/services/#devices
```
services:
foo:
devices:
- "/dev/ttyUSB0:/dev/ttyUSB0"
- "/dev/sda:/dev/xvda:rwm"
```
* Lint fix
2026-02-11 17:00:18 +00:00
Pasha Sviderski
6e59657fe2
chore: global reconciliation: stop all running conflicting containers, not only replace the first one
2026-02-09 22:29:25 +00:00
Pasha Sviderski
215f21439d
chore: lint and fix e2e deploy tests with ReplaceContainerOperation
2026-02-09 09:53:51 +00:00
Nick and GitHub
53bf446502
deploy.update_config.order support to start-first or stop-first when replacing containers ( #248 )
2026-02-09 09:31:19 +00:00
Zasda Yusuf Mikail and GitHub
15d9ceb4d1
feat: auto-provision volumes on all machines for global services ( #243 )
...
* feat: auto-provision volumes on all machines for global services
* fix: schedule global service volumes only on machines that need them
* fix: use union of eligible machines for volumes shared by global services
* test: restore global with missing volume fails test
* refactor: simplify volume scheduler by removing redundant check
Move isVolumeSharedBetweenGlobalAndReplicated check earlier to fail
fast, then use isVolumeForGlobalService instead of the now-redundant
isVolumeOnlyForGlobalServices function.
2026-02-02 12:30:57 +01:00
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
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
Pasha Sviderski
57205e1149
fix: new Compose deployment with volumes and --recreate flag ( fixes #176 )
2025-11-20 15:19:44 +10:00
Pasha Sviderski
89db50e8df
chore: consistent casing
2025-11-07 14:29:27 +10:00
Pasha Sviderski
3ac5992e1d
chore: use short container ID for stop operation in deploy plan
2025-11-07 13:53:30 +10: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
Anton Ovchinnikov and GitHub
63c4de512e
feat: Initial support for Compose configs ( #116 )
2025-09-26 21:24:10 +10:00
Pasha Sviderski
48dc1dd624
chore: delete unused image digest resolver
2025-08-25 20:36:56 +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
2e585d0183
feat: add --recreate flag for deploy command to force container recreation
2025-08-07 18:09:35 +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
Anton Ovchinnikov and GitHub
a54555cd13
feat(deploy): Recreate container when pull_policy set to Always ( #100 )
2025-07-21 14:47:38 +10:00
Pasha Sviderski
2b4da1e6fe
chore: remove anonymous volumes created by service containers when removing them
2025-07-02 11:16:00 +10:00
Pavel Sviderski
938e7d05c0
feat: add support for entrypoint, cpus, mem_limit, mem_reservation, priviliged, user to Compose deployment
2025-04-24 22:40:46 +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
33550be65e
fix: compose deployment plan preview
2025-04-23 12:04:04 +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
f08d9fe405
refactor: 'service run' create missing volumes satisfying all placement constraints
2025-04-20 19:57:30 +10:00
Pavel Sviderski
343357adf9
find optimal solution in VolumeScheduler
2025-04-20 18:53:18 +10:00
Pavel Sviderski
8ee551ca8f
cleanup
2025-04-20 11:15:07 +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
Pavel Sviderski
03c2681792
chore: cleanup unused machine filter struct
2025-04-16 22:06:11 +10:00
Pavel Sviderski
f3cb6657ae
chore: replace machine filter with placement constraint in service spec
2025-04-16 22:04:37 +10:00
Pavel Sviderski
000a8a1d3e
chore: init scheduler entities
2025-04-15 22:30:03 +10:00
Pavel Sviderski
7705db2c4f
refactor: machine listing for replicated plan
2025-04-14 22:04:39 +10:00
Pavel Sviderski
f8ebd94a79
feat(volumes): create and mount data volumes when running service with 'uc run' command
2025-04-11 21:28:36 +10:00
Pavel Sviderski
87331a9265
chore: add filter to ListMachines
2025-04-11 21:26:40 +10:00
Pavel Sviderski
97e032cb7b
chore: update ListVolumes to accept a filter
2025-04-10 20:31:52 +10:00
Pavel Sviderski
c6205d4f57
chore(volumes): map volume specs to container config, diff specs with volumes
2025-04-09 21:51:20 +10:00
Pavel Sviderski
0e80f2e5b2
chore: replace immutable hash with container spec comparison
2025-03-31 15:58:02 +10:00
Pavel Sviderski
64f6a4f3d3
chore: use original service spec instead of deriving from container, fixes diff for scale
2025-03-30 12:54:36 +10:00
Pavel Sviderski
3893005866
fix(compose): remove ServiceSpec validation for 0 replicas, it's handled when resolving defaults
2025-03-27 20:40:11 +10:00
Pavel Sviderski
641b11a92d
feat: implement --pull policy for run command: always, missing, never
2025-03-27 15:06:32 +10:00
Pavel Sviderski
7c7530f977
chore: add comments and TODOs about the disabled image digest resolver
2025-03-27 14:12:20 +10:00