Skip to content

Commit 31c4701

Browse files
authored
Fix containerd 2.x configuration (#11963)
Signed-off-by: ekko <lihai.tu@daocloud.io>
1 parent 011e839 commit 31c4701

File tree

3 files changed

+130
-40
lines changed

3 files changed

+130
-40
lines changed

roles/container-engine/containerd/tasks/main.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@
108108

109109
- name: Containerd | Copy containerd config file
110110
template:
111-
src: config.toml.j2
111+
src: "{{ 'config.toml.j2' if containerd_version is version('2.0.0', '>=') else 'config-v1.toml.j2' }}"
112112
dest: "{{ containerd_cfg_dir }}/config.toml"
113113
owner: "root"
114114
mode: "0640"
Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
# This is for containerd v1 for compatibility
2+
version = 2
3+
4+
root = "{{ containerd_storage_dir }}"
5+
state = "{{ containerd_state_dir }}"
6+
oom_score = {{ containerd_oom_score }}
7+
8+
{% if containerd_extra_args is defined %}
9+
{{ containerd_extra_args }}
10+
{% endif %}
11+
12+
[grpc]
13+
max_recv_message_size = {{ containerd_grpc_max_recv_message_size }}
14+
max_send_message_size = {{ containerd_grpc_max_send_message_size }}
15+
16+
[debug]
17+
address = "{{ containerd_debug_address }}"
18+
level = "{{ containerd_debug_level }}"
19+
format = "{{ containerd_debug_format }}"
20+
uid = {{ containerd_debug_uid }}
21+
gid = {{ containerd_debug_gid }}
22+
23+
[metrics]
24+
address = "{{ containerd_metrics_address }}"
25+
grpc_histogram = {{ containerd_metrics_grpc_histogram | lower }}
26+
27+
[plugins]
28+
[plugins."io.containerd.grpc.v1.cri"]
29+
sandbox_image = "{{ pod_infra_image_repo }}:{{ pod_infra_image_tag }}"
30+
max_container_log_line_size = {{ containerd_max_container_log_line_size }}
31+
enable_unprivileged_ports = {{ containerd_enable_unprivileged_ports | lower }}
32+
enable_unprivileged_icmp = {{ containerd_enable_unprivileged_icmp | lower }}
33+
enable_selinux = {{ containerd_enable_selinux | lower }}
34+
disable_apparmor = {{ containerd_disable_apparmor | lower }}
35+
tolerate_missing_hugetlb_controller = {{ containerd_tolerate_missing_hugetlb_controller | lower }}
36+
disable_hugetlb_controller = {{ containerd_disable_hugetlb_controller | lower }}
37+
image_pull_progress_timeout = "{{ containerd_image_pull_progress_timeout }}"
38+
{% if enable_cdi %}
39+
enable_cdi = true
40+
cdi_spec_dirs = ["/etc/cdi", "/var/run/cdi"]
41+
{% endif %}
42+
[plugins."io.containerd.grpc.v1.cri".containerd]
43+
default_runtime_name = "{{ containerd_default_runtime }}"
44+
snapshotter = "{{ containerd_snapshotter }}"
45+
discard_unpacked_layers = {{ containerd_discard_unpacked_layers | lower }}
46+
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes]
47+
{% for runtime in [containerd_runc_runtime] + containerd_additional_runtimes %}
48+
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.{{ runtime.name }}]
49+
runtime_type = "{{ runtime.type }}"
50+
runtime_engine = "{{ runtime.engine }}"
51+
runtime_root = "{{ runtime.root }}"
52+
{% if runtime.base_runtime_spec is defined %}
53+
base_runtime_spec = "{{ containerd_cfg_dir }}/{{ runtime.base_runtime_spec }}"
54+
{% endif %}
55+
56+
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.{{ runtime.name }}.options]
57+
{% for key, value in runtime.options.items() %}
58+
{% if value | string != "true" and value | string != "false" %}
59+
{{ key }} = "{{ value }}"
60+
{% else %}
61+
{{ key }} = {{ value }}
62+
{% endif %}
63+
{% endfor %}
64+
{% endfor %}
65+
{% if kata_containers_enabled %}
66+
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.kata-qemu]
67+
runtime_type = "io.containerd.kata-qemu.v2"
68+
{% endif %}
69+
{% if gvisor_enabled %}
70+
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runsc]
71+
runtime_type = "io.containerd.runsc.v1"
72+
{% endif %}
73+
[plugins."io.containerd.grpc.v1.cri".registry]
74+
config_path = "{{ containerd_cfg_dir }}/certs.d"
75+
{% for registry in containerd_registry_auth if registry['registry'] is defined %}
76+
{% if (registry['username'] is defined and registry['password'] is defined) or registry['auth'] is defined %}
77+
[plugins."io.containerd.grpc.v1.cri".registry.configs."{{ registry['registry'] }}".auth]
78+
{% if registry['username'] is defined and registry['password'] is defined %}
79+
password = "{{ registry['password'] }}"
80+
username = "{{ registry['username'] }}"
81+
{% else %}
82+
auth = "{{ registry['auth'] }}"
83+
{% endif %}
84+
{% endif %}
85+
{% endfor %}
86+
87+
{% if nri_enabled and containerd_version is version('1.7.0', '>=') %}
88+
[plugins."io.containerd.nri.v1.nri"]
89+
disable = false
90+
{% endif %}
91+
92+
{% if containerd_tracing_enabled %}
93+
[plugins."io.containerd.tracing.processor.v1.otlp"]
94+
endpoint = "{{ containerd_tracing_endpoint }}"
95+
protocol = "{{ containerd_tracing_protocol }}"
96+
{% if containerd_tracing_protocol == "grpc" %}
97+
insecure = false
98+
{% endif %}
99+
[plugins."io.containerd.internal.v1.tracing"]
100+
sampling_ratio = {{ containerd_tracing_sampling_ratio }}
101+
service_name = "{{ containerd_tracing_service_name }}"
102+
{% endif %}

