Tags: DockerNuts/containerd
Tags
containerd 1.0.0 Welcome to the v1.0.0 release of containerd! `containerd` provides a daemon for managing running containers. The new containerd is designed for use designed for use in container-based systems, like Docker and Kubernetes. It provides minimal abstractions over the operating system that gets out of the way. A short list of differences from the 0.2 version of containerd follow: - New runtime model based on tasks and containers - Client-defined image push/pull, allows fully replaceable image distribution - End-to-end event system - Snapshot-based container storage system - Content-addressed image storage system - Arbitrary metadata storage for association with containerd objects - Extensive, namespaced [GRPC API](https://github.com/containerd/containerd/tree/master/api/services) - Rich API Client ([getting started](https://github.com/containerd/containerd/blob/master/docs/getting-started.md) and [godoc](https://godoc.org/github.com/containerd/containerd)). You can read about the full details of the project in the [README](https://github.com/containerd/containerd/blob/v1.0.0/README.md). If you would like to try containerd, please download the binaries included on this release. If you are using Docker, you have already been using containerd since Docker 1.11. The next release of Docker, 17.12 CE Edge, will include this version of containerd. If you would like to use it with Kubernetes, a CRI implementation against containerd is available at [cri-containerd](https://github.com/kubernetes-incubator/cri-containerd). The 1.0 release has been reached after 7 alphas, 4 betas, and 1 release candidate full of stability fixes, hardening, and API improvements. If you run into a new problems, please file an [issue](https://github.com/containerd/containerd/issues). The [_support horizon_](https://github.com/containerd/containerd/blob/master/RELEASES.md#support-horizon) for containerd has been updated to include the 1.0 release. With this release, the 0.2 release line is now moved to the "End of Life" state. No new releases on that branch will be made. The 1.0 release train will be considered an active branch with new patches until December 5, 2018 or when 1.1 is released. As part the release of containerd 1.0, the governance model has been updated. The day to day management of the project is taken care of by the maintainers. The roles of chief maintainer and BDFL have been removed and a technical steering committee has been added as an escalation point when consensus cannot be reached among maintainers. See https://github.com/moby/tsc for details. Please try out the release binaries and report any issues at https://github.com/containerd/containerd/issues. Contributors - Michael Crosby - Stephen J Day - Derek McGowan - Kenfe-Mickaël Laventure - Akihiro Suda - Jess Valarezo - Phil Estes - Daniel Nephin - Ian Campbell - Kunal Kushwaha - Lantao Liu - Yanqiang Miao - Samuel Karp - Qiang Huang - Evan Hazlett - Justin Cormack - fate-grand-order - Vincent Batts - Tobias Klauser - Darren Stahl - Brian Goff - yanxuean - Lei Jitang - Arnaud Porterie - Tonis Tiigi - Sunny Gogoi - Antonio Murdaca - Allen Sun - Zhang Wei - yason - Krasi Georgiev - Gábor Lipták - Edward Pilatowicz - Daniel Dao - Volodymyr Burenin - unclejack - Tao Qingyun - Random-Liu - Patrick Chanezon - Mike Brown - kevinetc123 - Federico Padua - Chris Aniszczyk - Alex Ellis - xiekeyang - Samuel Ortiz - Kir Kolyshkin - He Xiaoxi - Gianluca Arbezzano - CuiHaozhi - Christopher Jones - chchliang - Ace-Tang - Aaron.L.Xu - Zachary Adam Kaplan - yuexiao-wang - Wang Long - Victor Vieux - swapdisk - Sebastiaan van Stijn - sakeven - Roy Inganta Ginting - Ross Boucher - Robert Northard - rajasec - Ophir Sneh - Nick Santos - Mathieu Pasquet - Ma Shimiao - Liz Rice - Li Li - Leonids Maslovs - Kevin Swiber - Jovi Zhangwei - John Howard - Jizhong Jiang - Jacob Wen - Fabio Kung - Ed King - David Lyle - Davanum Srinivas - Daniel Zhang - bando-shintaro - Andrew Pennebaker - Alessandro Resta - Akim Demaille - Abhinandan Prativadi Changes since v1.0.0-rc.0 * 89623f2 Merge pull request containerd#1879 from stevvooe/one-point-oh * 4d5c286 release: prepare 1.0.0 * 40c67fd Merge pull request containerd#1880 from AkihiroSuda/refactor-importer * 7e1bc9c Merge pull request containerd#1874 from stevvooe/regexp-quoting-syntax * 2ff2a70 Merge pull request containerd#1878 from jessvalarezo/docs-updates * 4dfcf60 filters: supporting alternative characters for quote * b284da3 docs: update BUILDING and README * 6340197 importer: refactor * a9caf9b Merge pull request containerd#1877 from yanxuean/add-unmount-fail-error * 6a1ef90 Merge pull request containerd#1876 from dmcgowan/fs-include-parent-directories * ba10e497 Emit unmodified change events for directories * 147d498 output error when unmount fail in diff.Apply * b77fa49 Merge pull request containerd#1875 from jessvalarezo/docs-revamp * 2214a07 Merge pull request containerd#1872 from estesp/manifest-list-push * 26012df4 add table of contents to readme * 68d4dfe Merge pull request containerd#1870 from dnephin/fix-error-messages * 9570174 Merge pull request containerd#1871 from dmcgowan/btrfs-usage * 4a662b2 Merge pull request containerd#1873 from jessvalarezo/docs-readme * 350e815 docs: add cio import * 02661c7 Add more descriptive error on manifest list push * 3bc4e69 Implement btrfs usage * 0e03d77 Update snapshot storage error message * 617c63d Merge pull request containerd#1864 from yanxuean/withSnapshotBucket * a6fad51 Merge pull request containerd#1869 from Ace-Tang/cio-docs-fix * cc969fb Merge pull request containerd#1868 from crosbymichael/unmount * a8b543f rmdir tmp dirs for rootfs mounts * b0ca685 Retry unmount on EBUSY and return errors * aca8e15 docs: fix usage of cio package in docs * e427fd6 Merge pull request containerd#1866 from Random-Liu/lock-task-list * 71e42bf Lock task list properly. * db742c9 get wrong parents bucket in withSnapshotBucket * fe4e30c Merge pull request containerd#1859 from dmcgowan/fix-snapshot-logs * 53c892d Merge pull request containerd#1856 from crosbymichael/mountns * 026bf29 Merge pull request containerd#1861 from jessvalarezo/images-err-2 * 9657239 Merge pull request containerd#1860 from stevvooe/ignore-not-found * 41ac9fa update images error * 0925a88 integration: ignore not found error on cleanup * 271836a Merge pull request containerd#1858 from jessvalarezo/images-errors * e289432 Merge pull request containerd#1857 from stevvooe/less-noise * b28d7cd Update snapshot and content related log messages * 8c55085 Merge pull request containerd#1855 from stevvooe/update-ttrpc * fd2e3cd3 Remove mount namespace from shim * 1710fe9 cmd/ctr: move log messages to debug * 2b15951 update image error messages * f6df9f6 Merge pull request containerd#1854 from yanxuean/overlay-prepare-rollback * 4b36430 vendor: update ttrpc to pull in euid change * 222156d Merge pull request containerd#1847 from jessvalarezo/metadata-errors * b873ae8 metadata: update container error messages * bb02302 improve rollback for overlay.prepare * 38fdf9c Merge pull request containerd#1846 from crosbymichael/service * 16a2177 Merge pull request containerd#1852 from yanxuean/error-log * 4f1c0e0 improve error message * c9c36d4 Merge pull request containerd#1849 from stevvooe/unix-socket-credentials * 2d966df cmd/containerd-shim: require unix socket credentials * efe9e28 Merge pull request containerd#1850 from mlaventure/min-kern-version * 9d75920 Fix flexible kernel version * b009642 Add rlimits to service file Dependency Changes Previous release can be found at [v1.0.0-rc.0](https://github.com/containerd/containerd/releases/tag/v1.0.0-rc.0) * 8c92e22ce0c492875ccaac3ab06143a77d8ed0c1 -> 76e68349ad9ab4d03d764c713826d31216715e4f **github.com/stevvooe/ttrpc**
Welcome to the release of containerd v1.0.0-rc.0! *This is a pre-release of containerd* The final 1.0 release stretch has been reached after 7 alphas and 4 betas full of stability fixes, hardening, and API improvements. This release candidate continues that pattern in including stability fixes, usability improvements and performance optimizations. As part of the preparation for supporting the release of Containerd 1.0, the governance model has been updated. The same as in previous versions, the day to day management of the project is taken care of by the maintainers. The roles of chief maintainer and BDFL have been removed and a technical steering committee has been added as an escalation point when consensus cannot be reached among maintainers. See https://github.com/moby/tsc. Please try out the release binaries and report any issues at https://github.com/containerd/containerd/issues. Shim Memory Improvements The shim memory usage has been identified as a key component to optimize. The shim gets run for every container making memory usage multiplied by the number of containers on a machine, requiring lower memory usage in order to increase density. In profiling the memory usage of the shim, it was discovered that the HTTP2 and GRPC stacks were accounting for a majority of the usage. Since the RPC requests to the shim are fairly simple and there is no need for handling many clients, a simpler protocol is now used with much less overhead. In order to avoid changing the client or server code, ttrpc is used to generate code similar to GRPC using the same protocol definitions, but using the lighter weight protocol. This had the effect of drastically reducing the memory usage of the shim. Memory improvements over beta 2... ``` RSS CMD 3644 containerd-shim -namespace default -workdir /var/lib/containerd/io.containerd.runtime.v1.linux/default/test10 -address /run/containerd/containerd.sock -containerd-binary /usr/local/bin/containerd -debug 15320 docker-containerd-shim --namespace moby --workdir /var/lib/docker/containerd/daemon/io.containerd.runtime.v1.linux/moby/ffa219303c1419b179393a1123f176bb4268337432b0ca7945bc7ac66db73cad --address /var/run/docker/containerd/docker-containerd.sock --runtime-root /var/run/docker/ ``` See [ttrpc repository](https://github.com/stevvooe/ttrpc) for implementation. Garbage Collector Improvements Garbage collection is now scheduled by a background process which watches changes and tracks the amount of time garbage collection is taking. It is able to use that information to schedule garbage collection based on configuration options. The default configuration option aims to limit the amount of time the metadata store is locked for garbage collection to 20ms of every second. Additionally image removal now has an option to synchronously cleanup all referenced resources (such as snapshots). This option immediately schedules a garbage collection and waits for it to complete before returning to the client. Since the time to remove a snapshot depends on the size of the snapshot, the time to synchronously remove an image cannot be consistent. For faster and more consistent removals, images should be deleted asynchronously whenever possible. Asynchronous remains the default. Contributors * Akihiro Suda * Daniel Nephin * Daniel, Dao Quang Minh * Darren Stahl * Derek McGowan * Jess Valarezo * Kenfe-Mickaël Laventure * Kir Kolyshkin * Lantao Liu * Michael Crosby * Phil Estes * Stephen J Day * yanxuean Changes * 08f1793 Merge pull request containerd#1848 from dmcgowan/update-version-rc.0 * 30ac46e Update version to v1.0.0-rc.0 * 4bcd272 Merge pull request containerd#1845 from dmcgowan/fix-rc.0-notes * 6952a61 Update previous version to beta not current rc * 7e4be46 Merge pull request containerd#1834 from dmcgowan/v1.0.0-rc.0-notes * 07d4154 Merge pull request containerd#1844 from Random-Liu/close-fifos-on-failure * a03fdab Close FIFOs on failure. * e64d179 Add release notes for v1.0.0-rc.0 * 763d29f Merge pull request containerd#1842 from dmcgowan/fix-snapshot-close-twice * 25b5592 Fix close twice test to retain snapshot * 2657e49 Merge pull request containerd#1835 from stevvooe/we-use-ttrpc * 6c416fa shim: we use ttrpc in the shim now * c357934 Merge pull request containerd#1841 from crosbymichael/parse-uid * a4a4c90 Use strconv.Atoi for uid/gid parsing * 8fbdd5c Merge pull request containerd#1840 from kolyshkin/mkdir-all * acc6f4e MkdirAll: fix usage * 8114d2f Merge pull request containerd#1838 from estesp/mention-kernel-vers * e974099 Merge pull request containerd#1839 from crosbymichael/test-long-exec * a87062e Add runtime requirements section to README * 6bff39c Merge pull request containerd#1837 from crosbymichael/bump-cgroups * 68bec1e Add test for large exec payload * c4b1114 Merge pull request containerd#1831 from stevvooe/update-ttrpc * 4349df4 Update cgroups to 29da22c * 393cf8e vendor: update ttrpc with latest changes * 96ca973 8000 Merge pull request containerd#1797 from jessvalarezo/rename-packages * 04dab2a Merge pull request containerd#1832 from crosbymichael/stress-kill * 1dd6f33 rename snapshot->snapshots proto pkg and service * 9885edf rename snapshot->snapshots pkg * 4363994 Fix stress test tool exec kill * 61c8fe2 ctr: snapshot->snapshots cmd, add aliases * 59bd196 Merge pull request containerd#1830 from stevvooe/define-fieldpath-support-envelope * 16d3aeb Merge pull request containerd#1829 from AkihiroSuda/ctr-envvar-snapshotter * d7c950e events: define fieldpath implement for envelope * a56e742 Merge pull request containerd#1812 from darrenstahlmsft/revendor * d298f9a Merge pull request containerd#1824 from kolyshkin/static-build * 3da99ed Merge pull request containerd#1825 from mlaventure/use-defaults-pkg-everywhere * 7f95b9f ctr: add EnvVar `CONTAINERD_SNAPSHOTTER` for `--snapshotter` * 0d682e2 plugins: don't compile for static build * 6bf779c Use defaults pkg for all platforms * bc9cb25 Update tar to use PAXRecords instead of Xattrs * 16d0087 Add test for prefix header issue * 444e422 Revendor hcsshim and go-tar * 90a6b79 Merge pull request containerd#1810 from dnephin/add-staticcheck-linter * a3955e1 Merge pull request containerd#1822 from crosbymichael/subreaper * 6e9f24b Change default subreaper setting * 967caee Merge pull request containerd#1821 from dnephin/remove-use-of-deprecated-grpc-funcs * dab3ba2 Replace calls to deprecated grpc functions * 118c0a2 Merge pull request containerd#1820 from crosbymichael/shim-lockup * 74b3cb3 Fix exit event handling in shim * 723f37d Add exec support to stress test tool * a05e5fd restore deferred cleanup in rootfs.init * ee04cfa Add staticcheck linter * 2556c59 Merge pull request containerd#1767 from stevvooe/ttrpc-shim * 9e04cff Merge pull request containerd#1814 from stevvooe/panic-client-fix-oci-spec * ca39f76 Merge pull request containerd#1798 from stevvooe/shim-gomaxprocs * d54961c vendor: add ttrpc as vendored dependency * 372cdfa Merge pull request containerd#1638 from dmcgowan/gc-policy * f011bec Merge pull request containerd#1800 from yanxuean/image-store-redandunt * 0d957b1 oci: allocate process if not already set * 3b670eb remove redundant check for imagestore create * 5764bf1 cmd/containerd-shim: set GOMAXPROCS to 2 * abeb262 Merge pull request containerd#1796 from dnephin/move-oci-pkg * f6e877e Proposed fix for image content store * a21a19a fix windows oci package * cdf62f6 Fix usage of oci in other packages. * 081f8c7 oci package passing tests * 70e0c84 Merge pull request containerd#1809 from Random-Liu/fix-build * 33c95bb Fix build. * a7ade66 Merge pull request containerd#1799 from yanxuean/provide-withLease * 9bf0a15 Merge pull request containerd#1808 from crosbymichael/stress-race * ff6c12b Merge pull request containerd#1803 from dnephin/warn-on-mem-not-supported * 1cb0e81 Fix race in stress test tool * 12e7c76 Merge pull request containerd#1802 from yanxuean/unpack-lease * 153fcfa Merge pull request containerd#1806 from dnephin/fix-ctr-events * 0103d14 Fix ctr events * 8fe12ad Warn if OOM monitoring is not available * 545f247 prevent snapshot from gc when unpack image * 4af5f65 Merge pull request containerd#1793 from dmcgowan/gc-add-container-test * 908df29 Merge pull request containerd#1792 from dmcgowan/schema1-resumeable * d56b49d provide client.WithLease to user * e8f52c3 linux/shim: reduce memory overhead by using ttrpc * 8e09b56 Merge pull request containerd#1795 from crosbymichael/cgroup-lock * e830112 Add lock around task cgroup * 1a6e6a9 Merge pull request containerd#1794 from yanxuean/some-typo * 8130779 some typo * 92d40b9 Add test for container as gc root * bae4782 Document defaults * b674c64 Support unknown size from schema 1 manifests * 2b1c915 Merge pull request containerd#1787 from AkihiroSuda/diff-link * 633f4a6 Merge pull request containerd#1751 from dnephin/add-unused-linters * f74862a Add structcheck, unused, and varcheck linters. * 96e2f30 Merge pull request containerd#1759 from dnephin/single-integration-target * a3aeb39 fs/diff: support symlink to abspath with second-precision mtime * 374f04d Update gc policy configuration to use time duration * 3f1a61f Add synchronous image delete * 72fb8f8 Add gc labels to content tests * 56b6a5d Add root labels to snapshot test suite * 00596f4 Add gc policy plugin * 1bd39d3 Merge pull request containerd#1788 from crosbymichael/plugin * 23dfe54 Add plugin stability guarantees to release.md * 9649a42 Merge pull request containerd#1784 from stevvooe/remove-sync-write * 95cbe81 Merge pull request containerd#1783 from crosbymichael/static-shim * 5113299 content/local: don't open file with sync * 67232e9 Merge pull request containerd#1779 from AkihiroSuda/resolve-util-bin * 434f0e6 Compile shim without cgo for size and mem usage * 7ef4aa5 shim: support non-default binary name * 2fad782 Merge pull request containerd#1782 from dnephin/move-io-pkg * 298dabc Move io.go into cio package * bc063f2 Merge pull request containerd#1778 from stevvooe/weak-imports-on-plugins * 2edc475 Merge pull request containerd#1776 from stevvooe/decouple-events-grpc * a496871 Merge pull request containerd#1777 from jessvalarezo/migrate-client-code * 77cb722 Merge pull request containerd#1775 from dmcgowan/fix-push-different-tags * 50532f2 api: use weak imports for plugin protobufs * 9cb91f8 Merge pull request containerd#1765 from dmcgowan/rm-lease-resources * 2d05c4a events: decouple events package from grpc * 8c5dede client: move content store client to containerd package * aefaeea client: move diff client to containerd package * 8d23e5e client: move image store client to containerd package * 6cd9962 client: move namespaces client to containerd package * 56a35d5 Update docker pusher check tag * 5c6e789 Merge pull request containerd#1769 from stevvooe/split-events-types * 5b64f70 client: move snapshot client to containerd package * 09b5ca1 api/events: split event types from events service * fc149f0 Merge pull request containerd#1770 from crosbymichael/resume * 4192f99 Only compare times on non-windows * 3e5e2ec content/local: consistent handling of data and locks * f4fdb94 vendor: include require package from testify * 682151b remotes/docker: implement seekable http requests * a9308e1 content/local: ensure that resumption is properly supported * 368dc17 testutil: add Size to DumpDir output * 4df7075 Remove integration-parallel target * 05ec01e Fix .gitignore for coverage files * 7d64713 Merge pull request containerd#1768 from stevvooe/consolidate-empty * c5022ad protobuf: use the gogo/types package for empty * cc7e593 Merge pull request containerd#1760 from dnephin/run-unit-tests-on-windows * f49b1b7 Merge pull request containerd#1764 from crosbymichael/exit * 96d2c1e Merge pull request containerd#1766 from dnephin/fix-error-message * 2e7f731 Normalize 'already exists' errors * f3a63f5 Add support for removing leases on resource removal * a72279e Skip some tests on windows where the implementation is missing * fe5bb4a Update platform tests to use the defaultOS * 666d946 Implement diff.compareSysStat on windows * 5025b53 Re-enable unit tests on appveyor * a522a6c Add publish subcommand for publishing events * a542cf7 Merge pull request containerd#1761 from stevvooe/update-protoc * 19168f9 Merge pull request containerd#1754 from AkihiroSuda/fix-snapshot-commit-spec * 571c002 Merge pull request containerd#1755 from AkihiroSuda/fix-ctr-snapshot-args * 343d2d3 Merge pull request containerd#1758 from dnephin/speed-up-unit-test * 7354a7f README, travis: update protobuf compiler version * 5eff92d ctr: fix args * 5e8218a snapshot: fix specification of Commit * d8cf30e Reduce number of blobs in TestWalkBlobs * c78c156 Merge pull request containerd#1728 from AkihiroSuda/snapshot-closable * d15cee0 Merge pull request containerd#1737 from estesp/progress-line-fixup * f435ec0 Merge pull request containerd#1757 from dnephin/fix-coverage * b28e1ee Fix coverage report * 37ee054 Merge pull request containerd#1739 from crosbymichael/shim-redux * 4feb6f2 snapshot: add Close() * f9933e9 Merge pull request containerd#1742 from jessvalarezo/ctr-task-kill * 8376b50 Add grpc methods to errdefs * c81788b Remove errdefs and shimapi types from proc package * 9abde39 Fix lint issues on init process * 33fe5c1 Add debug package for memory reporting * 66a70e7 Refactor runtime initialization * 36e5548 Remove namepsaces and id imports from shim * a7343b0 Move events from shim into linux runtime * 1fe5a25 Move Exec creation to init process * 6e25898 Move shim process code to package * 92ca22c Merge pull request containerd#1735 from estesp/image-rm-feedback * a74148b Merge pull request containerd#1741 from dnephin/fix-task-path-conflict * 1966f9f ctr: update task kill to take exec-id * 680101f Merge pull request containerd#1750 from mlaventure/delete-exec-pidfile * 231c960 containerd-shim: Delete exec pidfile on exit * c2ab556 Merge pull request containerd#1748 from crosbymichael/bdfl * 503b536 Add TSC [Rule] * a906693 Remove chief stuff as well * e36c106 Remove BDFL sections * 732b156 Merge pull request containerd#1745 from AkihiroSuda/remove-lcow-sys-firmware-todo * 79e3b97 spec_unix.go: remove unneeded TODO (moby/moby#35442) * 0876075 Fix output on ctr images rm to show actual feedback * 17093c2 Merge pull request containerd#1718 from jessvalarezo/ctr-task-ps * 0961807 rename runcopts to runctypes * 807f4d2 expose exec-id on ctr task ps * 49af59b Validate that root and state paths are different. * b4a65de Merge pull request containerd#1740 from stevvooe/update-grpc * 08d1e72 api,linux,windows: update generated protobufs * 3569786 vendor: update protobuf, grpc and gogo * b1527e0 Handle progress line length properly for formatting Breaking Changes * [containerd#1797](https://github.com/containerd/containerd/pulls/1797) The snapshots GRPC service was renamed from snapshot. * [containerd#1767](https://github.com/containerd/containerd/pulls/1767) The shim protocol has changed to use ttrpc. The new protocol does not use http2 and is not compatible with previous shim versions using grpc. Dependency Changes Previous release can be found at [v1.0.0-beta.3](https://github.com/containerd/containerd/releases/tag/v1.0.0-beta.3) * 2e2c51242e8993c50445dab7c03c8e7febddd0cf -> go1.10 **github.com/dmcgowan/go-tar** * d2e1ade2d719b78fe5b061b4c18a9f7111b5bdc8 -> v0.5 **github.com/gogo/protobuf** * 5a0f697c9ed9d68fef0116532c6e05cfeae00e55 -> 1643683e1b54a9e88ad26d98f81400c8c9d9f4f9 **github.com/golang/protobuf** * f7dd103 -> 29da22c **github.com/containerd/cgroups** * v0.6.3 -> v0.6.7 **github.com/Microsoft/hcsshim** * v1.3.0 -> v1.7.2 **google.golang.org/grpc** * 8c92e22ce0c492875ccaac3ab06143a77d8ed0c1 **github.com/stevvooe/ttrpc**
Welcome to the release of containerd v1.0.0-beta.3! *This is a pre-release of containerd* After rounding out the feature set in beta.2, we have taken a number of stability fixes. This release contains mostly bug fixes, code cleanup and improvements to useability of the client and ctr tool. Please try out the release binaries and report any issues at https://github.com/containerd/containerd/issues. `ctr` makeover `ctr` is getting a makeover! The end goal is for commands to be consistent and scoped. Most notably: - `push`, `pull` are now `images` subcommands: `ctr images push`, `ctr images pull` - `fetch`, `fetch-object`, and `push-object` are `content` subcommands - `rootfs unpack` is now `snapshot unpack` - `apply` no longer exists. RIP' Garbage collector improvements The garbage collector continues to improve with this release, including bug fixes on the client causing races and a new lease feature for making retention from the client easier. The lease API was added to make it easier for clients to prevent content and snapshots from being garbage collected while they are being actively worked on (such as from pull, import, or checkpoint). The API includes functions for creating, deleting, and listing leases. The lease gets attached to the context and the backend metadata store sees it and associates newly created content and snapshots with that lease. Leases are currently acquired and released automatically through the client. From the user perspective, fewer `gc.root` labels should be seen on client during pull/import operations or left over after a failed operation. Contributors * Akihiro Suda * Antonio Murdaca * Brian Goff * Daniel Nephin * Daniel, Dao Quang Minh * Derek McGowan * Ian Campbell * Jacob Wen * Jess Valarezo * Kenfe-Mickaël Laventure * Lantao Liu * Michael Crosby * Phil Estes * Sebastiaan van Stijn * Stephen J Day * Tao Qingyun * Victor Vieux * Zhang Wei * bando-shintaro * yanxuean Changes * 2b8ed96 Merge pull request containerd#1705 from stevvooe/beta3 * cb3b960 Add garbage collection release notes * e5912e1 Merge pull request containerd#1734 from vieux/update_images_ls_platforms * 8866254 update notes with ctr changes * 3289ca2 release: prepare 1.0.0-beta.3 * f8a536e Add S to PLATFORM in images & plugins list * 4701e12 Merge pull request containerd#1730 from dmcgowan/fix-usage-deadlock * ad9eca1 Fix deadlock in overlay snapshotter * 59d1c16 Merge pull request containerd#1732 from dmcgowan/fix-userns-tests * b3659d2 Fix not found caused by race to remove snapshot * 27d450a Merge pull request containerd#1690 from dmcgowan/metadata-transactions * 844e957 Merge pull request containerd#1729 from crosbymichael/shim-size * 07885f1 Updates lease creation to respect existing leases * dce27d8 Remove client use of gc root label * e13894b Add leases api * d01fb04 Fix runtime root with no-shim * fc08f01 Fix windows compile for dialer package * bba473a Move shim client into subpackage * 13c7c3e Remove urfave cli dep from shim * a70b95b Move events exchange into subpackage * 526d15b Move dial funcs to dialer pkg * 01cdf33 Merge pull request containerd#1716 from crosbymichael/strip * 2aad5ec Merge pull request containerd#1725 from dmcgowan/diff-parent-permission * 8889d45 Add directory permission tests * 7e398dd Merge pull request containerd#1717 from dnephin/use-gometalinter * 46ac2be Merge pull request containerd#1721 from bandoshintaro/master * 8498de0 Merge pull request containerd#1719 from AkihiroSuda/proc-scsi * 5128f03 Fix docs, log output in getting started * db58988 Add /proc/scsi to masked paths * f9e969b Use gometalinter for linting * ab67fd5 Merge pull request containerd#1715 from thaJeztah/nit-fix-printf * 65d5b8b Align version output and minor code cleanup * a045575 Strip binaries in Makefile * 99595e0 Merge pull request containerd#1714 from dnephin/remove-deadcode-from-release * 393e8cc Remove deadcode from cmd/containerd-release * 5acf187 Merge pull request containerd#1712 from stevvooe/defaults-package * 0a1a134 defaults: add package to contain server defaults * 564600e Merge pull request containerd#1707 from dmcgowan/snapshot-storage-db * 68d3c77 Open snapshot database only once * 7a91c66 Merge pull request containerd#1710 from AkihiroSuda/print-revision * dfdcd4d containerd --version: print version.Revision * c933088 Merge pull request containerd#1663 from dmcgowan/content-local-labels * a7a869f Merge pull request containerd#1703 from estesp/remove-copyright * aa35164 Merge pull request containerd#1704 from jessvalarezo/ctr-move-tasks * 7b08bcd Add support for label storage in local content store * 864b16a ctr: alphabetize commands, rename signals * f654b7b ctr: move pprof to commands package * a827a17 ctr: move shim to commands * c3b70f1 ctr: move tasks, run to commands package * 7d6017a Update LICENSE.docs with proper CC-BY-4.0 text * fe3d9a7 Merge pull request containerd#1702 from estesp/fix-cc-by-lic * 474d4df Merge pull request containerd#1692 from dmcgowan/gc-fix-sweep-race * ff90484 Merge pull request containerd#1668 from jessvalarezo/image-unpack-check * 015788f Fix CC-BY license reference in README.md * 7fd20ed Merge pull request containerd#1701 from stevvooe/backoff-v1-images * 9f5b97c Merge pull request containerd#1698 from crosbymichael/task-ls * 8bbf8d8 Merge pull request containerd#1693 from jessvalarezo/ctr-refactor-fourth-pass * 1552ee2 client: Add helper function which checks if an image is unpacked * 8eee47c remotes/docker/schema1: back off on locked ref * 7a1d709 ctr: remove apply command * 4326702 Fix race in gc sweep * e4da49c ctr: move unpack to snapshot command * 456d3f4 ctr: move push and pull to images command * b58e4fc ctr: move fetch,fetch-object,push-object to content * e2f9fbf Merge pull request containerd#1687 from crosbymichael/pie * 91597bc Move task list to separate command * 58835d2 Merge pull request containerd#1697 from crosbymichael/template * adc502b Add template filepath for release tool * 5fb3a0e Merge pull request containerd#1695 from runcom/abstract-release-tool * fa678a0 cmd: containerd-release: abstract it out to create a new project * b93bd0c Merge pull request containerd#1676 from AkihiroSuda/null-io-fix * e0da28a ctr: error if tty && nullIO * e74c423 Fix races with concurrent GC * 1f704e9 Merge pull request containerd#1688 from crosbymichael/cli * 994c717 Merge pull request containerd#1689 from jessvalarezo/ctr-refactor-third-pass * 16855ee ctr: move resolver to commands package * ffd0d2e ctr: move signals to commands package * b8c4d85 Add buildmode=pie to makefile * 9d05197 Update cli to 7bc6a0acffa589f415f88aca16cc1de5ffd6 * 638f3a3 Merge pull request containerd#1685 from jessvalarezo/ctr-refactor * 8540587 ctr: move events command * fdb6859 ctr: move namespaces command * 750fd89 ctr: move snapshot command * 0895dbe ctr: move content command * f980cc1 ctr: move images command * 47fae4d ctr: move containers command * 8c77d9a Merge pull request containerd#1683 from crosbymichael/ctr-moving * 083b10b Merge pull request containerd#1684 from crosbymichael/lint-final * 1d298c8 Fix windows lint issues and enable ci * 1c533a2 Enable go lint in CI * b6e0c4f Fix go lint errors * ae995bc Move plugins command * 2dac1b6 Move version command into package * 4743f1f Move NewClient and AppContext to commands pkg * 8509569 Merge pull request containerd#1680 from crosbymichael/solaris * 9956fa4 Remove solaris files * 80de000 Merge pull request containerd#1679 from jessvalarezo/ctr-refactor-first-pass * a19a203 ctr: add commands package with shared utility functions * 04659d9 Merge pull request containerd#1675 from crosbymichael/ctr-newclient * 9f76083 Refactor newClient in ctr * edf4114 Merge pull request containerd#1673 from qingyunha/ctr * 313bab3 Merge pull request containerd#1654 from crosbymichael/ctr-daemon * 0813ee4 Merge pull request containerd#1666 from estesp/add-test-stress-info * 6112102 ctr use client's underlying service * 5b6564d Merge pull request containerd#1667 from crosbymichael/more-lint * 230dc74 Merge pull request containerd#1669 from crosbymichael/container-api-tests * 43ec3df Add testing information to BUILDING.md * b937d23 Add additional container test for missing methods * 5fd0415 Add comments and fix common lint issues * 9bd1dc7 Unexport grpc service types * 3679a55 Merge pull request containerd#1665 from crosbymichael/bump-runc * 8feebb7 Bump runc to 74a17296470088de3805e138d3d87c62e613d * 91a33a0 Merge pull request containerd#1664 from qingyunha/issue1607 * f325d51 move the fifo locations /run/containerd * c7dc795 [ctr] add --detach to run * 2e00408 [ctr] Add --null-io to ctr run/start * 992280e Merge pull request containerd#1662 from mlaventure/update-cgroups * 7c9be56 Update containerd/cgroups to f7dd103 * 1752bf5 Merge pull request containerd#1660 from stevvooe/update-security-email * 639d1bd README, RELEASES: update security email * f2ae8a0 Merge pull request containerd#1658 from dmcgowan/gc-content-delete * 923a5c8 Update content store garbage collection * 87596ad Merge pull request containerd#1657 from mlaventure/vendor-go-runc * 90c5355 Vendor go-runc ed1cbe1fc31f5fb2359d3a54b6330d1a097858b7 * 84fa396 Merge pull request containerd#1656 from crosbymichael/rev-name * 21c992a Reverse checkpoint url * 5244d7b Merge pull request containerd#1655 from dmcgowan/skip-user-ns-tests * cbeb0a8 Merge pull request containerd#1652 from crosbymichael/cr-image * efcec36 Skip user namespace tests in kernels which have it disabled * ce57d6d Merge pull request containerd#1634 from crosbymichael/release-build * 5a38644 Merge pull request containerd#1653 from dmcgowan/fix-pull-race * ca63e6d Merge pull request containerd#1645 from cpuguy83/limited_reader * b798d87 Ensure manifests are marked as root during pull * e4c6bf3 Remove default filter from ctr * e833da1 Clear root labels during checkpoint * e201be5 Create checkpointed image in client * a19fd6e Add checkpoint media types to handler * abbec62 cmd/ctr: create an image for checkpoint * 6eb56a2 Use limited reader for some `ReadAll` cases. * 70b5668 Merge pull request containerd#1631 from dmcgowan/cancel-unpack * 3c89aaf Merge pull request containerd#1649 from mlaventure/win-procdetaisl-use-stdtime * 6b9edd0 Merge pull request containerd#1640 from Random-Liu/fix-image-pull-race * 2cdb395 Merge pull request containerd#1643 from cpuguy83/close_wait_chan * 2056254 Close wait chan after sending status * e7ea7b5 windows: Use stdtime for hcsshimtypes.ProcessDetails.CreatedAt * ef5fe56 Merge pull request containerd#1641 from WeiZhang555/fix-progress-bar * 79dad0a Merge pull request containerd#1650 from dmcgowan/fix-gc-race * 295cce2 Use single instance of snapshot and content stores * e378196 Add snapshot label command to ctr * d28b8cc Merge pull request containerd#1648 from mlaventure/checkpoint-workdir * 7562047 Merge pull request containerd#1642 from mlaventure/arm-panic * 71f0bb3 linux: Pass correct path to runc when doing a checkpoint * d8e4894 linux: Ensure count is 64bits aligned for proper atomic use on 32bits machines * a06abd7 [progress] Fix wrong display of progress bar * 103dd0e Merge pull request containerd#1644 from cpuguy83/unmarshal_error_desc * c1a0775 Build release tar and include hash * 7f4f4b5 Merge pull request containerd#1646 from mlaventure/mlaventure-email * 3c7645a Merge pull request containerd#1647 from yanxuean/typo * d8d1209 a typo in comment of Snapshotter.Update * bdf801b Update @mlaventure e-mail address * 0847ae6 Improve error message for `WithContainerExtension` * 09c2bfa Reduce image pull race. * c66fd83 Merge pull request containerd#1636 from crosbymichael/cgroups * d805f77 Bump cgroups dep to 38a6143 * 91614a5 Merge pull request containerd#1633 from ijc/go1.9 * 71c4ee5 Merge pull request containerd#1629 from dmcgowan/remove-archive-umask * 680bab8 Update docs with go 1.9 requirement. * dcf7ff5 Update apply diff to support context cancellation * e20b371 Remove umask, replace with explicit chmod after create Dependency Changes Previous release can be found at [v1.0.0-beta.2](https://github.com/containerd/containerd/releases/tag/v1.0.0-beta.2) * 8ba6f23b6e36d03666a14bd9421f5e3efcb59aca -> 7bc6a0acffa589f415f88aca16cc1de5ffd66f9c **github.com/urfave/cli** * 0351df1c5a66838d0c392b4ac4cf9450de844e2d -> 74a17296470088de3805e138d3d87c62e613dfc4 **github.com/opencontainers/runc** * 9c238e6 -> f7dd103 **github.com/containerd/cgroups** * 633fd07c086ff591adaa2849278764771d791f6f -> ed1cbe1fc31f5fb2359d3a54b6330d1a097858b7 **github.com/containerd/go-runc**
containerd 1.0.0-beta.2 Welcome to the release of containerd v1.0.0-beta.2! *This is a pre-release of containerd* This release rounds out much of the remaining feature set for the 1.0 release time frame. In addition to a large number of bugfixes and utility additions, services and methods have been added to the GRPC API to meet production use cases. The highlight is garbage collection, along with database migrations, plugin introspection and rich PID listing. Please try out the release binaries and report any issues at https://github.com/containerd/containerd/issues. Garbage Collection Full garbage collection support for cleaning up content, snapshots and metadata for containerd resources. The implementation is based on well-known concurrent mark and sweep and the approach allows for extensibility in collection policies. The GC is triggered `Container.Delete and Image.Delete. Note that images may need to be re-pulled for proper support. Introspection API The new introspection API allows for querying the state of containerd. The `Plugins` method lists the state and exports of all initialized plugins in use in a containerd instance. ```console $ ctr plugins TYPE ID PLATFORM STATUS io.containerd.content.v1 content - ok io.containerd.metadata.v1 bolt - ok io.containerd.differ.v1 walking linux/amd64 ok io.containerd.grpc.v1 containers - ok io.containerd.grpc.v1 content - ok io.containerd.grpc.v1 diff - ok io.containerd.grpc.v1 events - ok io.containerd.grpc.v1 healthcheck - ok io.containerd.grpc.v1 images - ok io.containerd.grpc.v1 namespaces - ok io.containerd.snapshotter.v1 btrfs linux/amd64 error io.containerd.snapshotter.v1 overlayfs linux/amd64 ok io.containerd.grpc.v1 snapshots - ok io.containerd.monitor.v1 cgroups linux/amd64 ok io.containerd.runtime.v1 linux linux/amd64 ok io.containerd.grpc.v1 tasks - ok io.containerd.grpc.v1 version - ok ``` Rich ListPIDs Listing PIDs through the task service can now provide runtime specific metadata through the API. This is particularly interesting on the windows platform. The following is an example of a Windows container `ps` output: ```console $ ctr tasks ps <container-id> PID INFO 3716 {ImageName:smss.exe CreatedAt:2017-10-10T17:51:45.1552607Z KernelTime_100Ns:156250 MemoryCommitBytes:348160 MemoryWorkingSetPrivateBytes:217088 MemoryWorkingSetSharedBytes:946176 ProcessID:3716 UserTime_100Ns:0} 5404 {ImageName:csrss.exe CreatedAt:2017-10-10T17:51:45.1848844Z KernelTime_100Ns:0 MemoryCommitBytes:606208 MemoryWorkingSetPrivateBytes:339968 MemoryWorkingSetSharedBytes:1560576 ProcessID:5404 UserTime_100Ns:0} 3628 {ImageName:wininit.exe CreatedAt:2017-10-10T17:51:45.1974386Z KernelTime_100Ns:156250 MemoryCommitBytes:983040 MemoryWorkingSetPrivateBytes:610304 MemoryWorkingSetSharedBytes:3448832 ProcessID:3628 UserTime_100Ns:0} 8576 {ImageName:services.exe CreatedAt:2017-10-10T17:51:45.2091635Z KernelTime_100Ns:468750 MemoryCommitBytes:2048000 MemoryWorkingSetPrivateBytes:1437696 MemoryWorkingSetSharedBytes:4182016 ProcessID:8576 UserTime_100Ns:0} 7892 {ImageName:lsass.exe CreatedAt:2017-10-10T17:51:45.2177712Z KernelTime_100Ns:937500 MemoryCommitBytes:2666496 MemoryWorkingSetPrivateBytes:1982464 MemoryWorkingSetSharedBytes:7561216 ProcessID:7892 UserTime_100Ns:312500} 6384 {ImageName:svchost.exe CreatedAt:2017-10-10T17:51:45.3676107Z KernelTime_100Ns:468750 MemoryCommitBytes:1896448 MemoryWorkingSetPrivateBytes:1277952 MemoryWorkingSetSharedBytes:4730880 ProcessID:6384 UserTime_100Ns:156250} 4904 {ImageName:svchost.exe CreatedAt:2017-10-10T17:51:45.5431743Z KernelTime_100Ns:312500 MemoryCommitBytes:1781760 MemoryWorkingSetPrivateBytes:1331200 MemoryWorkingSetSharedBytes:4952064 ProcessID:4904 UserTime_100Ns:0} 2092 {ImageName:svchost.exe CreatedAt:2017-10-10T17:51:45.5838844Z KernelTime_100Ns:156250 MemoryCommitBytes:2486272 MemoryWorkingSetPrivateBytes:2117632 MemoryWorkingSetSharedBytes:5668864 ProcessID:2092 UserTime_100Ns:312500} 6576 {ImageName:svchost.exe CreatedAt:2017-10-10T17:51:45.727607Z KernelTime_100Ns:156250 MemoryCommitBytes:1818624 MemoryWorkingSetPrivateBytes:1417216 MemoryWorkingSetSharedBytes:6684672 ProcessID:6576 UserTime_100Ns:156250} 2412 {ImageName:svchost.exe CreatedAt:2017-10-10T17:51:46.0427889Z KernelTime_100Ns:468750 MemoryCommitBytes:5570560 MemoryWorkingSetPrivateBytes:3915776 MemoryWorkingSetSharedBytes:5963776 ProcessID:2412 UserTime_100Ns:0} 5472 {ImageName:svchost.exe CreatedAt:2017-10-10T17:51:46.0827893Z KernelTime_100Ns:312500 MemoryCommitBytes:2625536 MemoryWorkingSetPrivateBytes:1908736 MemoryWorkingSetSharedBytes:7532544 ProcessID:5472 UserTime_100Ns:312500} 8756 {ImageName:svchost.exe CreatedAt:2017-10-10T17:51:46.1108672Z KernelTime_100Ns:312500 MemoryCommitBytes:1843200 MemoryWorkingSetPrivateBytes:1466368 MemoryWorkingSetSharedBytes:4612096 ProcessID:8756 UserTime_100Ns:0} 1508 {ImageName:svchost.exe CreatedAt:2017-10-10T17:51:46.1522136Z KernelTime_100Ns:2812500 MemoryCommitBytes:4816896 MemoryWorkingSetPrivateBytes:3600384 MemoryWorkingSetSharedBytes:9281536 ProcessID:1508 UserTime_100Ns:468750} 4612 {ImageName:svchost.exe CreatedAt:2017-10-10T17:51:46.2212148Z KernelTime_100Ns:937500 MemoryCommitBytes:3063808 MemoryWorkingSetPrivateBytes:2265088 MemoryWorkingSetSharedBytes:8667136 ProcessID:4612 UserTime_100Ns:156250} 5936 {ImageName:CExecSvc.exe CreatedAt:2017-10-10T17:51:46.2224031Z KernelTime_100Ns:0 MemoryCommitBytes:983040 MemoryWorkingSetPrivateBytes:737280 MemoryWorkingSetSharedBytes:3723264 ProcessID:5936 UserTime_100Ns:0} 4416 {ImageName:cmd.exe CreatedAt:2017-10-10T17:51:46.5943846Z KernelTime_100Ns:0 MemoryCommitBytes:1564672 MemoryWorkingSetPrivateBytes:356352 MemoryWorkingSetSharedBytes:2174976 ProcessID:4416 UserTime_100Ns:0} 8700 {ImageName:powershell.exe CreatedAt:2017-10-10T17:51:46.6120645Z KernelTime_100Ns:2343750 MemoryCommitBytes:24522752 MemoryWorkingSetPrivateBytes:19853312 MemoryWorkingSetSharedBytes:27156480 ProcessID:8700 UserTime_100Ns:10156250} ``` Migrations A lightweight migration framework is now part of containerd. This allows us to safely evolve the schema between releases with the groundwork laid early. As part of this release, a migration will be run to add back references in support of garbage collection. Contributors * Ace-Tang * Akihiro Suda * Akim Demaille * Allen Sun * Daniel, Dao Quang Minh * Derek McGowan * Jess Valarezo * Kenfe-Mickaël Laventure * Lantao Liu * Mathieu Pasquet * Michael Crosby * Phil Estes * Stephen J Day * Tobias Klauser * Yanqiang Miao Changes * a543c93 Merge pull request containerd#1630 from stevvooe/beta2 * 683ed97 release: prepare 1.0.0-beta.2 * 1fe31c7 Merge pull request containerd#1628 from crosbymichael/release-tool * 769d9e1 add release tool to generate releases * 587f252 Merge pull request containerd#1563 from dmcgowan/gc-alpha * 3cc7591 Merge pull request containerd#1627 from jessvalarezo/task-remove-cast * 1e69de1 Remove ProcessInfo cast * b5152f2 Merge pull request containerd#1626 from jessvalarezo/windows-changes * 830e0ea Change hcsshimopts to hcsshimtypes package * ffb03c4 Add checkpoint and userns gc labels * de7b281 Update services to call garbage collection * 17471d5 Metadata garbage collection * 7884707 Add reference labels to snapshots and content * 551579b Merge pull request containerd#1621 from dmcgowan/refactor-diff * 64a96aa Abort newly created references on error * 69e7e7f Add error wrapping for client checkpoint errors * d9db1d1 Refactor differ into separate package * 60960e1 Merge pull request containerd#1597 from stevvooe/introspection-service * 0e72ce5 services/introspection: implement plugin reporting * 4981464 plugin: allow declaring a plugin depends on all others * 8508e82 plugin: refactor plugin system to support initialization reporting * fe52d93 errdefs: use status package for mapping errors * d8bd6b7 plugin: allow querying plugin graph to be re-entrant * 363d692 api/services: define the introspection API * 12c79cc Merge pull request containerd#1604 from jessvalarezo/windows-listpids * 061c719 ListPids returns process ID and other info * 96725a5 Merge pull request containerd#1620 from mlaventure/runc-io-id * c807ba8 Allow setting the uid & gid of the io pipes * 1ea8ac4 Merge pull request containerd#1617 from crosbymichael/2cgroup * d7864eb Use namespace in default cgroup path * 72bb45a Merge pull request containerd#1603 from mlaventure/fix-windows-flaky-tests * cfa8756 windows: Create init process with task * ad52664 windows: Fix a few races * b2e3482 Merge pull request containerd#1584 from miaoyq/fix-mount-lookup-err * d7c4611 Ensure getting the correct mountinfo corresponds to path * a8426ed Merge pull request containerd#1609 from crosbymichael/attach-docs * 6c3f393 Merge pull request containerd#1611 from stevvooe/address-cgroup-merge-conflicty * 77e5f65 metrics/cgroups: handle error on call to cgroup * bbb01ee Add docs around multiple attach * 987fcd1 Merge pull request containerd#1598 from Random-Liu/fix-load-task * 67bbfc5 Merge pull request containerd#1605 from dmcgowan/metadata-db-documentation * e4defbc Add documentation for metadata database * 6f351f0 Merge pull request containerd#1586 from mathieui/postmortem-stats * d92f6ee Allow blocking and non-blocking metrics collection * ed519bb Collect cgroup stats one last time before exit * 8558b98 Merge pull request containerd#1582 from dmcgowan/metadata-db-object * 7f657ce Add database migrations * 28ca8f0 Fix task load. * 7c4bca5 Merge pull request containerd#1600 from AkihiroSuda/defaultspec * d7b0e52 spec: set MaskedPaths and ReadOnlyPaths by default * 72a3a01 Merge pull request containerd#1595 from crosbymichael/container-lock * 28882fd Merge pull request containerd#1589 from mlaventure/shim-no-newns * fa9e9bd Fetch current container info before operations * 8d892a6 Update metadata plugin initialization * 2ab70f2 Add content and snapshot store references * 447a0a9 Add children bucket to back reference snapshots * 56c1b79 Create metadata db object * acba0f5 Merge pull request containerd#1594 from akimd/akim/clean * ec43dc2 Merge pull request containerd#1592 from AkihiroSuda/workdir2 * 26d4c2c Add an option to prevent putting the shim in a new mount namespace * 0ae9d8f Merge pull request containerd#1567 from stevvooe/image-check-function * 8ceeeed style: move definition for consistency * b26e2e7 ctr run: add --cwd * f6d8892 Merge pull request containerd#1583 from stevvooe/image-storage-validation * 698b6d1 metadata: validation and testing of image store * c555df5 images: support checking status of image content * 7c9b0ea Merge pull request containerd#1590 from crosbymichael/container-update * 9e85035 Add container update method * 1c7a042 Merge pull request containerd#1566 from stevvooe/split-children * 6b9aafd Merge pull request containerd#1587 from Ace-Tang/remove_blank_line * 2231de3 Remove a blank line * 8ded4fe Merge pull request containerd#1581 from crosbymichael/lint-2 * 451421b Comment more packages to pass go lint * 33e974c Merge pull request containerd#1577 from crosbymichael/lint-1 * 2416559 Merge pull request containerd#1580 from tklauser/unix-mkdev-major-minor * f43b7ac Update files based on go lint * 579093f Merge pull request containerd#1579 from tklauser/vendor-ansiterm * f01b139 archive: use Mkdev, Major and Minor functions from golang.org/x/sys/unix * 727fd59 ctr: remove SIGUNUSED from signal map * e789135 vendor: update golang.org/x/sys * acc246e Remove stray entry for Azure/go-ansiterm from vendor.conf * ce6859f images: provide separated children function for images * 16bf823 Merge pull request containerd#1570 from AkihiroSuda/oci-runtime-readonly * 27023c7 readonly: pass RW rootfs to runtime, and let the runtime remount it as RO * 70b353d Merge pull request containerd#1551 from mlaventure/client-pull-set-labels * 9f84513 Merge pull request containerd#1571 from allencloud/remove-defaultns-from-Client * fd44a3a remove field defaultns from struct Client * df82159 client: Allow setting image labels on Pull() and Import() * b24acea Merge pull request containerd#1565 from allencloud/fix-potential-panic * 382dafef fix a potential panic when map is nil * cc9f58a Merge pull request containerd#1559 from mlaventure/fix-oor-panic * cee13eb Merge pull request containerd#1557 from crosbymichael/console-bump * cf2c460 Bump runc with console change for ONLCR * d026f81 Merge pull request containerd#1562 from AkihiroSuda/ctr-images-q * ed81189 Update console dep to 84eeaae905fa414d03e07bcd6c8d * 2a64813 ctr: add `ctr images ls --quiet` * af2226c client: Prevent Out-Of-Range panic in task.Metrics() * bd1f89b Merge pull request containerd#1555 from crosbymichael/client-lint * 51b9240 Update client to pass go lint * 1a9d939 Merge pull request containerd#1558 from mlaventure/dialer-quick-fix * 357eff8 Merge pull request containerd#1556 from crosbymichael/tests * c42f56b Move unix specific tidbits into dialer_unix.go * 76a2d1c State adding tests when submitting changes * 76bfff3 Merge pull request containerd#1554 from mlaventure/list-images-filters * 8e44719 Merge pull request containerd#1552 from allencloud/update-docs-and-comments * 4700968 update docs and comments * 8f1dd43 client: Allow specifying filters when listing images Dependency Changes Previous release can be found at [v1.0.0-beta.1](https://github.com/containerd/containerd/releases/tag/v1.0.0-beta.1) * b3c048c028ddd789c6f9510c597f8b9c62f25359 -> 633fd07c086ff591adaa2849278764771d791f6f **github.com/containerd/go-runc** * b28c739c79ce69d017e3691ad3664568d68e95c6 -> 84eeaae905fa414d03e07bcd6c8d3f19e7cf180e **github.com/containerd/console** * 5933ab4 -> 9c238e6 **github.com/containerd/cgroups** * 7ddbeae9ae08c6a06a59597f0c9edbc5ff2444ce -> 314a259e304ff91bd6985da2a7149bbf91237993 **golang.org/x/sys** * 593914b8bd5448a93f7c3e4902a03408b6d5c0ce -> 0351df1c5a66838d0c392b4ac4cf9450de844e2d **github.com/opencontainers/runc**
containerd 1.0.0-beta.1 Welcome to the second beta release of `containerd`. The highlights of this release focus around making integrations much easier. The `Container.Extensions` field allows one to add arbitrary metadata, such as protobufs and json, to a container metadata object. The `Tasks.Wait` rpc makes waiting for containers to exit much simpler in practice. With this release, `containerd` now fully supports pulling multi-platform Docker and OCI images, complete with foreign layer support. Please try out the release binaries and report any issues at https://github.com/containerd/containerd/issues. Upgrading Label validation now requires that the key and value together are under 4096 bytes. If you had labels large than this size, metadata objects may need to be rewritten. The metrics API has been moved from `/metrics` to be versioned under `/v1/metrics` and is now slated to be covered under our release policy. The `Tasks` service now has a `Wait` rpc to make it easier to wait on container processes, eliminating race conditions that were hard to handle with events. Old clients will still work with events, but they will suffer from the problems that this change is meant to solve. Multi-Platform While `containerd` is fairly agnostic to the image format, the release of multi-platform images on Docker Hub caused some issues with the client-side pull support. `containerd` now properly handles multi-platform Docker and OCI images. This includes support for foreign layers. This means that one should be able to pull multi-platform images without issues for Linux and Windows, as well as most architectures. This works even if the platform doesn't support the particular image. Container Extensions A new field, `Container.Extensions`, supports storing integration specific structures directly in `containerd`. This allows drivers like Docker and CRI-containerd to store their own metadata objects in `containerd`. This obviates the need for secondary storage systems and ensures updates follow the same transaction semantics as other parts of `containerd`. At the same time, it also avoids problems with "label bloat" when storing more complex metadata. JSON and protobuf are supported. New Maintainer We want to welcome a new maintainer to `containerd`, Akihiro Suda. The container ecosystem would be as strong as it is today without his tireless efforts. We are excited to have him on board and his presence will ensure that `containerd` will be a strong platform. Contributors We'd like to extend a thanks to the following people who contributed to this release: Akihiro Suda Allen Sun Brian Goff Derek McGowan Ian Campbell Jess Valarezo Kenfe-Mickaël Laventure Kunal Kushwaha Lantao Liu Michael Crosby Mike Brown Phil Estes Roy Inganta Ginting Stephen Day Tao Qingyun Tobias Klauser yanxuean Changes 20c6211 Merge pull request containerd#1550 from stevvooe/beta1 95675f3 release: prepare 1.0.0-beta.1 316ce18 Merge pull request containerd#1549 from estesp/fix-getting-started-examples fe1e00c Fix example using old GenerateSpec function 9a7e776 Merge pull request containerd#1547 from AkihiroSuda/remove-dist-grpc 3a88be3 design: remove distribution GRPC service df896c9 Merge pull request containerd#1528 from jessvalarezo/labels-validate ba53292 Merge pull request containerd#1544 from allencloud/consistent-display-format 94b5aaf Merge pull request containerd#1543 from Random-Liu/fix-container-timestamp 82a68e2 Merge pull request containerd#1542 from stevvooe/update-architecture-diagram d5b027c make command help display consistent 5452112 Fix container CreatedAt and UpdatedAt. 709d34f Merge pull request containerd#1537 from allencloud/add-reponse-body-close c6d5595 add a response body close fe9d6a4 Merge pull request containerd#1525 from crosbymichael/shim-hang 18c4322 Labels are consistently validated across services 04ed74f README, design: update architecture diagram 3273315 Merge pull request containerd#1541 from stevvooe/update-releases c381a9e RELEASES: update component table 90d7452 Merge pull request containerd#1540 from estesp/revert-temp-image-ref 2146fee Merge pull request containerd#1534 from crosbymichael/metricsv1 e2f3e31 Make WithCheckpoint() work with manifest list images cadee03 Revert "Merge pull request containerd#1502 from crosbymichael/test-image" d67763d Add wait API endpoint for waiting on process exit 2f5dda6 Merge pull request containerd#1536 from stevvooe/foreign-layers 26329b2 Merge pull request containerd#1535 from dmcgowan/fix-pull-multi-arch 13771fb images, remotes: add support for foreign layers eef47ff Add platform filtering on children handler f23edd3 Add v1 to metrics API endpoint 9934acb Merge pull request containerd#1532 from mikebrow/seccomp-default-proc-fix ef5f202 Merge pull request containerd#1533 from stevvooe/specifier-default 9163377 platforms: provide simpler function for common use 78c4e55 Merge pull request containerd#1529 from crosbymichael/console 120bb4c fixes missing default permission 7030a4a Close epoller on task stop 781ce65 Update console dep to b28c739c79ce69d017e3691ad366 d700a9c Merge pull request containerd#1500 from crosbymichael/typeurl d22160c Vendor typeurl package 929283a Remove typeurl package from repo f41871b Merge pull request containerd#1515 from dmcgowan/add-akihiro 0cb2c96 Merge pull request containerd#1519 from crosbymichael/contrib 58015ab Add readme to contib e517952 Merge pull request containerd#1378 from cpuguy83/container_store_extra_data 59384ff Merge pull request containerd#1522 from qingyunha/master e1ce48d README.md: correct headers level b6a0fb1 Merge pull request containerd#1518 from crosbymichael/security 8ac9743 Merge pull request containerd#1510 from crosbymichael/signals 2e830e0 Update security reporting text 72f380a Merge pull request containerd#1517 from mlaventure/remove-toml-omitempty 4bfe3a9 Merge pull request containerd#1516 from tklauser/fix-cstring-leaks 7fdf8cd Handle signals first on boot 4a58240 mount: fix CString memory leaks 3596ec5 Add Akihiro as maintainer f2d1459 Remove omitempty from toml tags cf1d422 Merge pull request containerd#1511 from crosbymichael/solaris 6d440dc Remove solaris from travis 63654f9 Merge pull request containerd#1509 from crosbymichael/ns-event d1e11f1 Merge pull request containerd#1465 from AkihiroSuda/gcr 14c36cc Set ctx ns before publish 9f28040 Merge pull request containerd#1506 from dmcgowan/unpack-manifest-list 46ded63 Support for multi-arch image unpacking cc75a11 Merge pull request containerd#1484 from yanxuean/loadconfig 4943771 Merge pull request containerd#1504 from stevvooe/resolve-platforms 0f6d1d2 Merge pull request containerd#1501 from crosbymichael/trap-err bcfdbb1 Merge pull request containerd#1503 from crosbymichael/update-runc ea8adf9 cmd/ctr: show resolved image platform 37d049d Merge pull request containerd#1493 from mikebrow/seccomp-helper 8785f3f Merge pull request containerd#1403 from stevvooe/platform-selectors 775f7ce platforms: update format for platform specifier 77f699c Update runc to 593914b8bd5448a93f7c3e4902a03408b6d 426650f adds seccomp helpers 03b43ac Trap close error on shutdown 558b46f Merge pull request containerd#1502 from crosbymichael/test-image 0e616f4 Merge pull request containerd#1496 from kunalkushwaha/movefile-testcase ca3f16c [tmp] Use amd64 test image 8442e4b Testcase added for Moving files in snapshot layers a2aa4ec Merge pull request containerd#1485 from AkihiroSuda/expose-differ 313cebc Merge pull request containerd#1473 from kunalkushwaha/snapshot-testcases 1310c85 differ: expose newWalkingDiff() for standalone buildkit 39b5f90 Improve server.LoadConfig function f7d31e2 api, metadata: use map type for Container.Extensions 94f6be5 platforms: implement matcher support fb06883 platforms: define selectors for platforms 52fbc5f Merge pull request containerd#1490 from ijc/defalt a791f04 Merge pull request containerd#1489 from crosbymichael/list-state 128aaf6 Correct spelling of default. 3552ce5 Add field to `Container` for client-defined data 951c129 Handle locking and errors for process state 17901fa Merge pull request containerd#1488 from crosbymichael/prom-containers 72bcdb8 Add config for exporting container metrics to prom aa8bd16 Merge pull request containerd#1487 from crosbymichael/guide 9c20795 Add go build and ./main to guide 34a58ce Improve the getting started guide 2cfd7df Merge pull request containerd#1456 from ijc/ctr-list-no-labels 2f08032 remotes/docker: add scope (registry:foo/bar:pull) aaae706 remotes/docker: allow 404 for POST /v2/token b6fb234 Testcase added for deletion of files in lower layer 121d337 Added testcase Removal of intermediate snapshot 94b0d0e ctr: drop labels from `ctr containers` subcommand list
containerd 1.0.0-beta.0 After a large push for stability changes, we now present containerd 1.0.0-beta.0. With this release, going forward, our focus will be on not breaking integrations. If we do push a beta that breaks something, please let us know immediately so we can update our processes and procedures to avoid breaks in the future. While we are making the above the committment, we will make exceptions if critical design changes are required or if there are security issues. Release Process The release process and versioning guarantees have been laid out in RELEASES.md. It identifies the release process, versioning, branching, support horizon and backporting processes for containerd. Upgrading As a matter of policy, there is no compatibility with previous alpha releases, so it is recommended that existing installations be cleared out to avoid future issues. Existing clients should work but one may encounter compilation errors due to changes. The name of the field `Container.RootFS` has been changed to `Container.SnapshotKey`. Existing clients should work with out change, but when upgrading deamons, the storage location of this value has changed. If this is a problem, please reach out and we can work out a migration solution. Metrics The main addition for this release is support for inline container metrics access on the Tasks service. The container metrics, previously available via the prometheus API, are now made available directly through the GRPC API to support use cases that are focused on single containers rather than aggregrates. Contributors Akihiro Suda Darren Stahl Derek McGowan Kenfe-Mickaël Laventure Lantao Liu Michael Crosby Phil Estes Stephen Day Changes a2e8991 release: prepare 1.0.0-beta.0 3b282ba Merge pull request containerd#1480 from dmcgowan/unique-unpack-keys 09f2421 Merge pull request containerd#1466 from AkihiroSuda/snapshotkey 597d0d7 Support simultaneous unpacking of same layer e30e0c8 api: RootFS -> SnapshotKey 8b63386 Merge pull request containerd#1479 from stevvooe/baseline-api-txt e66d1a7 Merge pull request containerd#1468 from crosbymichael/stats 157cfb1 api, linux/runcopts: ensure output is current 2ed3c62 Update cgroups to 5933ab4 843b35c Merge pull request containerd#1478 from estesp/freebsd-compile 8b938b0 Fix FreeBSD compilation e0f7b5f Merge pull request containerd#1477 from stevvooe/revert-rootfs-init e1eeb0e Merge pull request containerd#1475 from dmcgowan/content-commit-context 4d8f789 Revert "rootfs: remove unused functions" 9613acb Add context to content commit bf08f7c Merge pull request containerd#1474 from mlaventure/update-gorunc f766801 Update go-runc to b3c048c028ddd789c6f9510c597f8b9c62f25359 026ebe1 Merge pull request containerd#1472 from dmcgowan/fix-gcr-registries 48afd44 Support blob commit returning a 200 instead of 201 4c5ed9c Move metrics requests to services c07f7ca Add task.Metrics to windows 8510512 Add test for client metrics f45269b Update cgroups to 4be134fe43b9e207558365ad2675546b ed45952 Use cgroups proto for prom metrics 0973a08 Update cgroups to e364e5d4183340acdf51f943ba033543 697dcdd Refactor task service metrics 16fcb8d Merge pull request containerd#1470 from crosbymichael/lossy a6aa3cc Merge pull request containerd#1469 from crosbymichael/sys f5d81a6 Return grpc errs from task service 887f97f Merge pull request containerd#1463 from stevvooe/switch-snapshot-kind f7dc0ab Update golang/sys to 7ddbeae9ae08c6a06a59597f0c9ed 1c31199 snapshot: use switch to parse snapshot.Kind f4b8498 Merge pull request containerd#1373 from AkihiroSuda/fix-snapshot-view a560e5e mount: fix read-only bind (containerd#1368) b4cc42d Merge pull request containerd#1460 from mlaventure/pid-host-kill-init 939ad32 Update go-runc to ba22f6a82e52be3be4eb4a00000fe816f4b41c2e a6fb9bc reaper: Return an error if exit status is not 0 92772bd linux: Ensure all init children are dead when it exits 9d251cb Delete bundle dir on restore if we're not debugging the shim d3e1132 Merge pull request containerd#1453 from crosbymichael/oom 378e334 Merge pull request containerd#1362 from AkihiroSuda/ctr-snapshot-info b04e408 Convert OOM Metric to Const 93395c0 Merge pull request containerd#1462 from stevvooe/fieldpath-fix 5cc1086 service/containers: correctly plumb fieldpaths 7182085 Merge pull request containerd#1447 from stevvooe/nice-events 4291fb4 Merge pull request containerd#1454 from mlaventure/per-container-runtime-binary a3f0bba Merge pull request containerd#1459 from crosbymichael/exec-wait 5614e9c Wait on exec process not task 3e2a9c6 Merge pull request containerd#1458 from AkihiroSuda/net-host dd05301b Merge pull request containerd#1457 from AkihiroSuda/nit-doc 053deb5 ctr: net-host: bind-mount host /etc/{hosts,resolv.conf} 37896ed RELEASES.md: Go API -> Go client API 525bffd snapshot: support JSON marshalling for Info fef7f3a ctr: add `ctr snapshot info <key>` 1b79170 linux: Add RuntimeRoot to RuncOptions ab0cb4e linux: Honor RuncOptions if set on container e0d8cb1 Fix retrieval of container Runtime.Options field 22df20b Merge pull request containerd#1452 from crosbymichael/reaper2 6b4c4a2 Update reaper for multipe subscribers 9255e75 containerd: export Subscribe method on client c2e894c Merge pull request containerd#1448 from darrenstahlmsft/ConsoleSize c1c2aaf Merge pull request containerd#1444 from Random-Liu/add-image-config 04c6bf4 Ensure ConsoleSize is not nil 76e016c Add image config function. 0baecaa Merge pull request containerd#1439 from mlaventure/allow-setting-rutime-opts 49e3d43 Merge pull request containerd#1443 from crosbymichael/daemon-cgroup 932246b Place containerd inside cgroup c3711c3 Merge pull request containerd#1319 from mlaventure/handle-sigkilled-shim 744308a Merge pull request containerd#1440 from mlaventure/fix-shim-panic 42b131c Allow setting runtime options when using WithRuntime() 1c92c0e Fix panic in CloseIO when not Stdin was allocated for a process 456e169 Merge pull request containerd#1438 from crosbymichael/apparmor 7dd87c3 Merge pull request containerd#1436 from crosbymichael/security 2b46989 Add default apparmor profile generation edd1da8 Use configured runtime when cleaning up after dead shim 700120c Don't build binaries when running `make vet` 3f34c42 Add missing "/tasks/exec-started" event topic dbd3eff containerd: add state flag to specify state dir d541567 Handle SIGKILL'ed shim while daemon is running c23f29e containerd-shim: Don't try to delete container twice eb4abac linux: Prevent deadlock in reaper.WaitPid() 9923a49 linux/shim: Kill container upon SIG{TERM,KILL} 6ec92dd Merge pull request containerd#1437 from darrenstahlmsft/LCOWConfig d0b6136 Split Windows config generation to support LCOW 4a782f7 Vendor opengcs and hcsshim 6b6ac8e Add security mailing list to readme and releases cf09e326 Merge pull request containerd#1435 from Random-Liu/with-process-kill-all 2f237b2 WithProcessKill should kill all processes. 31b5bb9 Merge pull request containerd#1434 from crosbymichael/kill-all ed6b8fb Add KillOpts for killing all processes a197618 Merge pull request containerd#1428 from mlaventure/go1.9 b9879d4 Merge pull request containerd#1433 from Random-Liu/fix-with-user-id 410bcea WithUserID should not return error when /etc/passwd doesn't exist. 360e46d Merge pull request containerd#1429 from dmcgowan/client-use-root-path 44e266b Use RootPath for resolving path inside of an image e4a77fc Merge pull request containerd#1425 from Random-Liu/add-with-user-id bb9e2bf Add WithUserID which gets uid and gid from image's /etc/passwd. ab1968d Merge pull request containerd#1427 from crosbymichael/states fb427da Merge pull request containerd#1424 from crosbymichael/load-exec 1a77db1 Merge pull request containerd#1423 from crosbymichael/events 9674970 Add procesStates for shim processes 34c25e0 Use golang 1.9 on AppVeyor CI 77b98f0 Use golang 1.9 on Travis CI b3303b5 Add LoadProcess api to Task a6ce1ef Merge pull request containerd#1413 from crosbymichael/user-opts 2052b76 Change WithSpec to take SpecOpts 421c607 Add Events client method 5c7f671 Add libcontainer/user package for passwd parsing f66f0fb Update windows SpecOpts in tests f436f4c Add WithUsername spec opt c601606 Move spec generation to Container Create fa14f2e Add context and client to SpecOpts ba69f5d Add WithUserIDs SpecOpt
containerd 1.0.0-alpha6 The seventh alpha release brings further stability and testing to containerd. This release mostly contains fixes and clean ups on the client side along with a few bug fixes on the daemon side. There are no API changes or need to update dependencies with this release. See changes for the full list of fixes. Please download and test this version. Report issues at https://github.com/containerd/containerd/issues. Release Process The release process and versioning guarantees have been laid out in [RELEASES.md](RELEASES.md). It identifies the release process, versioning, branching, support horizon and backporting processes for containerd. Contributors A special thanks to the contributors of this release: Akihiro Suda Brian Goff Christopher Jones Derek McGowan Kenfe-Mickaël Laventure Kunal Kushwaha Michael Crosby Phil Estes Stephen Day Zhang Wei Changes f052817 Merge pull request containerd#1420 from dmcgowan/alpha6 b14c2cc release: updated version to alpha6 709c37b Merge pull request containerd#1419 from dmcgowan/walk-skip-not-found 0daa593 Merge pull request containerd#1393 from dmcgowan/multiple-differs 98960f0 Skip items removed during walk 05cdc4f Merge pull request containerd#1417 from mlaventure/delete-exitedat 7f6c487 go-client: Return an ExitStatus struct when calling process.Delete() 12b43a5 Merge pull request containerd#1416 from tophj-ibm/fix-race-testflags e6ab556 Only use race flag on amd64 60fea11 Merge pull request containerd#1400 from dmcgowan/content-local-writer-locks 311ea33 Merge pull request containerd#1414 from dmcgowan/btrfs-test-fail-2 3bcb6f8 Merge pull request containerd#1415 from kunalkushwaha/minor-fmt-fix 8f7086a unused fmt package 96a75ab Move detach flags to platform specific f74cea7 Update basic test to allow being run in parallel on client 750771f Remove snapshot test suite as a parallel test runner 5027341 Update loopback to return error 4028add Merge pull request containerd#1405 from crosbymichael/fifos 4015f73 Merge pull request containerd#1410 from mlaventure/errdegs-stack 0e1f6c5 Merge pull request containerd#1394 from crosbymichael/test-io fc535ef windows: Close IO if process in created state 01b217f Merge pull request containerd#1411 from estesp/snapshotter-cli-default 4712ed5 Fix snapshot ctr command to use default a8b21da Add FifoIO to expose fifos directly to client 1b470c1 Remove Stdio usage in tests 4de2199 errdefs: Provide a valid stack in all cases 1046064 Merge pull request containerd#1392 from cpuguy83/wait_async 6ab99ed Convert `ExitStatus` to use fn to get details 0648ec3 Merge pull request containerd#1388 from kunalkushwaha/makefile 026896a Make Wait() async 1c98958 Breaking Makefile into platform specific files 89da512 Merge pull request containerd#1377 from crosbymichael/exec-delete c710662 Ensure content writer only unlocks resource once 853fd15 Merge pull request containerd#1407 from crosbymichael/cgroups-bump bf82de3 Allow exec process to be deleted in created state 77836a6 Update cgroups to e6d1aa8 873a346 Merge pull request containerd#1366 from stevvooe/containers-metadata-tests 3e81b09 Merge pull request containerd#1406 from mlaventure/add-exitedat-to-process 8a1b03e Add ExitedAt to process proto definition 4c5f824 Merge pull request containerd#1404 from WeiZhang555/add-newline 14fe2d5 Add newline char to avoid mix of logs 677257f service/snapshotter: move default to client 783ed05 metadata: ensure correct updates on Container 8095244 Merge pull request containerd#1396 from crosbymichael/reverts 4950c26 Revert "Wait for client side copy goroutines to start" e3696cf Merge pull request containerd#1395 from dmcgowan/content-testsuite-cleanup 4211953 Close writers in content test suite 2fa366d Add support for multiple differs 567c275 Merge pull request containerd#1391 from crosbymichael/stdin-block cc3b7a5 Revert part of 06dc87a 0c10ce0 Merge pull request containerd#1390 from AkihiroSuda/fix-typo 5f7c527 client: Resoveconf -> Resolvconf
containerd 1.0.0-alpha5 Another release brings further stability. Several quality fixes are included in this release, which include a fix to memory leaks, race conditions and error handling. The documentation has also been rounded out. Please download the binaries provided and let the bears get at 'em. 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 The `runc` version has been upgrade. Make sure to update your `runc` to the version called out in [RUNC.md](RUNC.md). No other changes should have to take place on upgrade. Release Process The release process and versioning guarantees have been laid out in [RELEASES.md](RELEASES.md). It identifies the release process, versioning, branching, support horizon and backporting processes for containerd. If there are components missing or questions, please report them in an issue or propose changes via a PR. Stress Tool The `containerd-stress` tool can now be used to put `containerd` through its paces. Fire it at your instance today! Contributors A special thanks to the contrubutors of this release: Abhinandan Prativadi Akihiro Suda Christopher Jones Derek McGowan Ian Campbell Jess Valarezo Kenfe-Mickaël Laventure Lantao Liu Michael Crosby Phil Estes Stephen J Day Changes b2ee0ab Merge pull request containerd#1387 from stevvooe/alpha5 a744550 release: prepare for 1.0.0-alpha5 0fd951c Merge pull request containerd#1379 from crosbymichael/profile a29c6c7 Merge pull request containerd#1386 from Random-Liu/task-service-grpc-error f79981c Convert errors returned by task service to errdefs error. 0a18801 Merge pull request containerd#1382 from stevvooe/update-api-descriptors 15f5672 Merge pull request containerd#1369 from AkihiroSuda/ctr-snapshot-view c890ca9 Merge pull request containerd#1383 from stevvooe/document-config-function 2a1f7b6 images: document config utility function 8ae20a1 api: update protobuf descriptors e800f08 Change oom metric to const ed1c404 Merge pull request containerd#1372 from jessvalarezo/d4m-gettingstarted d8abb61 Update building doc for Docker for Mac users 89daacf Merge pull request containerd#1370 from crosbymichael/daemon-lock 240a7be Merge pull request containerd#1371 from dmcgowan/btrfs-test-errors 06dc87a Wait for client side copy goroutines to start bfd62ce Defer unlock for testing daemon 73ac66e Merge pull request containerd#1352 from ijc/userns 0e28f2c Update mount creation to only use btrfs subvolume id ebafab4 correct container "/" ownership with userns e03ecd3 ctr: add `ctr snapshot view` 4703b99 Merge pull request containerd#1364 from AkihiroSuda/fix-ctr-snapshot-commit 62cebf9 Merge pull request containerd#1365 from AkihiroSuda/stress f8b1f4f stress -> containerd-stress ca35222 ctr: fix `ctr snapshot commit` a64399a Merge pull request containerd#1341 from mlaventure/enable-test-parallelism 72159bf Merge pull request containerd#1325 from dmcgowan/diffid-labels 2abaf6e Fix possible deadlock in WithProcessKill b02e9a8 Fix TestContainerNoBinaryExists on windows 104a808 Add integration-parallel to Travis & AppVeyor CIs eb0970b Mark relevant tests as elligible for parallelism 938810e Merge pull request containerd#1311 from abhinandanpb/client_int ca6b463 Merge pull request containerd#1343 from Random-Liu/change-io-to-interface dbb63b6 Merge pull request containerd#1346 from stevvooe/disallow-runtime-update 8e2c95f Change IO to interface. c288fbe Merge pull request containerd#1354 from crosbymichael/null-io 6a4a09d Merge pull request containerd#1351 from jessvalarezo/check-nil-spec eb58eca Add null io option cf1b593 Merge pull request containerd#1348 from AkihiroSuda/remove-unused e5cf147 metadata: container spec nil check 77035a6 Merge pull request containerd#1345 from crosbymichael/gorunc 4e23377 rootfs: remove unused functions ca9dec3 Merge pull request containerd#1329 from tophj-ibm/change-test-image 7a5d592 Exposing helpers to access internal structure a3801b7 Merge pull request containerd#1344 from crosbymichael/ops d768941 metadata: disallow changing the runtime of an existing container da34812 Update differ to support compressed archives fa3454e Update go-runc to b85ac701de5065a66918203dd18f05 dee8dc2 Add support for content labels on commit c4387a1 Add content test suite run to client b1eb110 Add section for `state` dir edc51c8 Merge pull request containerd#1342 from mlaventure/is-serving-failfast f2ee71c Merge pull request containerd#1339 from dmcgowan/refactor-oci-package fed5ad4 Update tests to properly use IsServing 7de9ca5 Disable FailFast on client.IsServing() 661bcd3 Change test image based on platform a437d14 Remove oci package a6be9f5 Merge pull request containerd#1338 from mlaventure/client-reconnect-fix 5f36ac2 Add test to ensure we can access tasks on restart e661be6 Fix failure to connect to shim on daemon restart 7ac351c Share Dialer and DialAddress between client and shim 587a811 Check credentials when connecting to shim 24aac33 Update unix dialer to keep retrying if socket is gone bb44324 Merge pull request containerd#1331 from crosbymichael/stress f27f8dd Merge pull request containerd#1320 from crosbymichael/cr-race c7f04ce Merge pull request containerd#1310 from stevvooe/releases 9827b4c RELEASES: define the release process d513dd2 Fix race with task checkpoint fd75f1e Add stress test tool
containerd 1.0.0-alpha4 With this weeks release, we are starting to become more stable. Many fixes related to rounding out core features and usability. We have our first documentation available, oriented towards getting started with containerd. This is the first release where we have no backwards incompatible changes to the GRPC API. There are some changes to the metadata storage layout, so please check upgrading for details. Please download the binaries provided and let the bears get at 'em. 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 respect to the GRPC API, there have only been additions to add labels to snapshot. All existing integrations should continue working with this release without changes. The storage format has had some changes to store labels and runc state has been relocated. Removing the contents of `/var/lib/containerd` is recommend before running this new version. This will cause loss of containers and image data. Let us know if this is a problem. Documentation We now have guides for [Getting Started](https://github.com/containerd/containerd/blob/master/docs/getting-started.md), [Operations](https://github.com/containerd/containerd/blob/master/docs/ops.md) and [Namespacing and Multi-tenancy](https://github.com/containerd/containerd/blob/master/docs/namespaces.md). Please take some time to read them and get to know containerd. The [godoc](https://godoc.org/github.com/containerd/containerd) has also been updated with new descriptions. Snapshot Labels Snapshots can now be decorated with labels on `Prepare`, `Commit` and `Update`. This is useful to associated snapshots with various components in containerd. Snapshot Command The arguments naming and order now correctly match the `Snapshotter` interface. Ordering of arguments may be affected. Make sure to use the help before using these commands if you are unsure. State Directory The runtime state directory has been brought back. Previously, this stored ephemeral container data associated with running containers. It was removed because checkpoint data was much too large for `tmpfs` used for the the `/run` directory. The checkpoint data is now in the main containerd directory, while the ephemeral data resides in `/run/containerd`. Access performance for `runc` should increase and old runtime data should be cleaned up on reboot with this change. API stability Tooling for GRPC API stability has been added. When protobufs are built, the descriptors for the entire symbol set that make up the API are aggregated into a single file. Changes that affect the API will show in these files, making it much easier to identify differences that aren't apparent in proto files. At each minor release, these files will be snapshotted. Go API Additions While there are several changes to the Go API, a few highlights include an option to kill the process process on delete, `WithProcessKill` and the ability to set the cgroup path and hostname options on the the runc specification. Solaris Build Support The project now builds on solaris. Contributors A special thanks to all those that contributed to this release: Akihiro Suda Edward Pilatowicz Kenfe-Mickaël Laventure Lantao Liu Michael Crosby Phil Estes Stephen J Day Tobias Klauser Yanqiang Miao Changes 56d499e Merge pull request containerd#1335 from stevvooe/alpha4 875672e release: prepare for 1.0.0-alpha4 70c2d36 Merge pull request containerd#1328 from crosbymichael/ctr-runtime a888587 Set runtime on container from ctr 258c719 Merge pull request containerd#1327 from estesp/namespace-doc-fixes f90fa4e Minor updates to the namespaces doc 7ddd6ad Merge pull request containerd#1316 from crosbymichael/namespaces 7a40eaa Add namespace doc for containerd 921b830 Merge pull request containerd#1322 from stevvooe/easy-install 17d7a5c Merge pull request containerd#1321 from stevvooe/refactor-snapshot-commands 6795406 Merge pull request containerd#1326 from Random-Liu/fix-typo debd07f Minor typo fix. 7717eb6 Makefile: simplify installation from tar file cea1d33 cmd/snapshot: follow conventions from Snapshotter e6ba48f Merge pull request containerd#1257 from stevvooe/content-changes 8be340e content: remove Provider.Reader f3ff1e2 Merge pull request containerd#1315 from crosbymichael/lchown 1f6b10b Use lchown when remapping rootfs ef344c1 Merge pull request containerd#1312 from tklauser/use-x-sys f2bed8f Use CopyFileRange from golang.org/x/sys/unix 4a6a2b9 Switch from package syscall to golang.org/x/sys 29a4dd7 Merge pull request containerd#1276 from dmcgowan/snapshot-labels ee027d4 Merge pull request containerd#1309 from crosbymichael/opts-doc 67572b6 Merge pull request containerd#1307 from crosbymichael/spec-opts bed8df1 Add cgroup paths and hostname spec opts 1907116 Add doc for extending client opts 1f04edd Merge pull request containerd#1306 from estesp/error-no-container 8ebbd1c Delete command should require at least one container ID 42c1c9a Merge pull request containerd#1301 from crosbymichael/task-force d8c075a Add WithProcessKill DeleteOpt d4be982 Merge pull request containerd#1303 from estesp/cleanup-workdir a2add74 Merge pull request containerd#1302 from dmcgowan/fix-blob-by-tag-attempt c8cd3d9 Fix bundle removal with the reappearance of state dir 2b0aa29 Avoid attemping blobs endpoint when digest is not provided 738c22a Merge pull request containerd#1299 from crosbymichael/ctr cdd03c9 Merge pull request containerd#1300 from crosbymichael/ops 2fb2168 Merge pull request containerd#1224 from epilatow/solaris.cc.20170719.0 56c1f5c Add solaris build support 00288bc Update ctr containers and tasks command a543d05 Add ops guide for containerd f2ba04f Set subreaper true in default linux config e9b86af Merge pull request containerd#1283 from mlaventure/resurrect-state-dir fc94108 Merge pull request containerd#1294 from crosbymichael/gettingstarted b20fd92 Merge pull request containerd#1298 from miaoyq/add-start-cmd 60f7eee Merge pull request containerd#1275 from mlaventure/travis-ineffassign a88397e Merge pull request containerd#1296 from stevvooe/api-stability-tooling d6c171e Add getting started guide ac72bba Add `start` subcommand in `ctr`. a73eb2b api: generate merged descriptors when building protobufs e8625bc Merge pull request containerd#1295 from mlaventure/separate-client-opts de7afd8 Merge pull request containerd#1293 from dmcgowan/fix-snapshotter-run 56b18c1 Move client's options to separate files 5a74a46 Fix bug where snapshots got created with wrong snapshotter 6c1a04f Merge pull request containerd#1292 from stevvooe/cleanup-protobuf-imports bf91354 Merge pull request containerd#1290 from Random-Liu/cleanup-io-properly d986a18 api: cleanup protobuf imports 73735c4 Cleanup FIFOs on error. bb39d1d Merge pull request containerd#1289 from mlaventure/add-missing-return 308ebe7 Add missing return when failing to write tar header 99315f8 Merge pull request containerd#1285 from crosbymichael/client-godoc bce8fe7 Merge pull request containerd#1288 from mlaventure/dont-touch-grpclog-in-client 2eaf911 Merge pull request containerd#1279 from Random-Liu/cancel-context-on-wait 16f6e09 Do not touch grpc logger from within the packages 8fae8a5 Cancel event subscribe context in Wait. 0a85f6e Update godoc for client package 7e00633 Merge pull request containerd#1282 from AkihiroSuda/dismiss-progressbar-on-debug ff15d18 Merge pull request containerd#1287 from crosbymichael/exitstatus 0e97bdf Merge pull request containerd#1284 from mlaventure/use-tmp-console-socket fdc5a47 Gate task.Wait status check on checkpoints 8700e23 Use root dir when storing temporary checkpoint data 9f13b41 Return exit status from Wait of stopped process fbe4751 Use a temp socket to receive the console from runc 642620c Resurrect State directory 829845d Fix ineffassign warnings b45fb98 ctr: dismiss progressbar on --debug 534a137 vendor: update github.com/containerd/console 949d490 vendor: update golang.org/x/sys 47637f2 vendor: update github.com/containerd/continuity be36d26 Update windows snapshotter 24783b9 Add snapshot test suite for update efca0c5 Update GRPC api to support labels and snapshot updates 55c3711 Update snapshot metadata to support labels 7d3a1e7 Add snapshot labels ad72036 Refactor common boltdb fields to subpackage 7893300 Invoke ineffassign during CI 9526f53 Remove Windows cross compile from Travis
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 0fa7658 Merge pull request containerd#1280 from stevvooe/alpha3 916254e release: prepare for 1.0.0-alpha3 c8b4e4d Merge pull request containerd#1277 from crosbymichael/tty-block ee2dea2 Merge pull request containerd#1278 from stevvooe/update-oci-spec bf4838e Shutdown console after process exits 610e1a2 vendor: update OCI image-spec dependency 8b0a040 Merge pull request containerd#1268 from crosbymichael/exec-state f945cdc Update windows locking code d18af86 Update for epoll console handling e827ada Update windows with exec create/start actions 83b27db Check status for stopped processes before wait cd00216 Rename TaskStatus to Status 504033e Add Get of task and process state 2974e48 Add no-criu flag for running tests 9f08965 Change Exited/Status to SetExited/ExitStatus a2a3451 Implement Exec + Start for tasks service 63878d1 Add create/start to exec processes in shim 2533bfe Merge pull request containerd#1271 from stevvooe/autogenerate-fieldpaths c857ba2 events: autogenerate fieldpath filters bb7b41a Merge pull request containerd#1269 from stevvooe/plumb-correct-interfaces 7ed88c1 linux/shim: use events.Publisher interface 92d737f Merge pull request containerd#1259 from dqminh/epoll-io 834f55d Merge pull request containerd#1264 from stevvooe/event-filters af2d7f0 events: initial support for filters 4ba6d8e Merge pull request containerd#1267 from crosbymichael/bump-runc 2386062 Update runc to e775f0fba3ea329b8b766451c892c41a3d4 ce07fa0 Merge pull request containerd#1263 from crosbymichael/no-shim-events f86d5ae Merge pull request containerd#1262 from dmcgowan/more-snapshot-tests 7b6ff6e event forwarding without shim 8e53465 use epoll to manage console i/o in linux d28126f Handle kernel related ci failure a7c44f0 Add snapshot test cases for former issues 20fa6ae Merge pull request containerd#1182 from AkihiroSuda/rootfs 183a6ca Merge pull request containerd#1013 from AkihiroSuda/oci-export de2671b bump vendor for containerd/console update b518f11 client: add Import() and Export() for importing/exporting image in OCI format 752d253 client, ctr: allow specifying unmanaged rootfs dir 1a054c6 Merge pull request containerd#1134 from crosbymichael/shim-cgroup 4e299a9 Merge pull request containerd#1254 from stevvooe/close-channel 1679727 Merge pull request containerd#1230 from dmcgowan/snapshot-client-testsuite fdea1ce Merge pull request containerd#1256 from dmcgowan/fix-ingest-file-not-exists afe0ce3 Merge pull request containerd#1255 from stevvooe/multi-delete 585f7d6 Skip test on windows ccbb035 Convert file not exists to status not found 83ac874 cmd/ctr: allow deleting multiple containers at once a1f7509 events: close channel explicitly 98a86c4 Add ShimCgroup path for placing shim in cgroup d4349ef Merge pull request containerd#1251 from crosbymichael/apparmor a0a5cc7 Add user namespace support to client c3872b8 Move RootPath to fs package da5c72c Run snapshot test suite for metadata and client
PreviousNext