This compiles the shim without cgo and statically which ends up to have
lower memory usage and binary size. buildmode=pie cannot be used
without cgo.
ref: https://github.com/golang/go/issues/17789#issuecomment-258542220
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
gometalinter runs linters in parallel for faster linting
it provides a uniform way of whitelisting lines using // nolint or the exclude
field in the config
Signed-off-by: Daniel Nephin <dnephin@gmail.com>
This tool makes our standard release template easy to generate. It also
adds a few features like marking changed dependnencies for packages and
others to know what updated from the last release.
usage:
`containerd-release -n releases/v1.0.0-beta.2.toml`
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
After several requests for information about platform support,
configuration introspection and feature switches, we now have a solution
that should work in all these use cases. The Introspection API hooks
into the plugin subsystem registration process. During registration,
plugins declare several pieces of information, allowing clients to
discover the cababilities and support that a containerd instance
provides, including whether or not it loaded with an error.
To allow symmetrical error reporting, the `google/rpc.Status` protobuf
definitions have been brought in from the googleapis project.
Unfortunately, we had to generate these in place to match our protobuf
system.
Once we like this design, we can add an implementation to integrate it
directly with the plugin system.
Enjoy!
Signed-off-by: Stephen J Day <stephen.day@docker.com>
Ensure that the descriptors are re-generated on the CI and block merges
that don't include updates. We also enable the `check-protos` check as
part of this process. The installation process for protobufs has been
fixed to support protobuild.
Signed-off-by: Stephen J Day <stephen.day@docker.com>
This adds a `stress` binary to help stress test containerd. It is
different from a benchmarking tool as it only gives a simple summary at
the end.
It is built to run long, multi hour/day stress tests across builds of
containerd.
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
By moving the binaries to be rooted at `bin/` in the tar file,
installation can be done from a tar file in one fell swoop:
```console
$ make release
$ sudo tar -C /usr/local -xvf releases/containerd-1.0.0-alpha3-72-ge6ba48f2.m.linux-amd64.tar.gz
```
Signed-off-by: Stephen J Day <stephen.day@docker.com>
For the standard make target, there is no need to build the protoc
plugin binary. This can be built automatically in response to the `make
protos` target.
Signed-off-by: Stephen J Day <stephen.day@docker.com>
To make the protobuild tool broadly useful, it has been broken out into
a separate project. This PR replaces the command with a configuration
file.
Signed-off-by: Stephen J Day <stephen.day@docker.com>
- add `testutil.RequiresRoot()` to TestMain
- moved `if testing.Short{ t.Skip() }` from each of the tests into a
common `newClient()`
Signed-off-by: Akihiro Suda <suda.akihiro@lab.ntt.co.jp>
This moves both the Mount type and mountinfo into a single mount
package.
This also opens up the root of the repo to hold the containerd client
implementation.
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
For LinuxKit we build Go executables as static pie binaries, so
need to be able to add extra build and link flags.
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
Add the ability to set buildtags and make note in README.md about the
btrfs build tag to turn off building the btrfs snapshot support.
Signed-off-by: Phil Estes <estesp@linux.vnet.ibm.com>
Currently does not build on any other platform, so add them in when
it builds.
With this Darwin builds without any errors.
Signed-off-by: Justin Cormack <justin.cormack@docker.com>