From f7c5f458335666ac8353f4ce0e783fc4f0e062b4 Mon Sep 17 00:00:00 2001
From: Erwan Miran <mirwan@users.noreply.github.com>
Date: Mon, 17 Feb 2020 11:15:29 +0100
Subject: [PATCH] Ability to define plugins.cri.containerd params (#5624)

* Ability to define plugins.cri.containerd params

* addition of containerd field commented as an example

* documentation of containerd_config
---
 docs/vars.md                                               | 2 ++
 roles/container-engine/containerd/defaults/main.yml        | 2 ++
 roles/container-engine/containerd/templates/config.toml.j2 | 6 ++++++
 3 files changed, 10 insertions(+)

diff --git a/docs/vars.md b/docs/vars.md
index b2a9dc452..20bf85456 100644
--- a/docs/vars.md
+++ b/docs/vars.md
@@ -104,6 +104,8 @@ Stack](https://github.com/kubernetes-sigs/kubespray/blob/master/docs/dns-stack.m
 * *docker_options* - Commonly used to set
   ``--insecure-registry=myregistry.mydomain:5000``
 * *docker_plugins* - This list can be used to define [Docker plugins](https://docs.docker.com/engine/extend/) to install.
+* *containerd_config* - Controls some parameters in containerd configuration file (usually /etc/containerd/config.toml).
+  [Default config](https://github.com/kubernetes-sigs/kubespray/blob/master/roles/container-engine/containerd/defaults/main.yml) can be overriden in inventory vars.
 * *http_proxy/https_proxy/no_proxy* - Proxy variables for deploying behind a
   proxy. Note that no_proxy defaults to all internal cluster IPs and hostnames
   that correspond to each node.
diff --git a/roles/container-engine/containerd/defaults/main.yml b/roles/container-engine/containerd/defaults/main.yml
index 949652515..5e39ac258 100644
--- a/roles/container-engine/containerd/defaults/main.yml
+++ b/roles/container-engine/containerd/defaults/main.yml
@@ -8,6 +8,8 @@ containerd_config:
   registries:
     "docker.io": "https://registry-1.docker.io"
   max_container_log_line_size: -1
+  # containerd:
+  #   snapshotter: native
 
 containerd_version: '1.2.10'
 containerd_package: 'containerd.io'
diff --git a/roles/container-engine/containerd/templates/config.toml.j2 b/roles/container-engine/containerd/templates/config.toml.j2
index 14413462a..142b21fa5 100644
--- a/roles/container-engine/containerd/templates/config.toml.j2
+++ b/roles/container-engine/containerd/templates/config.toml.j2
@@ -25,6 +25,12 @@ disabled_plugins = ["restart"]
   conf_dir = "/etc/cni/net.d"
   conf_template = ""
 
+{% if 'containerd' in containerd_config %}
+[plugins.cri.containerd]
+{% for param, value in containerd_config.containerd.items() %}
+  {{ param }} = {{ value }}
+{% endfor %}
+{% endif %}
 [plugins.cri.containerd.untrusted_workload_runtime]
   runtime_type = ""
   runtime_engine = ""
-- 
GitLab