From 62f34c6085f9e5322866203fb1e5737966bc238a Mon Sep 17 00:00:00 2001
From: Jack <jack4zhang@gmail.com>
Date: Mon, 27 Feb 2023 16:26:19 +0800
Subject: [PATCH] add image garbage collection (#9832)

---
 docs/vars.md                                             | 9 +++++++++
 .../node/templates/kubelet-config.v1beta1.yaml.j2        | 6 ++++++
 2 files changed, 15 insertions(+)

diff --git a/docs/vars.md b/docs/vars.md
index 2fa8ea029..6e127cbbd 100644
--- a/docs/vars.md
+++ b/docs/vars.md
@@ -205,6 +205,15 @@ Stack](https://github.com/kubernetes-sigs/kubespray/blob/master/docs/dns-stack.m
 
 * *kubelet_streaming_connection_idle_timeout* - Set the maximum time a streaming connection can be idle before the connection is automatically closed.
 
+* *kubelet_image_gc_high_threshold* - Set the percent of disk usage after which image garbage collection is always run.
+  The percent is calculated by dividing this field value by 100, so this field must be between 0 and 100, inclusive.
+  When specified, the value must be greater than imageGCLowThresholdPercent. Default: 85
+
+* *kubelet_image_gc_low_threshold* - Set the percent of disk usage before which image garbage collection is never run.
+  Lowest disk usage to garbage collect to.
+  The percent is calculated by dividing this field value by 100, so the field value must be between 0 and 100, inclusive.
+  When specified, the value must be less than imageGCHighThresholdPercent. Default: 80
+
 * *kubelet_make_iptables_util_chains* - If `true`, causes the kubelet ensures a set of `iptables` rules are present on host.
 
 * *kubelet_systemd_hardening* - If `true`, provides kubelet systemd service with security features for isolation.
diff --git a/roles/kubernetes/node/templates/kubelet-config.v1beta1.yaml.j2 b/roles/kubernetes/node/templates/kubelet-config.v1beta1.yaml.j2
index 55c5c005a..cdaae67b7 100644
--- a/roles/kubernetes/node/templates/kubelet-config.v1beta1.yaml.j2
+++ b/roles/kubernetes/node/templates/kubelet-config.v1beta1.yaml.j2
@@ -147,6 +147,12 @@ memorySwap:
 {% if kubelet_streaming_connection_idle_timeout is defined %}
 streamingConnectionIdleTimeout: {{ kubelet_streaming_connection_idle_timeout }}
 {% endif %}
+{% if kubelet_image_gc_high_threshold is defined %}
+imageGCHighThresholdPercent: {{ kubelet_image_gc_high_threshold }}
+{% endif %}
+{% if kubelet_image_gc_low_threshold is defined %}
+imageGCLowThresholdPercent: {{ kubelet_image_gc_low_threshold }}
+{% endif %}
 {% if kubelet_make_iptables_util_chains is defined %}
 makeIPTablesUtilChains: {{ kubelet_make_iptables_util_chains | bool }}
 {% endif %}
-- 
GitLab