Pasha Sviderski
0a9a1db815
fix: try other connections when ssh+cli connection fails, enable spinner for ssh+cli
2026-03-27 16:58:05 +10:00
Pasha Sviderski
21c65b9dbe
refactor: remove irrelevant property from pid unit test
2026-03-24 18:59:15 +10:00
Pasha Sviderski
86251a9354
lint
2026-03-24 18:56:56 +10:00
Pasha Sviderski
30bcb021d2
refactor: move StopGracePeriod from ServiceSpec to ContainerSpec
2026-03-24 18:41:01 +10:00
Pasha Sviderski
ada9bec2d4
refactor: remove docker dependency for Pid container property
2026-03-24 18:29:45 +10:00
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
Miek Gieben and GitHub
2ab58d24d4
chore: modernize the codebase using go 1.26 ( #278 )
...
This runs:
```
go run golang.org/x/tools/gopls/internal/analysis/modernize/cmd/modernize@latest -fix ./...
```
over the codebase, as this is using go 1.26, it can also use the new
new() functionallity so AsPtr and boolPtr is are needed anymore.
Signed-off-by: Miek Gieben <miek@miek.nl >
2026-03-21 21:16:09 +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
d2703cbc6b
fix: remove extra line between services in deploy plan
2026-03-18 21:41:54 +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
68661e57c3
refactor: tui package for CLI styles and prompts, restyle confirmation
2026-03-18 16:25:25 +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
1525d182b5
feat: add cluster context support in Compose with x-context extension
2026-03-13 18:37:36 +10:00
Pasha Sviderski
8ae38cfd57
feat: add shm_size support in Compose and --shm-size flag for 'uc run' ( closes #267 )
2026-03-12 22:09:28 +10:00
Pasha Sviderski
33fcb2fe74
chore: migrate to lipgloss/v2
2026-03-10 18:54:34 +10:00
Pasha Sviderski
51b8c29d63
fix: typo
2026-03-09 17:38:37 +10:00
Gabriel and GitHub
a507b202ec
fix: create AAAA DNS record for IPv6 machines" ( #257 )
...
* chore: update gitignore
* fix: create AAAA DNS record for IPv6 machines"
* test: randomize execution order to prevent order-based bugs in tests
2026-03-04 15:17:27 +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
b48ebe2acc
chore: UNCLOUD_HEALTH_MONITOR_PERIOD accepts duration (10s, 500ms, 0)
2026-03-01 08:08:57 +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
e6705599b3
chore: rename env var UNCLOUD_DEFAULT_HEALTH_MONITOR_PERIOD_MS -> UNCLOUD_HEALTH_MONITOR_PERIOD_MS
2026-02-28 16:03:36 +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
17c1bb5c21
feat: add WaitContainerHealthy client method and health check utilities
2026-02-27 21:28:11 +10:00
Pasha Sviderski
a5a9ef5444
chore: init container healthcheck const
2026-02-26 19:39:49 +10:00
Pasha Sviderski
2940965e31
fix: recreate container on ulimit changes, add test
2026-02-25 16:38:44 +10:00
Pasha Sviderski
185cf19a0c
chore: minor full-spec test change
2026-02-25 16:03:28 +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
3056e2af11
feat: add support for healthcheck in Compose
2026-02-25 14:54:24 +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
fe56d6d708
chore: always run proxy to virtualised Docker on macOS for 'image push' except OrbStack
2026-02-23 20:06:23 +10:00
14056cc584
fix: format IPv6 addr correclty for HTTP URL ( #254 )
...
* fix: format IPv6 addr correclty for HTTP URL
* test: cover changes
* test: refactor
---------
Co-authored-by: gm0stache <gm0stache@noreply.codeberg.org >
2026-02-16 21:19:52 +01:00
Dimitar Dimitrov and GitHub
d3ee7399eb
fix: support image push when using Rancher Desktop locally ( #251 )
...
Rancher Desktop is a free alternative to Docker Desktop (which prohibits
commercial use) and has gained significant popularity. When running
Rancher Desktop on non-native Docker platforms such as macOS and
Windows, the secondary tunnel from the host OS to the Docker's Linux
machine is necessary. At the moment, the check for this seems to be
based on the vhost name of the docker engine's VM.
For Rancher Desktop it seemms to be `lima-rancher-desktop`:
$ docker info --format 'json' | jq .Name
This might not be the best approach but is simple and should save a lot
of headaches for a lot of people until a potentially better solution is
devised.
See also: https://github.com/psviderski/unregistry/issues/62
2026-02-15 23:04:57 +01: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
Pasha Sviderski
1d4dbd96ce
chore: minor sshcli refactgor
2026-01-28 18:17:55 +10:00
Pasha Sviderski
476a2d57ca
fix: reset already initialised machine on 'uc machine init' when using ssh+cli connection
2026-01-28 18:08:57 +10:00
Pasha Sviderski
87e49dfb62
chore: label temporary socat proxy containers created by 'uc image push' with uncloud.managed
2026-01-28 17:40:15 +10:00
Pasha Sviderski
c91a964513
chore: make ssh+cli connections reuse one SSH connection via control socket. Fix image push
2026-01-28 16:49:08 +10:00
Nick and GitHub
3bd9400051
feat: add support for ulimits in compose and container creation ( #221 ) ( #244 )
...
* feat: add support for ulimits in compose and container creation ([#221 ](https://github.com/ipaddicting/uncloud/issues/221 ))
* refactor: move Ulimits to ContainerResources and use map, also removed GEMINI.md.
2026-01-20 16:17:54 +10: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