Skip to content

Commit d4b8445

Browse files
committed
feat: support CRI configuration merging and reimplement registry config
Containerd doesn't support merging plugin configuration from multiple sources, and Talos has several pieces which configure CRI plugin: (see containerd/containerd#5837) * base config * registry mirror config * system extensions * ... So we implement our own simple way of merging config parts (by simply concatenating text files) to build a final `cri.toml`. At the same time containerd migrated to a new format to specify registry mirror configuration, while old way (via CRI config) is going to be removed in 1.7.0. New way also allows to apply most of registry configuration (except for auth) on the fly. Also, containerd was updated to 1.6.0-rc.0 and runc to 1.1.0. Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
1 parent f94c8c6 commit d4b8445

File tree

25 files changed

+823
-202
lines changed

25 files changed

+823
-202
lines changed

Dockerfile

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -378,12 +378,13 @@ COPY --from=machined-build-amd64 /machined /rootfs/sbin/init
378378
# symlinks to avoid accidentally cleaning them up.
379379
COPY ./hack/cleanup.sh /toolchain/bin/cleanup.sh
380380
RUN cleanup.sh /rootfs
381-
COPY --chmod=0644 hack/containerd.toml /rootfs/etc/containerd/config.toml
382-
COPY --chmod=0644 hack/cri-containerd.toml /rootfs/etc/cri/containerd.toml
383-
RUN touch /rootfs/etc/{resolv.conf,hosts,os-release,machine-id}
384-
RUN mkdir -pv /rootfs/{boot,usr/local/share,mnt,system,opt}
381+
RUN mkdir -pv /rootfs/{boot,etc/cri/conf.d/hosts,usr/local/share,mnt,system,opt}
385382
RUN mkdir -pv /rootfs/{etc/kubernetes/manifests,etc/cni/net.d,usr/libexec/kubernetes}
386383
RUN mkdir -pv /rootfs/opt/{containerd/bin,containerd/lib}
384+
COPY --chmod=0644 hack/containerd.toml /rootfs/etc/containerd/config.toml
385+
COPY --chmod=0644 hack/cri-containerd.toml /rootfs/etc/cri/containerd.toml
386+
COPY --chmod=0644 hack/cri-plugin.part /rootfs/etc/cri/conf.d/00-base.part
387+
RUN touch /rootfs/etc/{resolv.conf,hosts,os-release,machine-id,cri/conf.d/cri.toml,cri/conf.d/01-registries.part}
387388
RUN ln -s /etc/ssl /rootfs/etc/pki
388389
RUN ln -s /etc/ssl /rootfs/usr/share/ca-certificates
389390
RUN ln -s /etc/ssl /rootfs/usr/local/share/ca-certificates
@@ -422,12 +423,13 @@ COPY --from=machined-build-arm64 /machined /rootfs/sbin/init
422423
# symlinks to avoid accidentally cleaning them up.
423424
COPY ./hack/cleanup.sh /toolchain/bin/cleanup.sh
424425
RUN cleanup.sh /rootfs
425-
COPY --chmod=0644 hack/containerd.toml /rootfs/etc/containerd/containerd.toml
426-
COPY --chmod=0644 hack/cri-containerd.toml /rootfs/etc/cri/containerd.toml
427-
RUN touch /rootfs/etc/{resolv.conf,hosts,os-release,machine-id}
428-
RUN mkdir -pv /rootfs/{boot,usr/local/share,mnt,system,opt}
426+
RUN mkdir -pv /rootfs/{boot,etc/cri/conf.d/hosts,usr/local/share,mnt,system,opt}
429427
RUN mkdir -pv /rootfs/{etc/kubernetes/manifests,etc/cni/net.d,usr/libexec/kubernetes}
430428
RUN mkdir -pv /rootfs/opt/{containerd/bin,containerd/lib}
429+
COPY --chmod=0644 hack/containerd.toml /rootfs/etc/containerd/config.toml
430+
COPY --chmod=0644 hack/cri-containerd.toml /rootfs/etc/cri/containerd.toml
431+
COPY --chmod=0644 hack/cri-plugin.part /rootfs/etc/cri/conf.d/00-base.part
432+
RUN touch /rootfs/etc/{resolv.conf,hosts,os-release,machine-id,cri/conf.d/cri.toml,cri/conf.d/01-registries.part}
431433
RUN ln -s /etc/ssl /rootfs/etc/pki
432434
RUN ln -s /etc/ssl /rootfs/usr/share/ca-certificates
433435
RUN ln -s /etc/ssl /rootfs/usr/local/share/ca-certificates

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ NAME = Talos
1313

