Pavel Sviderski
|
33550be65e
|
fix: compose deployment plan preview
|
2025-04-23 12:04:04 +10:00 |
|
Pavel Sviderski
|
edad2429c5
|
chore: verify idempotency for compose deploy with volumes
|
2025-04-23 12:03:23 +10:00 |
|
Pavel Sviderski
|
b605a64fbe
|
chore: add e2e compose test with volumes
|
2025-04-23 10:41:24 +10:00 |
|
Pavel Sviderski
|
16c876d83f
|
fix: compare container specs with equate empty option (nil map == {} map)
|
2025-04-22 23:31:45 +10:00 |
|
Pavel Sviderski
|
d6ff62159d
|
fix: compose deployment: use mutex to correctly collect service specs
|
2025-04-22 22:48:06 +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
|
835c310987
|
chore: delete old basic-compose.yaml fixture
|
2025-04-21 12:50:13 +10:00 |
|
Pavel Sviderski
|
5fce84d33c
|
chore: cleanup compose-basic test
|
2025-04-21 12:49:44 +10:00 |
|
Pavel Sviderski
|
45497fd20c
|
chore: update api.ServiceClient interface to include service creation and removal
|
2025-04-21 12:48:21 +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
|
565a8d8366
|
chore: implement VolumeScheduler to determine what missing volumes should be created and where
|
2025-04-20 18:57:26 +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
|
f71fc57f34
|
chore: e2e tests for replicated and global deployments with volumes
|
2025-04-18 17:27:34 +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
|
4532b985d4
|
chore: populate ucind cluster machines with IDs
|
2025-04-16 22:01:33 +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
|
590a1b231f
|
chore(volumes): e2e test when volume doesn't exist
|
2025-04-13 12:43:23 +10:00 |
|
Pavel Sviderski
|
8709ac0ed5
|
chore: fix Errorf arguments
|
2025-04-11 21:34:07 +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
|
2f5a2c6344
|
feat(volumes): new 'volume create|inspect|ls|rm' CLI commands to manage volumes
|
2025-04-10 20:33:03 +10:00 |
|
Pavel Sviderski
|
97e032cb7b
|
chore: update ListVolumes to accept a filter
|
2025-04-10 20:31:52 +10:00 |
|
Pavel Sviderski
|
410a95ec88
|
chroe: add TODO to fix empty context in output message when adding machines
|
2025-04-10 20:29:52 +10:00 |
|
Pavel Sviderski
|
df4ab40e12
|
chore(volumes): add client methods for volume management, e2e test
|
2025-04-10 13:50:08 +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
|
13dea92311
|
chore(volumes): gRPC methods for managing Docker volumes
|
2025-04-08 16:33:35 +10:00 |
|
Pavel Sviderski
|
9100c22e7f
|
chore: new specs for defining service volumes
|
2025-04-07 21:00:26 +10:00 |
|
Pavel Sviderski
|
6125553a97
|
chore: introduce VolumeSpec supporting different volume types (bind, volume, tmpfs)
|
2025-04-04 21:22:54 +10:00 |
|
Pavel Sviderski
|
c9452f1509
|
chore: ignore uc binary in the repo root
|
2025-04-03 18:19:06 +10:00 |
|
Pavel Sviderski
|
25b173128a
|
feat(env): support env vars for services (both run command and compose)
|
2025-04-03 18:14:17 +10:00 |
|
Pavel Sviderski
|
4e40a93991
|
chore: remove anonymous volumes for ucind containers
|
2025-04-03 16:35:48 +10:00 |
|
Pavel Sviderski
|
9fc54c9d64
|
fix: format config.Path method
|
2025-04-03 16:35:00 +10:00 |
|
Pavel Sviderski
|
cacfca7a88
|
chore: print message about changed context for 'ctx use' command
|
2025-04-03 16:21:04 +10:00 |
|
Pavel Sviderski
|
b3885b0888
|
chore: activate the context of a newly initialised cluster
|
2025-04-03 13:38:48 +10:00 |
|
Pavel Sviderski
|
3ada89c4f8
|
fix: adding ucind cluster with tcp connections to config
|
2025-04-02 19:45:15 +10:00 |
|
Pavel Sviderski
|
20b2ca2ea5
|
feat(ctx): interactive ctx command to switch between cluster contexts
|
2025-04-02 16:31:26 +10:00 |
|
Pavel Sviderski
|
1bbefdd0d2
|
feat: add 'ctx ls' command to list available cluster contexts in config
|
2025-04-02 09:25:12 +10:00 |
|
Pavel Sviderski
|
f467fad84c
|
chore: rename cluster term to context in CLI and config, convert config toml -> yaml
|
2025-04-01 21:29:32 +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
|
0975cbab66
|
chore: handle RemoveContainer server-side that deletes container from machine db
|
2025-03-29 20:06:49 +10:00 |
|
Pavel Sviderski
|
615022c9ac
|
feat(scale): set file permissions for machine.db database to 600 (may container secrets as env vars)
|
2025-03-29 15:19:37 +10:00 |
|
Pavel Sviderski
|
ecbd4378e4
|
feat(scale): store container spec in local machine.db sqlite
|
2025-03-29 15:14:43 +10:00 |
|
Pavel Sviderski
|
1becd033e6
|
chore: rename CaddyConfigPath field
|
2025-03-29 11:39:45 +10:00 |
|
Pavel Sviderski
|
1cba1eef0a
|
refactor: handle CreateContainer server-side
|
2025-03-28 19:01:19 +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
|
1911e03c82
|
feat(compose): handle image pull policy
|
2025-03-27 15:15:57 +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 |
|
Pavel Sviderski
|
6e7fe405ef
|
feat(compose): partially implement image resolver (pinner) but disable for now
|
2025-03-26 20:42:41 +10:00 |
|
Pavel Sviderski
|
03c5c054e1
|
feat(compose): client methods for inspecting images
|
2025-03-26 20:38:41 +10:00 |
|
Pavel Sviderski
|
c42968c812
|
feat(compose): add InspectRemoteImage api endpoint to inspect images in registry
|
2025-03-26 20:37:53 +10:00 |
|
Pavel Sviderski
|
ffef41081b
|
feat(compose): add ContainerSpec.PullPolicy field to define when to pull image from registry
|
2025-03-25 11:03:19 +10:00 |
|
Pavel Sviderski
|
58b51b974c
|
refactor: postpone spec resolver initialisation when creating Deployment
|
2025-03-24 21:56:30 +10:00 |
|
Pavel Sviderski
|
2d923380a3
|
chore: compare container ports to spec in assertContainerMatchesSpec
|
2025-03-24 20:24:40 +10:00 |
|
Pavel Sviderski
|
3910101a88
|
refactor: embed ServiceSpecResolver into Deployment to handle spec only there
|
2025-03-24 20:10:28 +10:00 |
|
Pavel Sviderski
|
7a9d0cf9db
|
refactor: move compose and deploy packages under client
|
2025-03-24 14:41:50 +10:00 |
|
Pavel Sviderski
|
042dd594e0
|
refactor: decouple deploy and compose packages from client dependency
|
2025-03-24 14:38:16 +10:00 |
|
Pavel Sviderski
|
1471a94162
|
refactor(compose): move compose deployment from client to compose pkg
|
2025-03-24 11:11:36 +10:00 |
|
Pavel Sviderski
|
b1abd07dde
|
refactor: move api, client, compose packages to pkg
|
2025-03-22 18:43:00 +10:00 |
|
Pavel Sviderski
|
3757813b20
|
refactor: rename main module to github.com/psviderski/uncloud
|
2025-03-22 18:25:08 +10:00 |
|
Pavel Sviderski
|
f1a150821c
|
fix(compose): client.ImageInspect to handle broadcasted responses to multiple machines
|
2025-03-22 08:44:17 +10:00 |
|
Pavel Sviderski
|
874af1ba10
|
feat(compose): implement InspectImage rpc with broadcast support
|
2025-03-21 19:43:58 +10:00 |
|
Pavel Sviderski
|
2ad098c612
|
feat(deploy): introduce proto for InspectImage and InspectRemoteImage methods
|
2025-03-20 21:36:41 +10:00 |
|
Pavel Sviderski
|
4172cb826f
|
refactor: compose deployment plan to not use PrepareDeploymentSpec
|
2025-03-19 16:54:00 +10:00 |
|
Pavel Sviderski
|
041d51b74f
|
refactor: compose deployment with pluggable spec resolver, basic test
|
2025-03-19 16:28:17 +10:00 |
|
Pavel Sviderski
|
fb01604d21
|
fix: recreate containers only if spec changed by comparing spec hash
|
2025-03-19 13:11:04 +10:00 |
|
 Pavel SviderskiandGitHub
