Skip to content
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