1414
ARTIFACTS := _out
1515
TOOLS ?= ghcr.io/talos-systems/tools:v0.10.0-alpha.0-1-g67314b1
16-
PKGS ?= v0.10.0-alpha.0-11-g5dd08a7
16+
PKGS ?= v0.10.0-alpha.0-12-g5d4d8d6
1717
EXTRAS ?= v0.8.0-alpha.0-1-g7c1f3cc
1818
GO_VERSION ?= 1.17
1919
GOFUMPT_VERSION ?= v0.1.1

go.mod

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,8 @@ require (
3636
github.com/beevik/ntp v0.3.0
3737
github.com/cenkalti/backoff/v4 v4.1.2
3838
github.com/containerd/cgroups v1.0.2
39-
github.com/containerd/containerd v1.5.9
39+
github.com/containerd/containerd v1.6.0-rc.0
40+
github.com/containerd/containerd/api v1.6.0-beta.3
4041
github.com/containerd/cri v1.19.0
4142
github.com/containerd/typeurl v1.0.2
4243
github.com/containernetworking/cni v1.0.1
@@ -73,6 +74,7 @@ require (
7374
github.com/mdlayher/netx v0.0.0-20200512211805-669a06fde734
7475
github.com/opencontainers/runtime-spec v1.0.3-0.20210326190908-1c3f411f0417
7576
github.com/packethost/packngo v0.21.0
77+
github.com/pelletier/go-toml v1.9.4
7678
github.com/pin/tftp v2.1.0+incompatible
7779
github.com/pmorjan/kmod v1.0.0
7880
github.com/prometheus/procfs v0.7.3
@@ -136,8 +138,8 @@ require (
136138
github.com/Azure/go-autorest/logger v0.2.1 // indirect
137139
github.com/Azure/go-autorest/tracing v0.6.0 // indirect
138140
github.com/MakeNowJust/heredoc v0.0.0-20170808103936-bb23615498cd // indirect
139-
github.com/Microsoft/go-winio v0.4.17 // indirect
140-
github.com/Microsoft/hcsshim v0.8.23 // indirect
141+
github.com/Microsoft/go-winio v0.5.1 // indirect
142+
github.com/Microsoft/hcsshim v0.9.1 // indirect
141143
github.com/PuerkitoBio/purell v1.1.1 // indirect
142144
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 // indirect
143145
github.com/armon/circbuf v0.0.0-20190214190532-5111143e8da2 // indirect
@@ -149,7 +151,7 @@ require (
149151
github.com/cespare/xxhash/v2 v2.1.2 // indirect
150152
github.com/chai2010/gettext-go v0.0.0-20160711120539-c6fed771bfd5 // indirect
151153
github.com/cilium/ebpf v0.7.0 // indirect
152-
github.com/containerd/continuity v0.1.0 // indirect
154+
github.com/containerd/continuity v0.2.2 // indirect
153155
github.com/containerd/fifo v1.0.0 // indirect
154156
github.com/containerd/go-cni v1.1.1 // indirect
155157
github.com/containerd/ttrpc v1.1.0 // indirect
@@ -167,7 +169,8 @@ require (
167169
github.com/gertd/go-pluralize v0.1.7 // indirect
168170
github.com/ghodss/yaml v1.0.0 // indirect
169171
github.com/go-errors/errors v1.0.1 // indirect
170-
github.com/go-logr/logr v1.2.0 // indirect
172+
github.com/go-logr/logr v1.2.2 // indirect
173+
github.com/go-logr/stdr v1.2.2 // indirect
171174
github.com/go-openapi/jsonpointer v0.19.5 // indirect
172175
github.com/go-openapi/jsonreference v0.19.5 // indirect
173176
github.com/go-openapi/swag v0.19.14 // indirect
@@ -177,14 +180,14 @@ require (
177180
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
178181
github.com/golang/protobuf v1.5.2 // indirect
179182
github.com/google/btree v1.0.1 // indirect
180-
github.com/google/gofuzz v1.1.0 // indirect
183+
github.com/google/gofuzz v1.2.0 // indirect
181184
github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect
182185
github.com/googleapis/gax-go/v2 v2.1.1 // indirect
183186
github.com/googleapis/gnostic v0.5.5 // indirect
184187
github.com/gorilla/mux v1.8.0 // indirect
185188
github.com/gosuri/uilive v0.0.4 // indirect
186189
github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7 // indirect
187-
github.com/hashicorp/errwrap v1.0.0 // indirect
190+
github.com/hashicorp/errwrap v1.1.0 // indirect
188191
github.com/hashicorp/go-cleanhttp v0.5.2 // indirect
189192
github.com/hashicorp/go-immutable-radix v1.3.1 // indirect
190193
github.com/hashicorp/go-memdb v1.3.2 // indirect
@@ -217,24 +220,23 @@ require (
217220
github.com/mitchellh/mapstructure v1.4.3 // indirect
218221
github.com/moby/locker v1.0.1 // indirect
219222
github.com/moby/spdystream v0.2.0 // indirect
220-
github.com/moby/sys/mountinfo v0.4.1 // indirect
223+
github.com/moby/sys/mountinfo v0.5.0 // indirect
224+
github.com/moby/sys/signal v0.6.0 // indirect
221225
github.com/moby/term v0.0.0-20210610120745-9d4ed1856297 // indirect
222226
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
223227
github.com/modern-go/reflect2 v1.0.2 // indirect
224228
github.com/monochromegane/go-gitignore v0.0.0-20200626010858-205db1a8cc00 // indirect
225-
github.com/morikuni/aec v1.0.0 // indirect
226229
github.com/nsf/termbox-go v0.0.0-20190121233118-02980233997d // indirect
227230
github.com/opencontainers/go-digest v1.0.0 // indirect
228231
github.com/opencontainers/image-spec v1.0.2 // indirect
229-
github.com/opencontainers/runc v1.0.2 // indirect
232+
github.com/opencontainers/runc v1.0.3 // indirect
230233
github.com/opencontainers/selinux v1.8.2 // indirect
231-
github.com/pelletier/go-toml v1.9.4 // indirect
232234
github.com/peterbourgon/diskv v2.0.1+incompatible // indirect
233235
github.com/pkg/errors v0.9.1 // indirect
234236
github.com/pmezard/go-difflib v1.0.0 // indirect
235237
github.com/prometheus/client_golang v1.11.0 // indirect
236238
github.com/prometheus/client_model v0.2.0 // indirect
237-
github.com/prometheus/common v0.28.0 // indirect
239+
github.com/prometheus/common v0.30.0 // indirect
238240
github.com/rifflock/lfshook v0.0.0-20180920164130-b9218ef580f5 // indirect
239241
github.com/rivo/uniseg v0.2.0 // indirect
240242
github.com/russross/blackfriday v1.5.2 // indirect
@@ -260,11 +262,9 @@ require (
260262
go.etcd.io/etcd/raft/v3 v3.5.1 // indirect
261263
go.etcd.io/etcd/server/v3 v3.5.1 // indirect
262264
go.opencensus.io v0.23.0 // indirect
263-
go.opentelemetry.io/contrib v0.20.0 // indirect
264-
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.20.0 // indirect
265-
go.opentelemetry.io/otel v0.20.0 // indirect
266-
go.opentelemetry.io/otel/metric v0.20.0 // indirect
267-
go.opentelemetry.io/otel/trace v0.20.0 // indirect
265+
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.28.0 // indirect
266+
go.opentelemetry.io/otel v1.3.0 // indirect
267+
go.opentelemetry.io/otel/trace v1.3.0 // indirect
268268
go.starlark.net v0.0.0-20200306205701-8dd3e2ee1dd5 // indirect
269269
go.uber.org/multierr v1.7.0 // indirect
270270
go4.org/intern v0.0.0-20211027215823-ae77deb06f29 // indirect

0 commit comments

Comments
 (0)