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
442f1d97a1
fix: uc deploy should not crash in empty git repository ( #275 )
...
Co-authored-by: Anton Ovchinnikov <anton@tonyo.info >
2026-03-19 10:16:03 +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
1735ef9521
refactor: GetContextOverrideOrCurrent to check if config used
2026-03-17 20:21:54 +10:00
Pasha Sviderski
940732e91c
fix: sshcli unit test and lint
2026-03-14 15:04:50 +10:00
Pasha Sviderski
9e4c759ffc
fix: separate stdout and stderr in SSH CLI executor to prevent output contamination ( closes #270 )
2026-03-14 14:56:04 +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
255448a59c
chore: migrate to hub/v2 and bubbletea/v2
2026-03-10 19:47:25 +10:00
Pasha Sviderski
9e39f03f75
chore: lint
2026-03-10 18:57:51 +10:00
Pasha Sviderski
33fcb2fe74
chore: migrate to lipgloss/v2
2026-03-10 18:54:34 +10:00
Pasha Sviderski
a67f936cc1
chore: wait for known missing changes during the initial cluster store sync
2026-03-09 17:40:51 +10:00
Pasha Sviderski
e6f013dbc8
fix: skip Tailscale addresses for using as auto-detected WireGuard endpoints
2026-03-09 17:38:25 +10:00
Pasha Sviderski
51c7b5ba8f
feat: add --wg-endpoint flag to 'uc machine add/init' to specify wireguard endpoint for the machine instead of auto-detecting
2026-03-06 15:39:14 +10:00
Pasha Sviderski
1f328e99d5
fix: remove the incorrect e2e test for updating machine endpoints with empty list
2026-03-04 14:04:46 +10:00
Pasha Sviderski
2405b156e4
chore: validate endpoints is not empty in update machine requests
2026-03-03 19:04:41 +10:00
Pasha Sviderski
4de17cb63c
chore: delete the obsolete 'machine token' command
2026-03-03 18:03:06 +10:00
Pasha Sviderski
3056e2af11
feat: add support for healthcheck in Compose
2026-02-25 14:54:24 +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
a4a8e70f9c
fix: sshcli tests
2026-01-28 19:00:53 +10:00
Pasha Sviderski
ce46a67d6d
fix: ssh args for machine init/add when using ssh+cli
2026-01-28 17:44:54 +10:00
Pasha Sviderski
808bda67d4
chore: remove unused constants
2026-01-28 17:28:35 +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
Pasha Sviderski
76affeb6b2
chore: minor formatting for 'wg show' command, enrich Unimplemented error with >=0.16 requirement
2026-01-10 18:36:56 +11:00
Justin Bradford and GitHub
a945291371
feat: Add uc wg show command to inspect a machine's uncloud wireguard network ( #161 )
...
* feat: Add `uc wg show` command to inspect a machine's uncloud wireguard network (draft / work in progress)
* Compile proto files with `make proto-mise`
* Fix lint errors
* Output peers in tabwriter table
* Lookup machine name for wireguard peer public key
* Add --machine flag to `uc wg show` to proxy call to specific machine
* Small refactor to move wg show logic out into a separate function
2026-01-10 16:49:35 +11: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
Anton Ovchinnikov and GitHub
2c34ba7eff
fix(configs): Create non-existent parent directories automatically ( #233 )
2025-12-29 11:38:06 +01:00
Pasha Sviderski
f86e63c851
chore: reduce the default gRPC connection timeout to proxied machines 20->10s
2025-12-23 19:48:57 +10:00
Pasha Sviderski
9bd5ffcd2d
chore: update ucind cluster to wait for initial store sync and cluster readiness
2025-12-23 19:02:04 +10:00
Pasha Sviderski
8d8acd5410
chore: wait for the initial store sync and cluster components before serving cluster gRPC requests
2025-12-23 19:00:09 +10:00
Pasha Sviderski
2345ee9856
docs: improve Caddyfile header and note about misconfigured caddy service, minor docs update
2025-12-22 16:31:15 +10:00
Pasha Sviderski
777615bc56
chore: add TODO to remove extra checks after upgrading clusters to perform store sync
2025-12-19 20:52:46 +10:00
Pasha Sviderski
bac34ebd0c
chore: save machine state file atomically
2025-12-19 20:12:46 +10:00
Pasha Sviderski
b2322e1c49
fix: WireGuard peers misconfiguration on joined machine by waiting for the initial store sync
2025-12-19 19:52:13 +10:00
Pasha Sviderski
436671457d
chore: pass current store DB version when adding new machine to cluster
2025-12-19 18:51:49 +10:00
Pasha Sviderski
fc847093d2
chore: new InspectMachine gRPC method that to return store DB version (lamport time)
2025-12-19 16:29:14 +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
5acf557675
chore: add --yes flag to 'uc machine init/add' to auto-confirm machine reset
2025-12-17 17:36:54 +10:00
Pasha Sviderski
425b974331
fix: panic when initialising new cluster with --connect
2025-12-16 11:28:11 +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
91a09d5d37
feat: add CLI connector for unix domain socket ( #186 )
...
* feat: Add cli connector for unix domain socket
* Update cmd/uncloud/main.go
---------
Co-authored-by: Pasha Sviderski <me@psviderski.name >
2025-11-25 21:45:07 +10:00
Anton Ovchinnikov
3c33973269
chore(exec): Update TODO regarding signal forwarding
2025-11-23 23:58:53 +01:00
Justin Bradford and GitHub
76b4369aa6
feat: store machine id on connection entries in Uncloud config so it can be removed with machine ( #182 )
...
* fix: Store machine id on connection entries so it can be removed when machine is
* Add "GetContextOverrideOrCurrent" helper method to cli and use in `uc machine rm` to clean up connections
2025-11-20 16:49:37 +10:00
Justin Bradford and GitHub
939645e144
refactor: Make --context cli flag a global option ( #174 )
...
* Make `--context` flag a global option and remove duplication
* Remove unused dns showOptions struct
* First pass of refactoring "active context" determination and validation
* Undo some refactoring in cli.go to keep diff more focused
2025-11-19 20:30:32 +10:00