98439b7743
feat: support PID namespace mode in Compose ( #276 )
...
This adds `pid: host` compose key support.
Modelled after #238 .
See: #237
Signed-off-by: Miek Gieben <miek@miek.nl >
Co-authored-by: Pasha Sviderski <me@psviderski.name >
2026-03-24 16:18:53 +10:00
Pasha Sviderski
3f95583dd4
fix: plan formatting for service scaling (update verb), fix image and replicas diff
2026-03-19 15:29:21 +10:00
Pasha Sviderski
b4b1232375
refactor: format deployment plan for caddy (uc caddy deploy)
2026-03-19 14:22:01 +10:00
Pasha Sviderski
e4cb71b878
refactor: simplify and speed up plan output formatting by removing name resolver dependency
2026-03-19 13:14:09 +10:00
Pasha Sviderski
0f4c211002
refactor: format compose deployment plan with style, display target context
2026-03-18 21:26:22 +10:00
Pasha Sviderski
838839a7e5
refactor: update deployment plan structure to use typed volume and service operations
2026-03-16 17:54:01 +10:00
Pasha Sviderski
d9934b9dba
feat: support compose stop_grace_period to change timeout before sending SIGKILL
2026-03-04 14:07:22 +10:00
Pasha Sviderski
ce3cb8a34f
feat: add --skip-health flag to bypass health monitoring during container deployment
2026-02-28 16:26:48 +10:00
Pasha Sviderski
7b88040c73
fix: rolling container replacement: if new container fails, rollback and run old container only if it was running
2026-02-28 14:29:48 +10:00
Pasha Sviderski
7a9eac593f
feat: implement container health monitoring and rollback during rolling deployment ( closes #24 )
2026-02-27 21:36:40 +10:00
Pasha Sviderski
2940965e31
fix: recreate container on ulimit changes, add test
2026-02-25 16:38:44 +10:00
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