Handle min kernel requirement for some sysctl parameters
Related-Prod: PROD-28434 (PROD:28434)
Related-Prod: PROD-25587 (PROD:25587)
Change-Id: I53424756f621a61e190fdb1cdab1734d175cf4b8
(cherry picked from commit f8232e0d564f34d480a931cdc1bd52022924f2a0)
diff --git a/linux/map.jinja b/linux/map.jinja
index b24e9ce..61e45ee 100644
--- a/linux/map.jinja
+++ b/linux/map.jinja
@@ -455,3 +455,7 @@
}
},
}, grain='os_family', merge=salt['pillar.get']('linux:monitoring')) %}
+
+{%- set sysctl_min_kernel = {
+ 'net.core.netdev_budget_usecs': '4.12',
+} %}
diff --git a/linux/system/kernel.sls b/linux/system/kernel.sls
index 3dc3046..59405d0 100644
--- a/linux/system/kernel.sls
+++ b/linux/system/kernel.sls
@@ -1,4 +1,5 @@
{%- from "linux/map.jinja" import system with context %}
+{%- from "linux/map.jinja" import sysctl_min_kernel %}
{%- if system.enabled %}
{%- if system.kernel is defined %}
@@ -82,13 +83,19 @@
{%- endfor %}
{%- endif %}
+{%- set cur_kernel = salt['grains.get']('kernelrelease') %}
+
{%- for sysctl_name, sysctl_value in system.kernel.get('sysctl', {}).items() %}
+ {%- if not sysctl_name in sysctl_min_kernel or salt['pkg.version_cmp'](cur_kernel, sysctl_min_kernel[sysctl_name]) >= 0 %}
+
linux_kernel_{{ sysctl_name }}:
sysctl.present:
- name: {{ sysctl_name }}
- value: {{ sysctl_value }}
+ {%- endif %}
+
{%- endfor %}
{%- endif %}