Commit Graph

245 Commits

Author SHA1 Message Date
Maksym Pavlenko
f87550d068 Install buf from install-dev-tools
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2026-01-08 17:03:28 -08:00
Maksym Pavlenko
57782b7175 Move buf configuration under api/
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2026-01-08 16:46:18 -08:00
Maksym Pavlenko
248ee80fab Remove GOPATH workaround from Makefile
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2026-01-08 16:42:26 -08:00
Maksym Pavlenko
aca62ae10d Install buf on demand via go install
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2026-01-08 15:23:01 -08:00
Maksym Pavlenko
e63f1d3ab4 Use buf to generate proto code
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2026-01-08 15:12:50 -08:00
Rehan Khan
621d661be8 Add coverage support for CRI integration tests
Signed-off-by: Rehan Khan <Rehan.Khan7@ibm.com>
2025-06-27 18:42:51 +05:30
Alfred Wingate
ffbe1b5738 Use a order-only-prerequisite for mandir creation
Otherwise its a matter of luck that the man directory is created before man dir
generation.

Bug: https://bugs.gentoo.org/880057
Signed-off-by: Alfred Wingate <parona@protonmail.com>
2025-01-11 02:16:53 +02:00
Sameer
34284c5075 Add tests for CNI v2 loopback options
Signed-off-by: Sameer <sameer.saeed@live.ca>
2024-11-19 18:43:31 -05:00
Brian Goff
6ffdabf725 Makefile: fix shim tags overwritten
Go taks multiple `--tags` as overwriting the previously set ones,
which is not what we want.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2024-10-02 19:17:56 +00:00
Brian Goff
2123855eeb Add build tag to omit grpc
This is needed so we can build the runc shim without grpc as a
transative dependency.
With this change the runc shim binary went from 14MB to 11MB.
The RSS from an idle shim went from about 17MB to 14MB (back around
where it was in in 1.7).

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2024-10-02 01:50:48 +00:00
Derek McGowan
e69efd56d6 Add go mod replace when proto changes happen
Signed-off-by: Derek McGowan <derek@mcg.dev>
2024-05-06 11:03:07 -07:00
Derek McGowan
2ac2b9c909 Make api a Go sub-module
Allow the api to stay at the same v1 go package name and keep using a
1.x version number. This indicates the API is still at 1.x and allows
sharing proto types with containerd 1.6 and 1.7 releases.

Signed-off-by: Derek McGowan <derek@mcg.dev>
2024-05-02 11:03:00 -07:00
Derek McGowan
3e9cace720 Move runtimeoptions to api directory
Signed-off-by: Derek McGowan <derek@mcg.dev>
2024-05-02 10:52:02 -07:00
Changqing Li
c5ba71d117 Makefile: update default PACKAGE to v2
Signed-off-by: Changqing Li <changqing.li@windriver.com>
2024-04-24 18:02:37 +08:00
kiashok
d9cae66d8d Extend string match in make protos
Signed-off-by: kiashok <kiashok@microsoft.com>
2024-02-07 11:30:32 -08:00
Derek McGowan
dbc74db6a1 Move runtime to core/runtime
Signed-off-by: Derek McGowan <derek@mcg.dev>
2024-01-17 09:58:04 -08:00
Derek McGowan
f1d659dc50 Update package name in Makefile
Signed-off-by: Derek McGowan <derek@mcg.dev>
2023-11-01 14:28:24 -07:00
Derek McGowan
ddd73ad300 Move protofiles generated into v2 directory
Protobuf will automatically put the files generated for a v2 module into
a v2 directory. Move them to their correct location after running the
protobuild.

Signed-off-by: Derek McGowan <derek@mcg.dev>
2023-10-27 15:44:23 -07:00
Derek McGowan
192168038e Temporarily remove integration/client submodule
Signed-off-by: Derek McGowan <derek@mcg.dev>
2023-10-27 11:11:20 -07:00
Fu Wei
8db0d39c68 Merge pull request #9104 from cyyzero/fix-deadlock 2023-10-10 07:36:29 +08:00
Samuel Karp
b30e0163ac Merge pull request #8934 from oss-qm/submit/go_build_flags
Makefile: allow overriding GO_BUILD_FLAGS via environment
2023-10-08 00:23:01 -07:00
Wei Fu
11a7751af5 *: add runc-fp as runc wrapper to inject failpoint
Signed-off-by: Wei Fu <fuweid89@gmail.com>
2023-10-02 17:44:41 +00:00
Akihiro Suda
b42bdd125d release: remove cri-containerd-*.tar.gz release bundles
The `cri-containerd-*.tar.gz` release bundles have been deprecated
since containerd v1.6.