roles/container-engine/containerd/templates/config.toml.j2

Lines changed: 27 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,4 @@
1-
{% if containerd_version is version('2.0.0', '>=') %}
21
version = 3
3-
{% else %}
4-
version = 2
5-
{% endif %}
6-
72

83
root = "{{ containerd_storage_dir }}"
94
state = "{{ containerd_state_dir }}"
@@ -29,66 +24,59 @@ oom_score = {{ containerd_oom_score }}
2924
grpc_histogram = {{ containerd_metrics_grpc_histogram | lower }}
3025

3126
[plugins]
32-
[plugins."io.containerd.grpc.v1.cri"]
33-
sandbox_image = "{{ pod_infra_image_repo }}:{{ pod_infra_image_tag }}"
27+
[plugins."io.containerd.cri.v1.runtime"]
3428
max_container_log_line_size = {{ containerd_max_container_log_line_size }}
3529
enable_unprivileged_ports = {{ containerd_enable_unprivileged_ports | lower }}
3630
enable_unprivileged_icmp = {{ containerd_enable_unprivileged_icmp | lower }}
3731
enable_selinux = {{ containerd_enable_selinux | lower }}
3832
disable_apparmor = {{ containerd_disable_apparmor | lower }}
3933
tolerate_missing_hugetlb_controller = {{ containerd_tolerate_missing_hugetlb_controller | lower }}
4034
disable_hugetlb_controller = {{ containerd_disable_hugetlb_controller | lower }}
41-
image_pull_progress_timeout = "{{ containerd_image_pull_progress_timeout }}"
4235
{% if enable_cdi %}
4336
enable_cdi = true
4437
cdi_spec_dirs = ["/etc/cdi", "/var/run/cdi"]
4538
{% endif %}
46-
[plugins."io.containerd.grpc.v1.cri".containerd]
47-
default_runtime_name = "{{ containerd_default_runtime }}"
48-
snapshotter = "{{ containerd_snapshotter }}"
49-
discard_unpacked_layers = {{ containerd_discard_unpacked_layers | lower }}
50-
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes]
39+
40+
[plugins."io.containerd.cri.v1.runtime".containerd]
41+
default_runtime_name = "{{ containerd_default_runtime }}"
42+
[plugins."io.containerd.cri.v1.runtime".containerd.runtimes]
5143
{% for runtime in [containerd_runc_runtime] + containerd_additional_runtimes %}
52-
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.{{ runtime.name }}]
53-
runtime_type = "{{ runtime.type }}"
54-
runtime_engine = "{{ runtime.engine }}"
55-
runtime_root = "{{ runtime.root }}"
44+
[plugins."io.containerd.cri.v1.runtime".containerd.runtimes.{{ runtime.name }}]
45+
runtime_type = "{{ runtime.type }}"
46+
runtime_engine = "{{ runtime.engine }}"
47+
runtime_root = "{{ runtime.root }}"
5648
{% if runtime.base_runtime_spec is defined %}
57-
base_runtime_spec = "{{ containerd_cfg_dir }}/{{ runtime.base_runtime_spec }}"
49+
base_runtime_spec = "{{ containerd_cfg_dir }}/{{ runtime.base_runtime_spec }}"
5850
{% endif %}
5951

