public inbox for kdevops@lists.linux.dev
 help / color / mirror / Atom feed
From: Daniel Gomez <da.gomez@kernel.org>
To: Chuck Lever <cel@kernel.org>
Cc: kdevops@lists.linux.dev, Chuck Lever <chuck.lever@oracle.com>
Subject: Re: [RFC PATCH] Makefile: terraform wasn't building the kdevops_nodes file
Date: Sun, 28 Sep 2025 21:53:27 +0200	[thread overview]
Message-ID: <827d1b8e-d489-46a9-a49b-b3cf3a4fe097@kernel.org> (raw)
In-Reply-To: <20250928155341.901825-1-cel@kernel.org>

On 28/09/2025 17.53, Chuck Lever wrote:
> From: Chuck Lever <chuck.lever@oracle.com>
> 
> When "make bringup" runs "terraform plan", it complains that the
> kdevops_nodes variable isn't set.
> 
> extra_vars.yaml does contain the variable, but I'm guessing that
> somehow gen_nodes runs after gen_tfvars now? Not really sure.

I see! Thanks for reporting. Indeed my fix introduced this bug. I think
it'd be best to move KDEVOPS_NODES just after we assign the filename to it
(provision.Makefile -> guestfs.Makefile):

diff --git a/Makefile b/Makefile
index 3653591d..26615b22 100644
--- a/Makefile
+++ b/Makefile
@@ -144,16 +144,16 @@ endif
 DEFAULT_DEPS += $(ANSIBLE_CFG_FILE)
 DEFAULT_DEPS += $(ANSIBLE_INVENTORY_FILE)

-ifneq (,$(KDEVOPS_NODES))
-DEFAULT_DEPS += $(KDEVOPS_NODES)
-endif
-
 include scripts/provision.Makefile
 include scripts/firstconfig.Makefile
 include scripts/systemd-timesync.Makefile
 include scripts/journal-server.Makefile
 include scripts/update_etc_hosts.Makefile

+ifneq (,$(KDEVOPS_NODES))
+DEFAULT_DEPS += $(KDEVOPS_NODES)
+endif
+
 KDEVOPS_BRING_UP_DEPS += $(KDEVOPS_BRING_UP_DEPS_EARLY)
 KDEVOPS_BRING_UP_DEPS += $(KDEVOPS_PROVISIONED_DEVCONFIG)

The patch below changes the proposed order (ansible.cfg -> hosts -> nodes ->
rest)  in patch 5457b742d611 to:

==> [/home/dagomez.linux/src/kdevops/ansible.cfg]
==> [guestfs/kdevops_nodes.yaml]
==> [/home/dagomez.linux/src/kdevops/hosts]

I think both approaches work because nodes do not seem to be requiring hosts.
The questions is whether we need both changes? I think we need to ensure 
nodes are consistent with inventory changes. And they other way around in 
case the user deletes any of the files. So, what do you think about adding
this on top of the above?

@@ -264,13 +264,13 @@ ifneq (,$(KDEVOPS_BRING_UP_DEPS))
 include scripts/bringup.Makefile
 endif

-$(ANSIBLE_INVENTORY_FILE): .config $(ANSIBLE_CFG_FILE) $(KDEVOPS_HOSTS_TEMPLATE) $(KDEVOPS_EXTRA_VARS)
+$(ANSIBLE_INVENTORY_FILE): .config $(ANSIBLE_CFG_FILE) $(KDEVOPS_HOSTS_TEMPLATE) $(KDEVOPS_NODES) $(KDEVOPS_EXTRA_VARS)
        $(Q)ansible-playbook $(ANSIBLE_VERBOSE) --connection=local \
                --inventory localhost, \
                $(KDEVOPS_PLAYBOOKS_DIR)/gen_hosts.yml \
                --extra-vars=@./extra_vars.yaml

-$(KDEVOPS_NODES): .config $(ANSIBLE_CFG_FILE) $(KDEVOPS_NODES_TEMPLATE) $(KDEVOPS_EXTRA_VARS)
+$(KDEVOPS_NODES): .config $(ANSIBLE_CFG_FILE) $(ANSIBLE_INVENTORY_FILE) $(KDEVOPS_NODES_TEMPLATE) $(KDEVOPS_EXTRA_VARS)

Target result:
make -j12 V=1
==> [sudo]
==> [sudo]
==> [make]
==> [make]
==> [nc]
==> [nc]
==> [ansible-playbook]
==> [ansible-playbook]
==> [scripts/version_check/ansible-playbook]
==> [scripts/version_check/ansible-playbook]
==> [ansible-requirements]
==> [/home/dagomez.linux/src/kdevops/ansible.cfg]
==> [timesyncd-server]
==> [journal-server]
==> [.kdevops.depcheck]
==> [.kdevops.depcheck]
==> [guestfs/kdevops_nodes.yaml]
==> [/home/dagomez.linux/src/kdevops/hosts]

> 
> Fixes: 5457b742d611 ("Makefile: fix target dependency order")
> Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
> ---
>  Makefile | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/Makefile b/Makefile
> index fb7e9b816dbc..c1dd1232c7ff 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -258,7 +258,7 @@ ifneq (,$(KDEVOPS_BRING_UP_DEPS))
>  include scripts/bringup.Makefile
>  endif
>  
> -$(ANSIBLE_INVENTORY_FILE): .config $(ANSIBLE_CFG_FILE) $(KDEVOPS_HOSTS_TEMPLATE) $(KDEVOPS_EXTRA_VARS)
> +$(ANSIBLE_INVENTORY_FILE): .config $(ANSIBLE_CFG_FILE) $(KDEVOPS_HOSTS_TEMPLATE) $(KDEVOPS_NODES) $(KDEVOPS_EXTRA_VARS)
>  	$(Q)ANSIBLE_LOCALHOST_WARNING=False ANSIBLE_INVENTORY_UNPARSED_WARNING=False \
>  		ansible-playbook $(ANSIBLE_VERBOSE) \
>  		$(KDEVOPS_PLAYBOOKS_DIR)/gen_hosts.yml \

  reply	other threads:[~2025-09-28 19:53 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-09-28 15:53 [RFC PATCH] Makefile: terraform wasn't building the kdevops_nodes file Chuck Lever
2025-09-28 19:53 ` Daniel Gomez [this message]
2025-09-28 19:57   ` Chuck Lever
2025-09-28 20:08     ` Daniel Gomez
2025-09-28 20:30   ` Chuck Lever
2025-09-29 19:16     ` Daniel Gomez

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=827d1b8e-d489-46a9-a49b-b3cf3a4fe097@kernel.org \
    --to=da.gomez@kernel.org \
    --cc=cel@kernel.org \
    --cc=chuck.lever@oracle.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