Skip to content

v0.1

Latest
Compare
Choose a tag to compare
@psviderski psviderski released this 24 Jan 11:18
· 1 commit to main since this release

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