60-
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.{{ runtime.name }}.options]
52+
[plugins."io.containerd.cri.v1.runtime".containerd.runtimes.{{ runtime.name }}.options]
6153
{% for key, value in runtime.options.items() %}
6254
{% if value | string != "true" and value | string != "false" %}
63-
{{ key }} = "{{ value }}"
55+
{{ key }} = "{{ value }}"
6456
{% else %}
65-
{{ key }} = {{ value }}
57+
{{ key }} = {{ value }}
6658
{% endif %}
6759
{% endfor %}
6860
{% endfor %}
6961
{% if kata_containers_enabled %}
70-
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.kata-qemu]
71-
runtime_type = "io.containerd.kata-qemu.v2"
62+
[plugins."io.containerd.cri.v1.runtime".containerd.runtimes.kata-qemu]
63+
runtime_type = "io.containerd.kata-qemu.v2"
7264
{% endif %}
7365
{% if gvisor_enabled %}
74-
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runsc]
75-
runtime_type = "io.containerd.runsc.v1"
66+
[plugins."io.containerd.cri.v1.runtime".containerd.runtimes.runsc]
67+
runtime_type = "io.containerd.runsc.v1"
7668
{% endif %}
77-
[plugins."io.containerd.grpc.v1.cri".registry]
78-
config_path = "{{ containerd_cfg_dir }}/certs.d"
79-
{% for registry in containerd_registry_auth if registry['registry'] is defined %}
80-
{% if (registry['username'] is defined and registry['password'] is defined) or registry['auth'] is defined %}
81-
[plugins."io.containerd.grpc.v1.cri".registry.configs."{{ registry['registry'] }}".auth]
82-
{% if registry['username'] is defined and registry['password'] is defined %}
83-
password = "{{ registry['password'] }}"
84-
username = "{{ registry['username'] }}"
85-
{% else %}
86-
auth = "{{ registry['auth'] }}"
87-
{% endif %}
88-
{% endif %}
89-
{% endfor %}
9069

91-
{% if nri_enabled and containerd_version is version('1.7.0', '>=') %}
70+
[plugins."io.containerd.cri.v1.images"]
71+
snapshotter = "{{ containerd_snapshotter }}"
72+
discard_unpacked_layers = {{ containerd_discard_unpacked_layers | lower }}
73+
image_pull_progress_timeout = "{{ containerd_image_pull_progress_timeout }}"
74+
[plugins."io.containerd.cri.v1.images".pinned_images]
75+
sandbox = "{{ pod_infra_image_repo }}:{{ pod_infra_image_tag }}"
76+
[plugins."io.containerd.cri.v1.images".registry]
77+
config_path = "{{ containerd_cfg_dir }}/certs.d"
78+
79+
{% if nri_enabled %}
9280
[plugins."io.containerd.nri.v1.nri"]
9381
disable = false
9482
{% endif %}

0 commit comments

Comments
 (0)