blob: 37c71c5d9af5fee3f45b1024dba299f27c4f17d3 [file] [log] [blame]
Serge Bazanskif369cfa2020-05-22 18:36:42 +02001// Copyright 2020 The Monogon Project Authors.
2//
3// SPDX-License-Identifier: Apache-2.0
4//
5// Licensed under the Apache License, Version 2.0 (the "License");
6// you may not use this file except in compliance with the License.
7// You may obtain a copy of the License at
8//
9// http://www.apache.org/licenses/LICENSE-2.0
10//
11// Unless required by applicable law or agreed to in writing, software
12// distributed under the License is distributed on an "AS IS" BASIS,
13// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14// See the License for the specific language governing permissions and
15// limitations under the License.
16
Serge Bazanski4b1e37c2021-09-28 12:49:15 +020017package fietsje
18
19// deps_containerd.go contains all dependencies required by containerd/runc.
Serge Bazanskif369cfa2020-05-22 18:36:42 +020020
21func depsContainerd(p *planner) {
22 p.collectOverride(
Serge Bazanskif12bedf2021-01-15 16:58:50 +010023 "github.com/containerd/containerd", "v1.4.3",
Serge Bazanskif369cfa2020-05-22 18:36:42 +020024 buildTags("no_zfs", "no_aufs", "no_devicemapper", "no_btrfs"),
25 disabledProtoBuild,
Serge Bazanskif369cfa2020-05-22 18:36:42 +020026 ).use(
27 "github.com/BurntSushi/toml",
28 "github.com/Microsoft/go-winio",
29 "github.com/beorn7/perks",
30 "github.com/cespare/xxhash/v2",
31 "github.com/cilium/ebpf",
32 "github.com/containerd/btrfs",
33 "github.com/containerd/console",
34 "github.com/containerd/continuity",
35 "github.com/containerd/fifo",
36 "github.com/containerd/go-cni",
37 "github.com/containerd/go-runc",
Lorenz Brunb876fc32020-07-14 13:54:01 +020038 "github.com/containerd/imgcrypt",
39 "github.com/containers/ocicrypt",
Serge Bazanskif369cfa2020-05-22 18:36:42 +020040 "github.com/containerd/typeurl",
Serge Bazanskif369cfa2020-05-22 18:36:42 +020041 "github.com/coreos/go-systemd/v22",
Lorenz Brunb876fc32020-07-14 13:54:01 +020042 "github.com/cpuguy83/go-md2man/v2",
Serge Bazanskif369cfa2020-05-22 18:36:42 +020043 "github.com/davecgh/go-spew",
Serge Bazanskif369cfa2020-05-22 18:36:42 +020044 "github.com/docker/docker",
45 "github.com/docker/go-events",
46 "github.com/docker/go-metrics",
47 "github.com/docker/go-units",
48 "github.com/docker/spdystream",
49 "github.com/emicklei/go-restful",
Lorenz Brunb876fc32020-07-14 13:54:01 +020050 "github.com/fullsailor/pkcs7",
Serge Bazanskif369cfa2020-05-22 18:36:42 +020051 "github.com/godbus/dbus/v5",
52 "github.com/gogo/protobuf",
Lorenz Brunb876fc32020-07-14 13:54:01 +020053 "github.com/go-logr/logr",
Serge Bazanskif369cfa2020-05-22 18:36:42 +020054 "github.com/google/gofuzz",
55 "github.com/google/uuid",
56 "github.com/hashicorp/errwrap",
57 "github.com/hashicorp/go-multierror",
58 "github.com/hashicorp/golang-lru",
59 "github.com/imdario/mergo",
60 "github.com/json-iterator/go",
61 "github.com/konsorten/go-windows-terminal-sequences",
62 "github.com/matttproud/golang_protobuf_extensions",
63 "github.com/modern-go/concurrent",
64 "github.com/modern-go/reflect2",
65 "github.com/opencontainers/go-digest",
66 "github.com/opencontainers/image-spec",
67 "github.com/opencontainers/runc",
68 "github.com/opencontainers/runtime-spec",
69 "github.com/pkg/errors",
70 "github.com/prometheus/client_golang",
71 "github.com/prometheus/client_model",
72 "github.com/prometheus/common",
73 "github.com/prometheus/procfs",
Lorenz Brunb876fc32020-07-14 13:54:01 +020074 "github.com/russross/blackfriday/v2",
Serge Bazanskid9ed6562021-01-07 16:06:44 +010075 "github.com/shurcooL/sanitized_anchor_name",
Serge Bazanskif369cfa2020-05-22 18:36:42 +020076 "github.com/sirupsen/logrus",
Serge Bazanskif369cfa2020-05-22 18:36:42 +020077 "github.com/syndtr/gocapability",
78 "github.com/tchap/go-patricia",
79 "github.com/urfave/cli",
80 "go.etcd.io/bbolt",
81 "go.opencensus.io",
82 "golang.org/x/crypto",
83 "golang.org/x/oauth2",
84 "golang.org/x/sync",
Serge Bazanskif369cfa2020-05-22 18:36:42 +020085 "google.golang.org/genproto",
86 "gopkg.in/inf.v0",
87 "gopkg.in/yaml.v2",
Lorenz Brunb876fc32020-07-14 13:54:01 +020088 "k8s.io/klog/v2",
Serge Bazanskif369cfa2020-05-22 18:36:42 +020089 "sigs.k8s.io/yaml",
Lorenz Brun74e8e5c2021-01-26 14:00:50 +010090 ).with(disabledProtoBuild, patches("containerd-netns-statedir.patch")).use(
91 "github.com/containerd/cri",
Serge Bazanskif369cfa2020-05-22 18:36:42 +020092 ).with(disabledProtoBuild).use(
93 "github.com/Microsoft/hcsshim",
94 "github.com/containerd/cgroups",
Lorenz Brun74e8e5c2021-01-26 14:00:50 +010095
Serge Bazanskif369cfa2020-05-22 18:36:42 +020096 "github.com/gogo/googleapis",
97 ).with(buildTags("selinux")).use(
98 "github.com/opencontainers/selinux",
Serge Bazanskif12bedf2021-01-15 16:58:50 +010099 "github.com/willf/bitset",
100 ).with(patches(
101 "ttrpc-hacks.patch",
102 )).use(
103 "github.com/containerd/ttrpc",
Lorenz Brun74e8e5c2021-01-26 14:00:50 +0100104 ).with(patches(
105 "cni-fix-cachepath.patch",
106 )).use("github.com/containernetworking/cni").replace(
Serge Bazanskif12bedf2021-01-15 16:58:50 +0100107 // ttrpc is broken by go protobuf v2, this is a tentative PR that's
108 // not yet merged by upstream.
109 // See: https://github.com/containerd/ttrpc/pull/67
110 //
Serge Bazanski216fe7b2021-05-21 18:36:16 +0200111 // It also contains our own fix that builds up on the above and allows services to
112 // return the original status error library values. This is required for ttrpc to
113 // actually work from runsc and for results to be correctly interpreted by
114 // containerd. See:
115 // https://github.com/monogon-dev/ttrpc/commit/222b428f008e3ecb11cfff12e3fd92e3143a2f01
Serge Bazanskif12bedf2021-01-15 16:58:50 +0100116 //
117 // Note: this is not a good fix, and has known issues, like not being
118 // able to return Details in gRPC status errors. However, with the
119 // limited usage within gvisor/containerd it works. In the future
120 // upstream will have to resolve this properly, eg. port ttrpc away
121 // from gogo, or fix gogo to work with the new protobuf APU.
122 "github.com/containerd/ttrpc",
123 "github.com/monogon-dev/ttrpc", "222b428f008e3ecb11cfff12e3fd92e3143a2f01",
124 )
125
Serge Bazanski216fe7b2021-05-21 18:36:16 +0200126 // This is depended on by github.com/containerd/containerd, but not mentioned in
127 // their vendor.conf. They seem to be moving off of vendoring to gomod, so this
128 // should be reverted on the next containerd bump (when fietsje will panic about
129 // vendor.conf missing).
Serge Bazanskif12bedf2021-01-15 16:58:50 +0100130 p.collectOverride(
131 "github.com/checkpoint-restore/go-criu/v4", "v4.1.0",
Serge Bazanskif369cfa2020-05-22 18:36:42 +0200132 )
133
134 // containernetworking/plugins
135 p.collectOverride(
136 "github.com/containernetworking/plugins", "v0.8.2",
Serge Bazanskif369cfa2020-05-22 18:36:42 +0200137 ).use(
138 "github.com/alexflint/go-filemutex",
139 "github.com/coreos/go-iptables",
140 "github.com/j-keck/arping",
141 "github.com/safchain/ethtool",
142 )
143}