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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.