These bundles are no longer created in the CI, however, the
corresponding Makefile targets are still kept, as they are still used by
external CIs.

Signed-off-by: Akihiro Suda <akihiro.suda.cz@hco.ntt.co.jp>
2023-09-13 23:22:32 +09:00
Enrico Weigelt, metux IT consult
f9c35feb30 Makefile: allow overriding GO_BUILD_FLAGS via environment
Allow overriding GO_BUILD_FLAGS via environment, do distros can easily
inject additionally required build flags (eg. -buildvcs=false).

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2023-08-25 16:26:13 +02:00
Maksym Pavlenko
90b8e6b711 Merge pull request #8915 from oss-qm/submit/bindir
Makefile: allow overriding the binary executable target dir
2023-08-21 11:38:20 -07:00
Enrico Weigelt, metux IT consult
7063ae1f6c Makefile: add rule for installing documentation
Distros usually like to install docs, so add a rule for that, so
dist maintainers don't need to care about the details.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2023-08-19 15:32:29 +02:00
Enrico Weigelt, metux IT consult
cac8b6f4bd Makefile: allow overriding the binary executable target dir
Distros tend to change this to specific locations (eg. on MVCC installs),
therefore introduce a generic environment variable that's a common practise
since 30+ years and thus already well known and supported by distros.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2023-08-08 14:11:03 +02:00
Fu Wei
165f8e414e Merge pull request #8928 from oss-qm/submit/makefile-fix-go-command 2023-08-08 05:31:48 +08:00
Enrico Weigelt, metux IT consult
965641dbc1 Makefile: allow REVISION be overwritten by environment
Required for distros that wanna use their local version and
can't have some (possibly failing) git commands being run here.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2023-08-07 17:23:00 +02:00
Enrico Weigelt, metux IT consult
fc32197d43 Makefile: fix overriding go command
There still was one place that's calling the `go` command directly
instead of using the $(GO) variable.

Fixes: 9ea25634bd
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2023-08-07 17:21:47 +02:00
Danny Canter
f3124d5693 Makefile: Remove hcsshim related TODO
There was a todo for the windows variant of dependency installation that
hinted at making an install-hcsshim.sh script, however Windows today doesn't
rely on a standalone OCI runtime binary that gets invoked by the shim. Rather,
container creation/management is all handled by the shim itself in-proc. Due to
this, `make` or `make binaries` basically fulfills that purpose as it
clones hcsshim and builds the shim along with containerd.

Signed-off-by: Danny Canter <danny@dcantah.dev>
2023-06-22 17:53:09 -07:00
Maksym Pavlenko
c50a3ef043 Update Makefile and CI
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2023-03-15 09:18:16 -07:00
Akihiro Suda
b473c2922f release: Add "cri-containerd.DEPRECATED.txt" in the deprecated cri-containerd-* bundles
Signed-off-by: Akihiro Suda <akihiro.suda.cz@hco.ntt.co.jp>
2023-01-29 03:32:15 +09:00
Kazuyoshi Kato
52a7480399 Remove github.com/gogo/protobuf again
While we need to support CRI v1alpha2, the implementation doesn't have
to be tied to gogo/protobuf.

Signed-off-by: Kazuyoshi Kato <katokazu@amazon.com>
2022-12-15 22:54:15 +00:00
ruiwen-zhao
234bf990dc Copy cri-api v1alpha2 from v0.25.4 to containerd internal directory
Signed-off-by: ruiwen-zhao <ruiwen@google.com>
2022-11-18 21:09:43 +00:00
Akihiro Suda
3fca677c19 Release: add static binaries
Fix issue 7296

