We are groot! Merging garden and groot (ACTION MAY BE REQUIRED)


Julz Friedman
 

Hi cf-dev garden and groot fans!


I'd like to quickly discuss some changes we're making to garden (the cloud foundry app runtime’s container api) and groot (the next generation rootfs management library which has been being developed as a separate release at https://github.com/cloudfoundry/grootfs-release) with the next version of garden-runc-release.


Tl;dr: in the next garden-runc-release we're going to ship grootfs built-in. Therefore we're EOLing the separate grootfs-release (eventually we’ll also EOL the existing aufs-based rootfs management code in garden-runc, although for now you can opt back-in to it if you need to; we have no timeline for this yet). This means there will be no more updates to grootfs-release: users of grootfs can simply update to the latest garden-runc-release (see notes below on migrating - tl;dr: you don’t have to do anything!).


For people who haven’t been using grootfs so far, what this means is from now on you just need to deploy garden-runc-release as usual and you’ll get the nice new grootfs stuff for free -- see below for why this is good. If you have a specific need to keep using the previous aufs-based garden rootfs management code (sometimes known as "garden shed") you'll be able to opt back in to this using the `experimental/use-shed.yml` ops file in cf-deployment [0]. Note that this flag is deprecated and will, at some point, go away, so please let us know if there's anything preventing your migration to the new built-in overlayfs-based groot so we can make sure it gets fixed!


## Migrating


Migration is easy:


  • if you're already using garden and groot separately via cf-deployment, just do nothing, things will continue to work (the use-grootfs.yml ops file will become a no-op in cf-deployment).

  • If you’re deploying without cf-deployment, you’ll need to stop deploying a separate grootfs job (grootfs is deployed automatically inside garden-runc-release v1.11.0).

  • If you're using garden’s built in rootfs management, and you do nothing, next release you'll be using groot however (Action required!) we do recommend people in this case either combine the next garden release - garden-runc-release v1.11.0 - with a stemcell upgrade or perform a `--recreate` deploy, to get rid of any leftover disk space used by the existing rootfs management code’s data directories.


## Why is this good?


Under the covers, grootfs uses the `overlay` filesystem instead of `aufs`, which is better supported in modern kernels. It's also a much more maintainable piece of code and uses the `containers/image` library rather than a docker dependency. It also supports running without needing to be root, which enables the rootless feature in garden. There’s a nice blog about groot here [1] and about rootless mode here [2].


[1]: https://cloudfoundry.org/blog/grootfs-container-image-management-cloud-foundry/

[2]: https://www.cloudfoundry.org/blog/route-rootless-containers/


Thanks!


Julz

Garden PM


Join cf-dev@lists.cloudfoundry.org to automatically receive all group messages.