github psviderski/uncloud v0.6.0

latest releases: v0.16.0, v0.15.1, v0.15.0...
10 months ago

Highlights

  • Extended Docker Compose support: 🎉 Added support for deploying services from Docker Compose files with volumes, environment variables, resource limits, and more.
  • New volume management: Create, list, inspect, and remove volumes across your cluster with the new volume command.
  • Context management: Switch between different cluster contexts using the new ctx command.
  • Improved resource control: Specify CPU, memory, and environment variables for containers.

Breaking changes

  • Configuration format changed from TOML to YAML
  • --cluster flag renamed to --context
  • Revised machine placement system using --machine flag instead of machine filters

Features and improvements

  • Volume management:

    • Full volume lifecycle management with uc volume create/ls/inspect/rm
    • Support for volume scheduling across machines based on service constraints
    • Automatic volume creation for services that need them
  • Compose support:

    • Deploy services from Docker Compose files with uc deploy
    • Support for volume, bind, and tmpfs mounts
    • Environment variables and resource constraints
  • Context management:

    • Switch between multiple cluster contexts with uc ctx
    • Manage multiple clusters with uc ctx ls and uc ctx use
  • Container improvements:

    • CPU and memory limits with --cpu and --memory flags
    • Environment variables via -e flag
    • Container user via -u flag
    • Log driver configuration
  • Machine management:

    • Support for selecting specific uncloud version during initialising (machine init) or adding (machine add) a new machine to the cluster

Changelog

  • 948201c add VolumeScheduler with one flaky test
  • df4ab40 chore(volumes): add client methods for volume management, e2e test
  • 590a1b2 chore(volumes): e2e test when volume doesn't exist
  • 13dea92 chore(volumes): gRPC methods for managing Docker volumes
  • c6205d4 chore(volumes): map volume specs to container config, diff specs with volumes
  • b3885b0 chore: activate the context of a newly initialised cluster
  • 02a418a chore: add --version flag for 'machine init|add' to specify uncloud daemon version
  • b605a64 chore: add e2e compose test with volumes
  • 87331a9 chore: add filter to ListMachines
  • 5fce84d chore: cleanup compose-basic test
  • 03c2681 chore: cleanup unused machine filter struct
  • 835c310 chore: delete old basic-compose.yaml fixture
  • 143e68c chore: do not set default volume driver to local, distinguish behaviour when it's set or not
  • f71fc57 chore: e2e tests for replicated and global deployments with volumes
  • 8709ac0 chore: fix Errorf arguments
  • c9452f1 chore: ignore uc binary in the repo root
  • badb8ec chore: implement EvalContainerSpecChange for new container properties
  • 565a8d8 chore: implement VolumeScheduler to determine what missing volumes should be created and where
  • 1acb0ff chore: implement VolumesConstraint to only schedule on machines with required volumes
  • 000a8a1 chore: init scheduler entities
  • 6125553 chore: introduce VolumeSpec supporting different volume types (bind, volume, tmpfs)
  • e5957d9 chore: map compose volumes to server spec, initial volume scheduling
  • 72bf346 chore: map new container properties to Docker container configs
  • 9100c22 chore: new specs for defining service volumes
  • 4532b98 chore: populate ucind cluster machines with IDs
  • cacfca7 chore: print message about changed context for 'ctx use' command
  • fcf164d chore: refactor schedulers to work with cluster state snapshot, VolumeScheduler updates state with scheduled volumes
  • 4e40a93 chore: remove anonymous volumes for ucind containers
  • d8818ba chore: remove unnecessary fields from containers table in machine.db
  • f467fad chore: rename cluster term to context in CLI and config, convert config toml -> yaml
  • f3cb665 chore: replace machine filter with placement constraint in service spec
  • 97e032c chore: update ListVolumes to accept a filter
  • 45497fd chore: update api.ServiceClient interface to include service creation and removal
  • edad242 chore: verify idempotency for compose deploy with volumes
  • 410a95e chroe: add TODO to fix empty context in output message when adding machines
  • 8ee551c cleanup
  • 20b2ca2 feat(ctx): interactive ctx command to switch between cluster contexts
  • 25b1731 feat(env): support env vars for services (both run command and compose)
  • f8ebd94 feat(volumes): create and mount data volumes when running service with 'uc run' command
  • 2f5a2c6 feat(volumes): new 'volume create|inspect|ls|rm' CLI commands to manage volumes
  • 1bbefdd feat: add 'ctx ls' command to list available cluster contexts in config
  • 6c2759f feat: add --cpu, --memory, --privileged, --user options for 'service run'
  • 938e7d0 feat: add support for entrypoint, cpus, mem_limit, mem_reservation, priviliged, user to Compose deployment
  • 9413f1c feat: define essential container spec parameters
  • 343357a find optimal solution in VolumeScheduler
  • 440215b fix: TestInstallCmd test
  • 3ada89c fix: adding ucind cluster with tcp connections to config
  • 16c876d fix: compare container specs with equate empty option (nil map == {} map)
  • 33550be fix: compose deployment plan preview
  • d6ff621 fix: compose deployment: use mutex to correctly collect service specs
  • 9fc54c9 fix: format config.Path method
  • f08d9fe refactor: 'service run' create missing volumes satisfying all placement constraints
  • 7db8bba refactor: cpu and memory under Resources struct
  • 7705db2 refactor: machine listing for replicated plan

Don't miss a new uncloud release

NewReleases is sending notifications on new releases.