From 9c94891aa03b1d6e03d09992b6c4bfd5fda2169c Mon Sep 17 00:00:00 2001 From: Foivos Filippopoulos Date: Wed, 26 Jan 2022 16:32:31 +0000 Subject: [PATCH] Flag to allow using deprecated docker runtime Helps to mitigate the inotify fd leak issue related with containerd runtime: https://github.com/containerd/containerd/issues/5670 Created as a flag to be able to support both docker and containerd runtime setups --- common.tf | 10 +++++++++- master.tf | 13 ++++++++----- modules/cert-refresh-master/main.tf | 14 ++++++++++---- modules/cert-refresh-node/main.tf | 8 +++++++- node-common.tf | 6 ++++-- resources/docker-dropin.conf | 4 ++++ resources/master-kubelet-conf.yaml | 2 +- resources/master-kubelet.service | 9 +++++++++ resources/node-kubelet-conf.yaml | 2 +- resources/node-kubelet.service | 9 +++++++++ variables.tf | 6 ++++++ worker.tf | 11 ++++++----- 12 files changed, 74 insertions(+), 20 deletions(-) diff --git a/common.tf b/common.tf index a61b4ba..cefb632 100644 --- a/common.tf +++ b/common.tf @@ -25,12 +25,20 @@ data "ignition_file" "cfssljson" { } } +data "template_file" "docker_opts_dropin" { + template = file("${path.module}/resources/docker-dropin.conf") + + vars = { + use_deprecated_docker_runtime = var.use_deprecated_docker_runtime + } +} + data "ignition_systemd_unit" "docker-opts-dropin" { name = "docker.service" dropin { name = "10-custom-options.conf" - content = file("${path.module}/resources/docker-dropin.conf") + content = data.template_file.docker_opts_dropin.rendered } } diff --git a/master.tf b/master.tf index 43bc05b..8eaa796 100644 --- a/master.tf +++ b/master.tf @@ -4,8 +4,9 @@ data "ignition_systemd_unit" "locksmithd_master" { } module "cert-refresh-master" { - source = "./modules/cert-refresh-master" - on_calendar = var.cfssl_node_renew_timer + source = "./modules/cert-refresh-master" + on_calendar = var.cfssl_node_renew_timer + use_deprecated_docker_runtime = var.use_deprecated_docker_runtime } // Node certificate for kubelet to use as part of system:master-nodes. We need @@ -216,9 +217,10 @@ data "template_file" "master-kubelet" { template = file("${path.module}/resources/master-kubelet.service") vars = { - kubelet_binary_path = "/opt/bin/kubelet" - cloud_provider = var.cloud_provider - get_hostname = var.node_name_command[var.cloud_provider] + kubelet_binary_path = "/opt/bin/kubelet" + cloud_provider = var.cloud_provider + get_hostname = var.node_name_command[var.cloud_provider] + use_deprecated_docker_runtime = var.use_deprecated_docker_runtime } } @@ -234,6 +236,7 @@ data "template_file" "master-kubelet-conf" { cluster_dns = local.cluster_dns_yaml feature_gates = local.feature_gates_yaml_fragment kubelet_cgroup_v2_runtime_enabled = var.kubelet_cgroup_v2_runtime_enabled + use_deprecated_docker_runtime = var.use_deprecated_docker_runtime } } diff --git a/modules/cert-refresh-master/main.tf b/modules/cert-refresh-master/main.tf index 93a8eb3..6b7259c 100644 --- a/modules/cert-refresh-master/main.tf +++ b/modules/cert-refresh-master/main.tf @@ -2,13 +2,19 @@ variable "on_calendar" { type = string } +variable "use_deprecated_docker_runtime" { + description = "Use legacy docker container runtime" + default = false + type = bool +} + data "ignition_systemd_unit" "cert-refresh" { name = "cert-refresh.service" content = <