Releases
v0.1
Changelog
df25b0d add --mode flag to run command
2a898b3 add -v|--volume to bind mount host path into a service container
5cb765d add Docker gRPC service to create and start a Docker container on machine
b236994 add EmptyResponse common message
708e14a add Exec and ExecMulti methods to corrosion API client
6d39174 add Healthy method to Container that derives it from status string
16120b8 add ListContainers and RemoveContainer methods to Docker service
1fb8a3d add ListServices method and ls CLI command
5621a84 add Mode to Service entity
43ddb5c add PullImage method to gRPC Docker service
4de7ecd add String() method for PortSpec to convert to publish format
2134f3c add a stub for Caddyfile controller
6d1c3aa add basic client TCPConnector to directly connect to a gRPC endpoint
349dd0d add basic e2e cluster lifecycle test
bfbcec3 add caddy/v2 dependency to generate a config
c635847 add comments
c2b466b add common Metadata message to be injected in reply messages by gRPC proxy
73d41c7 add compose-like progress for running service
f7c4490 add diagram for landing page with drawio source
5504951 add e2e test for global service creation and removal
e123f72 add exponential backoff for network errors in corrosion client
c29fa57 add favicons
34316c7 add helper Empty message
8e53fd4 add how it works section with diagram
6e0df53 add in docker service runner for corrosion
e73e389 add index on containers.machine_id
4ec87db add init machine to store when initialising a cluster
bda1123 add install_cli.sh script to be donwloaded at get.uncloud.run
5061097 add landing section to follow the journey and subscribe via email
bb96746 add logging for starting/restarting corrosion service
fa54584 add logo and project name
085ee28 add make targets to build and push corrosion image
24a824b add make targets to build and push ucind image
3c1d220 add methods to create, update, list, delete containers in store
336bdf9 add minor log
e5bda92 add opptimistic sleep on corrosion service start to wait for schema initialisation
daada3b add service inspect command, introduce squirrel for sql query building
f85b5dd add service rm CLI command
8db7ac8 add subprocess corrosion service runner
3d5fe0a add support for tcp cluster connections in uncloud config
2819ba6 add sync_status field to containers table
b016252 add terminal demo to hero section
d7bad5e add todo
40f9298 add updated_at field to containers table
848abbd add validation for PortSpec
cbe7c56 add value proposition section: Cloud-like experience you control
9755a69 allow one2many for ListContainers
5c74b09 allow running a service on a specified machine
94186b2 allow to subscribe to machine changes in the cluster store
1bcb883 auto resubscribe a corrosion subscription if an error occurs
ee580df automatically rotate WG peer endpoints if can't establish a connection
8bfb3b8 basic validation for hostname in port publishing
e9d0768 build corrosion image based on wolfi]
7b98ed3 calculate WG peer connection status
b25938a clean up corrosion systemd service
e82b78d comment DB schema
911522c comment out alpinejs
69c9167 configure corrosion bootstrap peers when initialising a machine
741378d create containers table in Corrosion store
9fcc319 create corrosion config
0effba0 create corrosion store when initialising machine
4479490 create custom NewSlogTextHandler log handler to override the json one patched by caddy pkg
26df674 define PortSpec type for publishing ports
c3ba43a delete old non-distributed cluster state, fix storing endpoints in store
e851f25 delete removed Docker containers from store, sync only uncloud labeled
3ee7cb6 describe features on landing
9dbcf1e do not build and deploy uncloud binary to dev machines
aa236aa do not init corrosion data dir in install.sh
2f6c988 do not rotate endpoints on daemon restart, handle endpoint changes on established reverse peer connections
f2e7307 enable Kit email subscription form
0652123 encode and decode published ports using container labels
5fe77c6 exclude Docker bridge br-[0-9a-f]{12} interfaces from machine routable IPs
a4be451 find first available machine for running a service
3f7726e fix SlogTextHandler to respect minimum log level
bee101a fix asset template in .goreleaser config
386e4e2 fix context in PullImage
6f9fc69 fix corrosion data dir, add reload to systemd unit
c0dff56 fix filter unmarshalling for list containers
c275273 fix install.sh to start uncloud.service after installing all systemd units
092fe25 fix navbar on mobile
0b5dd2f fix network peer configuration when just joining the cluster before store is synced
e6df331 fix options for machine list command
2c0cf28 fix peer status persistence, update status every second
042b44c fix port binding for host ports
1316dd3 fix proxy Director usage and close on shutdown
3ce9c8b fix run command, support 1 replica and global mode
190d0de fix warnings on landing
2fd1ee2 fix: access to /run/uncloud.sock for a non-root user when initialising a fresh machine
2eff7d1 format
bb77ff9 format
8a3f003 format machine command flags
11612a8 forward NotFound errors from StartContainer and RemoveContainer
5c96f75 generate a name for the service
7556f8c generate basic caddy.json with empty http and https servers
2b3f325 generate caddy config with routes from published http(s) ports
035601d generate container name and assign service labels to container
6951221 github and get started links in navbar
cedafd0 implement ClusterMembershipStates for corrosion admin client
9cb4b35 implement PortSpec parsing
6d4698f implement Query in corrosion API client
88ce2d5 implement RunService for replicated mode with only 1 replica
2727c3c implement RunService in global mode and RemoveService
93dfa5c implement admin client for Corrosion admin API
99c9aab implement more consistent InspectService that broadcasts Docker requests to all machines
b73577e implement subscription in corrosion client
5094149 improve error message for adding machine that already exists in the cluster
22bca16 include alpha-numeric random string generation in secret package
95175d1 init Dockerfile to run machine in container
6eb373e init InspectService method
667ecad init cluster store backed by corrosion
c80de16 init corrosion API client
bd0e7f4 init corrosion admin client in machine
18ec186 init landing page template
7378500 init ucind (Uncloud in Docker) provisioner
7aa7a9f init ucind CLI commands
c80c75e install.sh: download corrosion binary from github release
498d35e install.sh: install corrosion systemd service
cf5818d merge ucind cluster configuration to the user’s uncloud config
7d47d27 minor
bf10b21 minor comment
2835eda minor landing wording update
21d55dc minor refactor e2e cluster test
9c9e143 minor rename
deedbcb minor validation for port
19d53c4 move Docker management from network controller to standalone DockerManager
24371eb move Docker manager to docker package
5e79697 move RunService from CLI to the client, print output in the command
3ac166e move common api types to api package
17b96a8 move default uncloud socket to /run/uncloud/uncloud.sock
a6ccd60 move fs and file ownership related funcs to fs package
5c1a3dd move generic docker types to top level docker package
e8908ce parse --publish ports into spec
4088fdf print image pull progress when running a service
bdd034d proper terminate all background processes in ucind containers
871fd8c proxy uncloud.sock socket to tcp port when running machine in container
ca607ee pull corrosion image if doesn't exist
a40fd61 refactor RemoveService using InspectService
035f448 refactor cluster network related constants
81cf5f5 refactor corrosion admin client to establish a connection on every command
06a4001 refactor corrosion client to accept custom http client, fix backoff for every request
2f7463e refactor corrosion into interface service
68845e7 refactor corrosion service init for machine
a4247b0 refactor grpc proxy backends to use machine management IP in metadata, including local responses
00dbbec refactor grpc-proxy backends to enhance responses from local backends with metadata in one2many mode
6736839 refactor machine ls command: move formatter logic to the command
2c62e1f refactor machine name generation using secrets package
d922f7b reformat index.html
8fbf406 relax relationship between corrosion service, init cluster with new store
417427b remove duplicate ErrNotFound in client
be2a26e remove example from run command
1ec3376 remove indentations from corrosion config
b688742 remove the concept of cluster user (at least the current implementation)
8eea34d remove wrong TODO
b310248 rename site -> website
d36429e replace API server with transparent gRPC proxy that routes requests to local machine API
c3d3a42 run corrosion in Docker as uncloud user, bind mount data dir
01a71b4 run each container in global service in parallel
d315958 run service container in uncloud Docker network
5bf3cba sketch run command
840943b split corrosion client subscription in a separate file
518eae9 split corrosion queries in a separate file, make subscription more consistent with queries
3287691 start corrosion service even when machine is not initialised to be able to init cluster
77890b8 strip one proto layer in ListMachines method
54a8b09 subscribe to Docker container events with backoff
6b80ef9 subscribe to container changes in Caddyfile controller
4493bb3 support gRPC proxy to remote backends
5da1fc5 support providing TEST_CLUSTER_NAME for e2e tests
b4c2ec3 sync new and updated containers to cluster store, no deletion yet
d5f0bca ucind: call cleanup on exit as well, e.g. main process crash
cd60d51 ucind: create machines in containers with published API ports
4876712 ucind: init cluster with created machines
faf3378 ucind: wait for machine to become ready through polling API
913fb2d update ListMachines to include machine state from Corrosion membership
d02fc4d update Makefile to remove built binary
91f8709 update README with basic Quick start
6daa129 update TODO
410f744 update dind machine image to run dockerd in background
6a4a7f2 update e2e lifecycle test to test store reconciliation on every node
f06dd86 update existing WG peers instead of replacing to not interrupt and lose track of handshakes
6c19708 update hero
ba67b96 update install.sh to download uncloudd binary from the latest GitHub release
2e00632 update landing CSS
fd3ad91 update network controller to reconfigure network peers on machine changes
5377899 update publish flag description with lb and host formats
21e70dd update quick start links on landing
a54666a update run command to run a stub service container on the connected node
3e9718f update store schema when configuring corrosion, create machines table
411c339 upgrade to Go 1.23
61dc972 use ls command instead of list by default
c70c8a6 validate machine info before returning in ListMachine
8bddbec wait for test cluster to be ready (all machines up)
3a64477 watch for peer endpoint changes and preserve in machine state
1c8e60a workaround cgroup race in dind
You can’t perform that action at this time.