diff --git a/roles/kubernetes-apps/ansible/defaults/main.yml b/roles/kubernetes-apps/ansible/defaults/main.yml
index 4de1fe916f686d4969f83e9918ffff693c3d427a..4e8b23356bd289e8b91f00bc13dc0b5bb92126f7 100644
--- a/roles/kubernetes-apps/ansible/defaults/main.yml
+++ b/roles/kubernetes-apps/ansible/defaults/main.yml
@@ -27,6 +27,8 @@ coredns_default_zone_cache_block: |
 #     answer name (.*)\.svc\.cluster\.local {1}.my.domain
 #   }
 
+# coredns_additional_error_config: |
+#   consolidate 5m ".* i/o timeout$" warning
 
 # dns_upstream_forward_extra_opts apply to coredns forward section as well as nodelocaldns upstream target forward section
 # dns_upstream_forward_extra_opts:
diff --git a/roles/kubernetes-apps/ansible/templates/coredns-config.yml.j2 b/roles/kubernetes-apps/ansible/templates/coredns-config.yml.j2
index 7a06023e84b37982ecd4501b16fa0510f3989287..004ce0643d1bb36248d524905be5feb11f0b8a58 100644
--- a/roles/kubernetes-apps/ansible/templates/coredns-config.yml.j2
+++ b/roles/kubernetes-apps/ansible/templates/coredns-config.yml.j2
@@ -12,7 +12,11 @@ data:
 {%   for block in coredns_external_zones %}
     {{ block['zones'] | join(' ') }} {
         log
-        errors
+        errors {
+{% if coredns_additional_error_config is defined %}
+          {{ coredns_additional_error_config | indent(width=10, first=False) }}
+{% endif %}
+        }
 {% if block['rewrite'] is defined and block['rewrite'] | length > 0 %}
 {% for rewrite_match in block['rewrite'] %}
         rewrite {{ rewrite_match }}
@@ -31,10 +35,14 @@ data:
 {%   endfor %}
 {% endif %}
     .:53 {
-        {% if coredns_additional_configs is defined %}
+{% if coredns_additional_configs is defined %}
         {{ coredns_additional_configs | indent(width=8, first=False) }}
-        {% endif %}
-        errors
+{% endif %}
+        errors {
+{% if coredns_additional_error_config is defined %}
+          {{ coredns_additional_error_config | indent(width=10, first=False) }}
+{% endif %}
+        }
         health {
             lameduck 5s
         }