From: Chuck Lever <chuck.lever@oracle.com>
To: Daniel Gomez <da.gomez@kruces.com>
Cc: Daniel Gomez <da.gomez@kernel.org>,
kdevops@lists.linux.dev, Chuck Lever <chuck.lever@oracle.com>
Subject: Re: [PATCH] ansible_cfg: template boolean defaults must be "False"
Date: Wed, 16 Apr 2025 12:22:37 -0400 [thread overview]
Message-ID: <9b68de55-e52e-40c3-a29e-06bc82771bb0@oracle.com> (raw)
In-Reply-To: <CABj0suARn7ycHyjiXQPEi7JLd4bGmapkndcz2f7pfZsekxtWzA@mail.gmail.com>
On 4/16/25 11:48 AM, Daniel Gomez wrote:
> On Wed, 16 Apr 2025 at 15.41, <cel@kernel.org <mailto:cel@kernel.org>>
> wrote:
>
> From: Chuck Lever <chuck.lever@oracle.com
> <mailto:chuck.lever@oracle.com>>
>
> I found that the "disable_skipped_hosts" Kconfig setting was not
> working.
>
> Using "output yaml" with a boolean behaves somewhat counter-
> intuitively. When the user specifies "Yes, please set this", the
> variable appears in .extra_vars_auto.yaml with a value of True.
> When the user specifies "No, please do not set this" the variable
> does not appear in .extra_vars_auto.yaml at all.
>
>
> This is a good catch. Does this issue affect other playbooks?
Whenever Kconfig passes a boolean setting via "output yaml", we might
have this issue. The "False" value has to be provided by a Makefile or a
defaults/main.yml setting.
My recent terraform patches removed the Ansible defaults except for the
booleans for this very reason (see
playbooks/roles/gen_tfvars/defaults/main.yml).
I haven't looked closely for it outside of terraform/ however. The
defaults/main.yml treatment is pervasive, so I just go with that flow
and make a mental adjustment ;-)
> To make a template that uses these variables behave correctly, then,
> the defaults/main.yml setting has to be False always. When the
> Kconfig setting is enabled, that will override this default.
>
>
> It seems counterintuitive too to default to False only to ensure it can
> be overwritten. Perhaps we could fix this in kconfig/yaml? If we can
> rely on kconfig defaults, we might even be able to remove playbook
> defaults as we talked recently (not only here but globally).
>
> What do you think?
I guess that is indeed an option, since the YAML output logic is only in
kdevops' version of Kconfig?
But I think this arises from Kconfig itself: For booleans, the setting
is written into .config as either "CONFIG_YADA=y" or "# CONFIG_YADA is
not set" probably because CONFIG_YADA can be checked via "#ifdef"; not
defined inherently means "false".
Yes, I agree it is something that is likely to trip up developers again,
and it makes sense that "output yaml" should always define the Ansible/
YAML version of the variable whether it is set to True or False.
> Signed-off-by: Chuck Lever <chuck.lever@oracle.com
> <mailto:chuck.lever@oracle.com>>
> ---
> playbooks/roles/ansible_cfg/defaults/main.yml | 10 +++++-----
> 1 file changed, 5 insertions(+), 5 deletions(-)
>
> diff --git a/playbooks/roles/ansible_cfg/defaults/main.yml b/
> playbooks/roles/ansible_cfg/defaults/main.yml
> index e01de2f4481d..4ff00c18976d 100644
> --- a/playbooks/roles/ansible_cfg/defaults/main.yml
> +++ b/playbooks/roles/ansible_cfg/defaults/main.yml
> @@ -1,12 +1,12 @@
> ---
> -ansible_cfg_deprecation_warnings: true
> +ansible_cfg_deprecation_warnings: false
> ansible_cfg_callback_plugin_string: dense
> ansible_cfg_callback_plugin_check_mode_markers: false
> ansible_cfg_callback_plugin_display_failed_stderr: false
> -ansible_cfg_callback_plugin_display_ok_hosts: true
> -ansible_cfg_callback_plugin_display_skipped_hosts: true
> +ansible_cfg_callback_plugin_display_ok_hosts: false
> +ansible_cfg_callback_plugin_display_skipped_hosts: false
> ansible_cfg_callback_plugin_show_custom_stats: false
> -ansible_cfg_callback_plugin_show_per_host_start: true
> -ansible_cfg_callback_plugin_show_task_path_on_failure: true
> +ansible_cfg_callback_plugin_show_per_host_start: false
> +ansible_cfg_callback_plugin_show_task_path_on_failure: false
> ansible_cfg_interpreter_python: "auto_silent"
> ansible_cfg_forks: 10
> --
> 2.49.0
>
--
Chuck Lever
prev parent reply other threads:[~2025-04-16 16:22 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-04-16 13:41 [PATCH] ansible_cfg: template boolean defaults must be "False" cel
[not found] ` <CABj0suARn7ycHyjiXQPEi7JLd4bGmapkndcz2f7pfZsekxtWzA@mail.gmail.com>
2025-04-16 16:22 ` Chuck Lever [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=9b68de55-e52e-40c3-a29e-06bc82771bb0@oracle.com \
--to=chuck.lever@oracle.com \
--cc=da.gomez@kernel.org \
--cc=da.gomez@kruces.com \
--cc=kdevops@lists.linux.dev \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox