containerd 1.0.0-alpha3 Another released alpha brings us closer to a stable release! This release contains more changes to the event system, cleanup of the process execution model and several bug fixes. Please download the binaries provided and light them on fire. Please report issues through https://github.com/containerd/containerd/issues. Your feedback is extremely important at this stage, so please don't be bashful about letting us know what you think. Upgrading With changes to the `Tasks` service and the `Events` service, it is recommend to full upgrade containerd and any constituent shim processes. Running with previous versions may effect task startup and event distribution from the shim. These changes were done to ensure API consistency. No changes to the `ctr` tool or storage formats should affect compatibility. If there are changes that affecting compatibility that weren't listed here, please file an issue. Process Exec More work has been undertaken to merge the behavior of container tasks and exec processes. The `Task` object no longer exists. The user now interacts with only processes. The main container processes is started through `Start` method, while processes can be added to the container with `Exec`. Event Filters Events now support full filtering. Filters act on events at publish time, per subscriber, allowing a subscriber to receive only relevant events. The same filtering syntax and behavior used on other APIs has been added here except that we autogenerate the available fields using protobuf definitions. The following example will match all events having to do with tasks in the `bb` namespace: ```console $ ctr events 'topic~=/tasks/.+,namespace==bb' ``` Event specific data can even be selected upon. The following example will match *any* event that has a `container_id` field with the value `mycontainer`. ```console $ ctr events 'event.container_id==mycontainer' ``` The above will actually decode event data, if known to containerd, and match regardless of the particular type, allowing this to act on unrelated event types without changing syntax. Events API The `Publish` method no longer takes an `Envelope` message as an argument and a new `Forward` method has been added. While this change seems superficial, it actually has the effect of avoiding a serialization round trip when forwarding events from other backends, such as container shims. This change is not backwards compatible with previous alpha releases. Unmanaged Root Filesystem Container's can now be run without snapshots using the `ctr` tool. If the `--rootfs` flag is provided, the positional argument for image will now be interpreted as a filesystem path. The following is an example: ```console ctr run --rootfs --tty /my/root/fs mycontainer ``` Shim CGroup Container shims may not be started in a specific cgroup with a parameter passed at task creation time. Changes 0fa76584 Merge pull request #1280 from stevvooe/alpha3 916254e4 release: prepare for 1.0.0-alpha3 c8b4e4db Merge pull request #1277 from crosbymichael/tty-block ee2dea2b Merge pull request #1278 from stevvooe/update-oci-spec bf4838eb Shutdown console after process exits 610e1a25 vendor: update OCI image-spec dependency 8b0a0400 Merge pull request #1268 from crosbymichael/exec-state f945cdc7 Update windows locking code d18af869 Update for epoll console handling e827adaf Update windows with exec create/start actions 83b27db9 Check status for stopped processes before wait cd00216f Rename TaskStatus to Status 504033e3 Add Get of task and process state 2974e485 Add no-criu flag for running tests 9f089656 Change Exited/Status to SetExited/ExitStatus a2a34519 Implement Exec + Start for tasks service 63878d14 Add create/start to exec processes in shim 2533bfea Merge pull request #1271 from stevvooe/autogenerate-fieldpaths c857ba2d events: autogenerate fieldpath filters bb7b41ad Merge pull request #1269 from stevvooe/plumb-correct-interfaces 7ed88c1e linux/shim: use events.Publisher interface 92d737f4 Merge pull request #1259 from dqminh/epoll-io 834f55df Merge pull request #1264 from stevvooe/event-filters af2d7f0e events: initial support for filters 4ba6d8e5 Merge pull request #1267 from crosbymichael/bump-runc 2386062c Update runc to e775f0fba3ea329b8b766451c892c41a3d4 ce07fa04 Merge pull request #1263 from crosbymichael/no-shim-events f86d5ae0 Merge pull request #1262 from dmcgowan/more-snapshot-tests 7b6ff6ec event forwarding without shim 8e534658 use epoll to manage console i/o in linux d28126f0 Handle kernel related ci failure a7c44f00 Add snapshot test cases for former issues 20fa6aee Merge pull request #1182 from AkihiroSuda/rootfs 183a6ca8 Merge pull request #1013 from AkihiroSuda/oci-export de2671b7 bump vendor for containerd/console update b518f11d client: add Import() and Export() for importing/exporting image in OCI format 752d253f client, ctr: allow specifying unmanaged rootfs dir 1a054c67 Merge pull request #1134 from crosbymichael/shim-cgroup 4e299a9a Merge pull request #1254 from stevvooe/close-channel 16797276 Merge pull request #1230 from dmcgowan/snapshot-client-testsuite fdea1cea Merge pull request #1256 from dmcgowan/fix-ingest-file-not-exists afe0ce35 Merge pull request #1255 from stevvooe/multi-delete 585f7d64 Skip test on windows ccbb0352 Convert file not exists to status not found 83ac8748 cmd/ctr: allow deleting multiple containers at once a1f75096 events: close channel explicitly 98a86c4d Add ShimCgroup path for placing shim in cgroup d4349eff Merge pull request #1251 from crosbymichael/apparmor a0a5cc77 Add user namespace support to client c3872b84 Move RootPath to fs package da5c72c3 Run snapshot test suite for metadata and client