Signed-off-by: Akihiro Suda <akihiro.suda.cz@hco.ntt.co.jp>
2022-11-12 03:52:37 +09:00
Samuel Karp
e8cdbee1e6 Merge pull request #7530 from kzys/critest-ginkgo-v2 2022-10-18 11:41:34 -07:00
Kazuyoshi Kato
a76d68ee48 Separate containerd logs in GitHub Actions' console
`::group::` groups containerd logs by default.

https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#grouping-log-lines

Signed-off-by: Kazuyoshi Kato <katokazu@amazon.com>
2022-10-17 16:27:23 +00:00
Nashwan Azhari
1982772029 Use go env to determine GOPATH in Makefile.
Signed-off-by: Nashwan Azhari <nazhari@cloudbasesolutions.com>
2022-10-17 15:03:37 +03:00
Wei Fu
be91a219c2 integration: CNI bridge wrapper with failpoint
Introduce cni-bridge-fp as CNI bridge plugin wrapper binary for CRI
testing.

With CNI `io.kubernetes.cri.pod-annotations` capability enabled, the user
can inject the failpoint setting by pod's annotation
`cniFailpointControlStateDir`, which stores each pod's failpoint setting
named by `${K8S_POD_NAMESPACE}-${K8S_POD_NAME}.json`.

When the plugin is invoked, the plugin will check the CNI_ARGS to get
the failpoint for the CNI_COMMAND from disk. For the testing, the user
can prepare setting before RunPodSandbox.

Signed-off-by: Wei Fu <fuweid89@gmail.com>
2022-07-22 23:25:40 +08:00
Wei Fu
5f9b318e50 bin/ctr,integration: new runc-shim with failpoint
Added new runc shim binary in integration testing.

The shim is named by io.containerd.runc-fp.v1, which allows us to use
additional OCI annotation `io.containerd.runtime.v2.shim.failpoint.*` to
setup shim task API's failpoint. Since the shim can be shared with
multiple container, like what kubernetes pod does, the failpoint will be
initialized during setup the shim server. So, the following the
container's OCI failpoint's annotation will not work.

This commit also updates the ctr tool that we can use `--annotation` to
specify annotations when run container. For example:

```bash
➜  ctr run -d --runtime runc-fp.v1 \
     --annotation "io.containerd.runtime.v2.shim.failpoint.Kill=1*error(sorry)" \
     docker.io/library/alpine:latest testing sleep 1d

➜  ctr t ls
TASK       PID       STATUS
testing    147304    RUNNING

➜  ctr t kill -s SIGKILL testing
ctr: sorry: unknown

➜  ctr t kill -s SIGKILL testing

➜  sudo ctr t ls
TASK       PID       STATUS
testing    147304    STOPPED
```

The runc-fp.v1 shim is based on core runc.v2. We can use it to inject
failpoint during testing complicated or big transcation API, like
kubernetes PodRunPodsandbox.

Signed-off-by: Wei Fu <fuweid89@gmail.com>
2022-07-22 23:25:40 +08:00
Kazuyoshi Kato
00eb74a4ca Make building static binaries simpler
This commit adds STATIC makefile variable to adjust LDFLAGS and build
tags accordingly.

Fixes #5824.

Signed-off-by: Kazuyoshi Kato <katokazu@amazon.com>
2022-06-04 03:34:41 +00:00
Sebastiaan van Stijn
1a8024b46a Makefile: use urfave_cli_no_docs for binaries that don't need it
We only need the `ToMan()` as part of the `bin/gen-manpages` binary, which
generates the man-pages; other binaries don't use this code, so we can
set the `urfave_cli_no_docs` build-tag to exclude `cpuguy83/md2man` and
`russross/blackfriday` (and other dependencies) from the binaries:

