Lots of good stuff in this release, unless you really love trying to guess the right number to set garbage collection thresholds to:
Better Garbage Collection!
Garbage collection of root filesystem layers:
- Now bases the collection threshold on actual downloaded layer sizes plus reserved disk quotas (i.e. it accounts for the maximum amount of actually-used space in the grootfs store).
- Sensibly defaults to the size of the data disk minus a reserved amount for other jobs in the same cell (15GB, by default). If this is lower than the disk size then we run garbage collection on every create, which is the Right Thing To Do in this case (being over threshold does not cause creates to fail, it just causes GC to run).
- Should not require operator interaction to do the Right Thing
- Has lots more documentation here.
Action Required For Existing Consumers: If you are manually setting graph_cleanup_threshold_in_mb
you should remove this property to allow garden to calculate the threshold for you. If you would like to specify a different amount of reserved space for other jobs, you can set grootfs.reserved_space_for_other_jobs_in_mb
.
Image Management Improvements
- Layers with Opaque Whiteouts are now properly supported. This previously caused a small number of docker images to have empty directories which should not have been empty.
- Grootfs is now used by default in the standalone
gdn
binary - Layer sizes are now properly validated in all places
- Fixed support for Azure docker image repositories
Miscellaneous Good Things
- Processes with their own
Image
and theOverrideContainerLimits
field specified can now override cpu and memory limits - Removed the
AllowNetworks
property since it never worked (setting it will continue to do nothing, as before- but at least we no longer advertise a property that doesn't do anything) - Ensured GraceTime works for existing connections (#58)
- Richer errors when a process fails to launch due to the requested binary not being present in the container (useful for e.g. falling back from bash to sh)