From c590ff475e1c24c896963a9827e5980b6fd22e10 Mon Sep 17 00:00:00 2001 From: Rich Megginson Date: Wed, 25 Feb 2026 10:07:54 -0700 Subject: [PATCH] fix: ensure idempotence by writing settings in sorted order Cause: On EL7, the underlying module uses an unordered dict, so the order of the settings being written can change between role invocations. Consequence: The role may report changed when nothing actually changed except the order. Fix: The settings are sorted before being written so that the order is consistent. Result: The role does not report changed when nothing has changed. Signed-off-by: Rich Megginson --- templates/kernel_settings.j2 | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/templates/kernel_settings.j2 b/templates/kernel_settings.j2 index 9ecb587f..9cf692bd 100644 --- a/templates/kernel_settings.j2 +++ b/templates/kernel_settings.j2 @@ -2,7 +2,8 @@ {{ "system_role:kernel_settings" | comment(prefix="", postfix="") }} {% macro write_section(section_name, settings) %} [{{ section_name }}] -{% for key, val in settings.items() %} +{% for key in settings.keys() | sort %} +{% set val = settings[key] %} {% if val != {"state": "absent"} %} {{ key }} = {{ val }} {% endif %}