From 851abbc2e37bcf9f9ea2b2a263eab3acc4a1e072 Mon Sep 17 00:00:00 2001 From: Ali Afsharzadeh Date: Thu, 8 Jan 2026 17:39:40 +0330 Subject: [PATCH] Disable `discard_unpacked_layers` for containerd >= 2.1 (#12821) Only set `discard_unpacked_layers` in the CRI image config for containerd versions earlier than 2.1.0. Starting with containerd v2.1, the CRI plugin uses the Transfer Service for image pulls by default. The `discard_unpacked_layers` option is incompatible with the Transfer Service and triggers containerd to fall back to local image pulls, logging a warning. This change prevents unsupported configuration from being applied on newer containerd versions, avoiding runtime warnings and ensuring default image pull behavior. Signed-off-by: Ali Afsharzadeh --- roles/container-engine/containerd/defaults/main.yml | 4 ++-- roles/container-engine/containerd/templates/config.toml.j2 | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/roles/container-engine/containerd/defaults/main.yml b/roles/container-engine/containerd/defaults/main.yml index 87f629220..5575091eb 100644 --- a/roles/container-engine/containerd/defaults/main.yml +++ b/roles/container-engine/containerd/defaults/main.yml @@ -35,8 +35,8 @@ containerd_default_base_runtime_spec_patch: hard: "{{ containerd_base_runtime_spec_rlimit_nofile }}" soft: "{{ containerd_base_runtime_spec_rlimit_nofile }}" -# Can help reduce disk usage -# https://github.com/containerd/containerd/discussions/6295 +# Only for containerd < 2.1; discard unpacked layers to save disk space +# https://github.com/containerd/containerd/blob/release/2.1/docs/cri/config.md#image-pull-configuration-since-containerd-v21 containerd_discard_unpacked_layers: true containerd_base_runtime_specs: diff --git a/roles/container-engine/containerd/templates/config.toml.j2 b/roles/container-engine/containerd/templates/config.toml.j2 index 7c3da7843..37534ff64 100644 --- a/roles/container-engine/containerd/templates/config.toml.j2 +++ b/roles/container-engine/containerd/templates/config.toml.j2 @@ -76,7 +76,9 @@ oom_score = {{ containerd_oom_score }} [plugins."io.containerd.cri.v1.images"] snapshotter = "{{ containerd_snapshotter }}" +{% if containerd_discard_unpacked_layers and containerd_version is version('2.1.0', '<') %} discard_unpacked_layers = {{ containerd_discard_unpacked_layers | lower }} +{% endif %} image_pull_progress_timeout = "{{ containerd_image_pull_progress_timeout }}" [plugins."io.containerd.cri.v1.images".pinned_images] sandbox = "{{ pod_infra_image_repo }}:{{ pod_infra_image_tag }}"