Before:

    ls -lh bin
    total 149M
    -rwxr-xr-x 1 root root  49M May 27 10:12 containerd
    -rwxr-xr-x 1 root root 6.1M May 27 10:13 containerd-shim
    -rwxr-xr-x 1 root root 8.1M May 27 10:13 containerd-shim-runc-v1
    -rwxr-xr-x 1 root root 8.2M May 27 10:13 containerd-shim-runc-v2
    -rwxr-xr-x 1 root root  22M May 27 10:12 containerd-stress
    -rwxr-xr-x 1 root root  26M May 27 10:11 ctr
    -rwxr-xr-x 1 root root  30M May 27 10:14 gen-manpages

    ls -l bin
    total 151676
    -rwxr-xr-x 1 root root 51280184 May 27 10:12 containerd
    -rwxr-xr-x 1 root root  6332416 May 27 10:13 containerd-shim
    -rwxr-xr-x 1 root root  8458240 May 27 10:13 containerd-shim-runc-v1
    -rwxr-xr-x 1 root root  8536064 May 27 10:13 containerd-shim-runc-v2
    -rwxr-xr-x 1 root root 22567160 May 27 10:12 containerd-stress
    -rwxr-xr-x 1 root root 26873752 May 27 10:11 ctr
    -rwxr-xr-x 1 root root 30508888 May 27 10:14 gen-manpages

After:

    ls -lh bin
    total 147M
    -rwxr-xr-x 1 root root  49M May 27 10:26 containerd
    -rwxr-xr-x 1 root root 6.1M May 27 10:26 containerd-shim
    -rwxr-xr-x 1 root root 8.1M May 27 10:26 containerd-shim-runc-v1
    -rwxr-xr-x 1 root root 8.2M May 27 10:26 containerd-shim-runc-v2
    -rwxr-xr-x 1 root root  22M May 27 10:26 containerd-stress
    -rwxr-xr-x 1 root root  26M May 27 10:26 ctr
    -rwxr-xr-x 1 root root  30M May 27 10:27 gen-manpages

    ls -l bin
    total 149912
    -rwxr-xr-x 1 root root 50930360 May 27 10:26 containerd
    -rwxr-xr-x 1 root root  6332416 May 27 10:26 containerd-shim
    -rwxr-xr-x 1 root root  8458240 May 27 10:26 containerd-shim-runc-v1
    -rwxr-xr-x 1 root root  8536064 May 27 10:26 containerd-shim-runc-v2
    -rwxr-xr-x 1 root root 22209144 May 27 10:26 containerd-stress
    -rwxr-xr-x 1 root root 26523896 May 27 10:26 ctr
    -rwxr-xr-x 1 root root 30508888 May 27 10:27 gen-manpages

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2022-05-27 19:57:12 +02:00
Ethan Lowman
4ba5415fb3 build: Fix references to check-protos target in Makefile
Signed-off-by: Ethan Lowman <ethan.lowman@datadoghq.com>
2022-05-24 17:41:10 -04:00
Kazuyoshi Kato
fd37cc75be Use protoc-gen-go instead of protoc-gen-gogoctrd
Signed-off-by: Kazuyoshi Kato <katokazu@amazon.com>
2022-04-22 15:31:53 +00:00
Kazuyoshi Kato
237ef0de9b Remove all gogoproto extensions
This commit removes the following gogoproto extensions;

- gogoproto.nullable
- gogoproto.customename
- gogoproto.unmarshaller_all
- gogoproto.stringer_all
- gogoproto.sizer_all
- gogoproto.marshaler_all
- gogoproto.goproto_unregonized_all
- gogoproto.goproto_stringer_all
- gogoproto.goproto_getters_all

None of them are supported by Google's toolchain (see #6564).

Signed-off-by: Kazuyoshi Kato <katokazu@amazon.com>
2022-04-20 07:23:28 +00:00
Kazuyoshi Kato
fd704d3341 Build bin/gen-manpages instead of using "go run"
Signed-off-by: Kazuyoshi Kato <katokazu@amazon.com>
2022-04-18 21:02:27 +00:00
Jordan Karaze
cf571fa968 added make help for cri integration
Signed-off-by: Jordan Karaze <jordan.karaze@ibm.com>
2022-03-28 16:44:12 -05:00
Derek McGowan
46312f4a1b Update makefile to remove API submodule
Signed-off-by: Derek McGowan <derek@mcg.dev>
2022-01-18 14:48:33 -08:00
Daniel Canter
34c4abc341 Fix default makefile target for windows
A recent change altered the default target that would get run for the makefile.
This ended up making a standalone 'make' invocation only build the Windows
shim and nothing else. This was affecting the CI of some other projects that
relied on 'make' building containerd, ctr, and friends.

Signed-off-by: Daniel Canter <dcanter@microsoft.com>
2021-12-16 06:08:04 -05:00