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
809d1eca77
lint
2025-11-04 18:20:10 +10:00
Pasha Sviderski
882f2f5d03
feat(build,deploy): build service images using compose (bake/buildkit), push to cluster, and deploy
2025-11-04 18:14:42 +10:00
Pasha Sviderski
dde23b5549
chore: increase timeout 5->30s for waiting for machines to be ready in ucind cluster
2025-11-04 12:40:15 +10:00
Pasha Sviderski
6da8e98c62
chore: add TODO to refactor docker client method
2025-11-03 13:45:45 +10:00
Pasha Sviderski
328ace1fd1
chore: implement image template processing using git repo state (not enabled)
2025-11-01 15:50:36 +10:00
Pasha Sviderski
179289b504
test: InspectGitState when git not available
2025-10-31 17:34:55 +10:00
Pasha Sviderski
bd8a843972
chore: inspecrt git state without an error if git utility not available
2025-10-31 17:17:29 +10:00
Pasha Sviderski
7e366ff980
chore: add gitutils package to inspect local git repo
2025-10-31 15:57:43 +10:00
Pasha Sviderski
d0c23fa840
lint: fix ineffassign
2025-10-30 21:01:18 +10:00
Pasha Sviderski
65c3e0a68d
feat(build): print if no services to build, build dependencies --dep, check build configuration --check
2025-10-30 20:54:15 +10:00
Justin Bradford and GitHub
ba6290d616
feat: add "nearest.<service>.internal" mode to internal DNS ( #159 )
...
* feat: Adding a "nearest.service.local" mode to internal DNS
* Pass listenAddr to internal DNS server (rather than calling into network.MachineIP)
Also adds an exact round-robin via "rr.{service}" mode. Not sure we want that over random or not, though.
* Remove the resolved count and rotating round-robin. "rr.name" mode is now the same as default with random shuffle.
* Add test on nearest internal DNS lookup
* Add docs on internal DNS order modes
2025-10-29 14:25:59 +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
6ba98e4576
fix: 'uc image push' closed network connection error if takes >10s ( fixes #141 )
2025-10-13 20:19:46 +10:00
Pasha Sviderski
5aa85ab501
fix(push): always provide encoded empty auth config to work around panic in Docker
2025-10-09 15:14:10 +10:00
Pasha Sviderski
521ccf2026
chore(push): run unregistry only if containerd image store enabled for docker
2025-10-09 12:48:51 +10:00
Pasha Sviderski
a30ed600b6
chore: update docker and compose Go dependencies to the latest versions
2025-10-08 13:56:58 +10:00
3e804d9ecc
feat: set UNCLOUD_MACHINE_ID in service container ENV ( #135 )
...
* Set machine id in service container ENV
* Add machine id to clone of the container's env map to avoid exposing serialization format
* fix: panic on setting UNCLOUD_MACHINE_ID env var when Env is nil in the spec
---------
Co-authored-by: Pasha Sviderski <me@psviderski.name >
2025-10-07 14:12:00 +10:00
Pasha Sviderski
784d86d8e8
fix: test build for docker server
2025-10-03 21:10:02 +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
82fd9744bf
chore: remove unused imports
2025-10-03 15:03:19 +10:00
Pasha Sviderski
cdff036935
feat(images): gRPC client and server for ListImages
2025-10-03 14:23:18 +10:00
Pasha Sviderski
59074a275f
chore(images): initialise Docker service with containerd client
2025-10-02 15:51:54 +10:00
Pasha Sviderski
92975eec51
feat(images): add gRPC proto ListImages
2025-10-02 12:50:53 +10:00
Pasha Sviderski
fa004d63bb
chore: add firewall rule to allow cluster machines to push to other machines unregistry
2025-10-01 12:34:03 +10:00
Pasha Sviderski
ae458d260f
chore: refactor duplication
2025-09-30 15:42:01 +10:00
Pasha Sviderski
bcc504b8cc
chore: internal Docker client PushImage
2025-09-30 13:58:34 +10:00
Pasha Sviderski
e0045c7570
chore: refactor gRPC docker client
2025-09-26 21:24:56 +10:00
Pasha Sviderski
bc6f2fd49d
chore: fix docker client CreateContainerWithImagePull, add WaitPortPublished
2025-09-26 21:24:56 +10:00
Pasha Sviderski
cd25b973ea
fix: docker client PullImage
2025-09-26 21:24:56 +10:00
Pasha Sviderski
27bbbe7186
chore: internal docker package with handy PullImage and CreateContainerWithImagePull methods
2025-09-26 21:24:56 +10:00
Anton Ovchinnikov and GitHub
63c4de512e
feat: Initial support for Compose configs ( #116 )
2025-09-26 21:24:10 +10:00
Justin Bradford and GitHub
2d361d3ee6
Adding machine.service.internal dns entries ( #123 )
2025-09-24 20:06:54 +10:00
Pasha Sviderski
977fdf3cc3
chore: add Proxy for proxing local connections to a remote TCP address using the dialer
2025-09-24 19:52:37 +10:00
Pasha Sviderski
08f233c5b1
fix: auto-detect containerd.sock path and conditionally start unregistry
2025-09-23 15:10:34 +10:00
Pasha Sviderski
9438654d99
docs: fix comment in schema.sql
2025-09-23 12:21:45 +10:00
Pasha Sviderski
b6b8286118
feat: run embedded unregistry on machine IP in uncloudd daemon
2025-09-19 20:43:20 +10:00
Pasha Sviderski
3db07ca2d4
feat: allow setting config and connection with UNCLOUD_CONFIG and UNCLOUD_CONNECT env vars
2025-09-16 10:17:44 +10:00
Pasha Sviderski
f8fe3c7af3
feat: --no-install flag for 'machine init/add' to skip installing Uncloud daemon and dependencies #122
2025-09-15 20:44:35 +10:00
Pasha Sviderski
b6e9766f40
lint: gRPC status.Error for static error messages
2025-09-15 17:11:12 +10:00
Pasha Sviderski
831c581e0f
feat: try each cluster connection in order until one succeeds, add progress spinner
2025-09-13 21:12:20 +10:00
Pasha Sviderski
bc078472d4
feat: add -y|--yes flag for 'us deploy' to auto-confirm deployment plan
2025-09-12 22:52:06 +10:00
Pasha Sviderski
7b88b8b810
fix: write generated Caddyfile to disk only if succesfully loaded into local Caddy (means valid)
2025-09-10 16:59:31 +10:00
Pasha Sviderski
97bdb8eae1
fix: skip validation for user-defined Caddy configs if caddy not running locally
2025-09-10 15:04:45 +10:00
Pasha Sviderski
5baa8087e5
chore: load Caddy config via admin API instead of watching Caddyfile change on fs
2025-09-09 19:10:32 +10:00
Pasha Sviderski
d25864e52f
feat: automatically generate a unique 'default-N' context name for new cluster ( fixes #113 )
2025-09-08 20:35:17 +10:00
Anton Ovchinnikov
ec2787c99c
fix: Handle implicit relative path for config
...
Fixes #117
2025-09-07 15:58:09 +02:00
Pasha Sviderski
b046b78398
feat: migrate Caddy to generated Caddyfile, mount persistent data volume
2025-08-22 19:51:15 +10:00
Pasha Sviderski
e99e769455
chore: add Caddy gRPC service to retrieve Caddyfile config from machines
2025-08-21 17:04:42 +10:00
Pasha Sviderski
11949eeb3b
chore: include validation errors for user-defined Caddy configs as a comment in Caddyfile
2025-08-21 14:01:24 +10:00