|
bd8bcbd2f9
|
Merge pull request #40 from cedws/userguide
|
2025-03-19 09:24:50 +10:00 |
|
Pavel Sviderski
|
1bbcfa8519
|
feat(entrypoint): allow to override service ENTRYPOINT for run command
|
2025-03-18 16:44:15 +10:00 |
|
Pavel Sviderski
|
e8715fce38
|
fix: list containers if some of them concurrently removed, fixes #33
|
2025-03-18 15:39:15 +10:00 |
|
Pavel Sviderski
|
a0a66f34c4
|
feat(connect): add --connect flag to connect to remote cluster machine without using config
|
2025-03-18 14:01:38 +10:00 |
|
Pavel Sviderski
|
b799b7518e
|
feat(compose): add TODO to address deployment idempotency
|
2025-03-17 20:32:14 +10:00 |
|
Pavel Sviderski
|
5bcbfc332d
|
feat(compose): deploy compose services without waiting dependencies
|
2025-03-15 20:45:02 +10:00 |
|
Pavel Sviderski
|
34574e41fc
|
feat(compose): plan compose deployment
|
2025-03-15 20:43:30 +10:00 |
|
Pavel Sviderski
|
c7355afa3d
|
refactor: move Confirm logic to common place from caddy deployment
|
2025-03-15 20:42:44 +10:00 |
|
Pavel Sviderski
|
a907fdb1af
|
chore: update todo
|
2025-03-15 20:41:57 +10:00 |
|
Pavel Sviderski
|
c9ba4adccb
|
chore: add todo for ServiceSpec that it may return a spec not equal to original
|
2025-03-15 20:41:02 +10:00 |
|
Pavel Sviderski
|
a0551d2d64
|
fix: print service endpoints for run service only when non-empty
|
2025-03-15 19:35:21 +10:00 |
|
Pavel Sviderski
|
76129ea056
|
refactor: include service name in deployment plan
|
2025-03-15 19:34:37 +10:00 |
|
Pavel Sviderski
|
6ffd35f596
|
feat(compose): parse Compose project and transform ports extension
|
2025-03-15 14:18:06 +10:00 |
|
Pavel Sviderski
|
0ef776e7f1
|
chore: add link to uncloud-dns repo in README
|
2025-03-14 22:01:19 +10:00 |
|
Pavel Sviderski
|
0b22b2136a
|
chore: add deployments and managed DNS features to README
|
2025-03-14 21:59:40 +10:00 |
|
Pavel Sviderski
|
e1530bb6f3
|
feat(deploy): load compose project
|
2025-03-14 21:41:06 +10:00 |
|
Pavel Sviderski
|
7fc07ce4bd
|
feat(deploy): init a new deploy command to deploy services from Compose file
|
2025-03-12 20:37:01 +10:00 |
|
Pavel Sviderski
|
eb42082955
|
fix(dns): update DNS records when reserving a new cluster domain, fixes #36
|
2025-03-11 21:12:00 +10:00 |
|
Pavel Sviderski
|
8719e37856
|
fix(dns): retry HTTP requests to verify Caddy reachability for up to 5 seconds
|
2025-03-10 21:26:02 +10:00 |
|
Pavel Sviderski
|
e1cc39b0d5
|
lint: variable collides with imported package name
|
2025-03-09 19:26:06 +10:00 |
|
Pavel Sviderski
|
efe646f54c
|
chore: validate unsupported tcp/udp protocols for ingress port
|
2025-03-08 19:07:51 +10:00 |
|
Pavel Sviderski
|
e130d803e4
|
fix(website): demo min height to not shrink before video is loaded
|
2025-03-06 17:30:16 +10:00 |
|
Pavel Sviderski
|
56e7e8baa2
|
chore(readme): cleanup coming soon features
|
2025-03-06 17:13:29 +10:00 |
|
Pavel Sviderski
|
b963ef39d1
|
chore(makefile): demo-reset target to reset machines before recording a VHS demo
|
2025-03-06 16:55:16 +10:00 |
|
Pavel Sviderski
|
1df0fa290f
|
chore(readme): add uc machine ls command
|
2025-03-06 16:54:35 +10:00 |
|
Pavel Sviderski
|
c3bb0c9f49
|
chore(readme): add Quick demo section with video, update how it works outputs
|
2025-03-06 16:49:58 +10:00 |
|