Pavel Sviderski
|
0b8495e964
|
feat: make all confirmation forms accessible
|
2025-05-01 14:12:12 +10:00 |
|
Pavel Sviderski
|
6068e24f4f
|
fix(ctx): panic: index out of range when only one context in uncloud config (closes #52)
|
2025-05-01 14:01:29 +10:00 |
|
 Pasha SviderskiandGitHub
|
7861d56dff
|
Merge pull request #54 from cedws/profiles
feat: add support for Compose profiles
|
2025-05-01 13:54:25 +10:00 |
|
Pavel Sviderski
|
38800924ed
|
fix(caddy): proxy to only healthy containers
|
2025-05-01 11:47:05 +10:00 |
|
Pavel Sviderski
|
cf7e333579
|
feat(dns-server): use embedded DNS server for all service containers
|
2025-05-01 11:27:27 +10:00 |
|
Pavel Sviderski
|
769f5e47c3
|
feat(dns-server): check system prerequisites when init/add machine: DNS port is not in use by another DNS server
|
2025-04-30 20:46:10 +10:00 |
|
Pavel Sviderski
|
6e1165ec57
|
chore(dns-server): make TCP server non-critical; do not exit if it fails to start
|
2025-04-30 17:46:44 +10:00 |
|
Pavel Sviderski
|
8d16da596c
|
feat(dns-server): run embedded internal DNS server on machine IP in uncloudd daemon process
|
2025-04-30 17:24:52 +10:00 |
|
Pavel Sviderski
|
d6c06828b3
|
fix(dns-server): fix constructor and log messages
|
2025-04-30 17:20:48 +10:00 |
|
Pavel Sviderski
|
fe93d91894
|
fix: attributes handling in SlogTextHandler for child loggers
|
2025-04-30 16:56:32 +10:00 |
|
Pavel Sviderski
|
3f70018e7c
|
fix: import cycle in pkg/api
|
2025-04-30 14:18:28 +10:00 |
|
Pavel Sviderski
|
70e9385032
|
chore(dns-server): implement resolver for service records that watches container changes
|
2025-04-30 14:13:48 +10:00 |
|
Pavel Sviderski
|
db3016fe89
|
fix: --file flag description for uc deploy cmd
|
2025-04-30 11:45:25 +10:00 |
|
Pavel Sviderski
|
c56385602e
|
chore(dns-server): authoritative responses for internal DNS queries and forwarding to ustream servers
|
2025-04-29 20:20:55 +10:00 |
|
Pavel Sviderski
|
fbbf839258
|
chore: init embedded DNS server
|
2025-04-28 21:36:04 +10:00 |
|
Pavel Sviderski
|
eee28e2ead
|
feat: add version flag to uncloudd binary
|
2025-04-26 19:17:26 +10:00 |
|
 Pasha SviderskiandGitHub
|
ef57b62625
|
Merge pull request #50 from cedws/version
feat: add version flag to main cmd
|
2025-04-26 19:17:01 +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
|
6c2759f315
|
feat: add --cpu, --memory, --privileged, --user options for 'service run'
|
2025-04-24 20:30:48 +10:00 |
|
Pavel Sviderski
|
72bf34632f
|
chore: map new container properties to Docker container configs
|
2025-04-24 17:24:58 +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
|
9413f1c0b1
|
feat: define essential container spec parameters
|
2025-04-24 13:37:25 +10:00 |
|
Pavel Sviderski
|
d8818ba770
|
chore: remove unnecessary fields from containers table in machine.db
|
2025-04-23 16:11:29 +10:00 |
|
Pavel Sviderski
|
440215b811
|
fix: TestInstallCmd test
|
2025-04-23 16:10:40 +10:00 |
|
Pavel Sviderski
|
02a418aafb
|
chore: add --version flag for 'machine init|add' to specify uncloud daemon version
|
2025-04-23 14:40:04 +10:00 |
|
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 |
|