Skip to content

Conversation

@dkruces
Copy link
Contributor

@dkruces dkruces commented Sep 23, 2025

No description provided.

Fix Ansible warnings by ensuring proper build order:
extra_vars.yaml -> ansible.cfg -> hosts -> nodes -> rest

This fixes Ansible WARNINGS introduced by d7028bd ("terraform: remove
redundant ansible inventory and connection overrides") while executing
terraform Makefile targets. Reported by Chuck Lever.

Warnings:
==> [terraform/aws/terraform.tfvars]
+ ansible-playbook playbooks/gen_tfvars.yml
--extra-vars=@./extra_vars.yaml
[WARNING]: No inventory was parsed, only implicit localhost is available
[WARNING]: provided hosts list is empty, only localhost is available.
Note that the implicit localhost does not match 'all'

Generated-by: Claude AI
Reported-by: Chuck Lever <[email protected]>
Reviewed-by: Chuck Lever <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Daniel Gomez <[email protected]>
Add localhost ansible_connection=local to the generic workflow
template to match other workflow templates updated in commit 1cf0800
("gen_hosts: templates: include localhost in the all group").

This ensures all inventory templates include localhost with proper
connection settings, allowing simplified ansible-playbook calls
without explicit connection flags.

Fixes: f4a4e34 ("gen_hosts: Add missing generic workflow template")

Generated-by: Claude AI
Reviewed-by: Chuck Lever <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Daniel Gomez <[email protected]>
Add ansible_python_interpreter setting to suppress the Python
interpreter discovery warning during ansible.cfg generation.

Uses ansible_playbook_python variable to ensure consistency
with the Python interpreter running the playbook.

Generated-by: Claude AI
Reviewed-by: Chuck Lever <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Daniel Gomez <[email protected]>
Remove ANSIBLE_LOCALHOST_WARNING and ANSIBLE_INVENTORY_UNPARSED_WARNING
from the ansible.cfg generation target since it uses explicit
--inventory localhost, and doesn't need the hosts file to exist yet.

Generated-by: Claude AI
Reviewed-by: Chuck Lever <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Daniel Gomez <[email protected]>
Remove connection flags and warning suppressions from the KDEVOPS_NODES
target since all inventory templates now include localhost with proper
ansible_connection=local settings.

This allows the playbook to use the generated ansible.cfg and hosts
files automatically without explicit overrides.

Generated-by: Claude AI
Reviewed-by: Chuck Lever <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Daniel Gomez <[email protected]>
Add --connection=local and --inventory localhost, to the inventory
generation target since we're generating the hosts file and don't
have a proper inventory available yet.

This avoids inventory parsing warnings by being explicit about
the execution context, following the same pattern as ansible.cfg
generation.

Generated-by: Claude AI
Reviewed-by: Chuck Lever <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Daniel Gomez <[email protected]>
… handling

Replace ansible.builtin.copy with cp --reflink=auto for significant
performance improvement on XFS filesystems with reflink support:

- 20GB image copy time: ~54s → ~1s (when reflinks are supported)
- Automatic fallback to regular copy on non-reflink filesystems
- Use direct cp command for better control over reflink behavior

Add condition to prevent copying when source and destination are the
same file. This was not needed with ansible.builtin.copy (which handles
this case automatically) but is required with direct cp command which
fails with "files are the same" error.

The condition `custom_image != base_image_pathname` ensures copy only
occurs when paths differ, maintaining compatibility with configurations
where both variables point to the same location.

Generated-by: Claude AI
Signed-off-by: Daniel Gomez <[email protected]>
Introduce a CI-specific fragment to enable the configuration options
required for continuous integration.

Signed-off-by: Daniel Gomez <[email protected]>
Add a new kconfig option in the "Kdevops configuration" menu to enable
verbose make output (V=1) by default. This promotes make verbosity from
a command-line-only option to a first-class configuration setting.

Features:
- KDEVOPS_MAKE_VERBOSE bool option in menuconfig
- Early parsing in main Makefile before V= logic
- Command line override support with proper priority:
  1. CLI V=0/V=1 (highest priority)
  2. CONFIG_KDEVOPS_MAKE_VERBOSE=y (persistent default)
  3. Built-in quiet mode (fallback)

Usage examples:
- make target          → Uses kconfig setting
- make V=0 target      → CLI overrides to quiet
- make V=1 target      → CLI overrides to verbose

This allows users to set a persistent verbosity preference while
maintaining full command-line flexibility, following industry
standard patterns used by Rust/Cargo, Kubernetes, and other tools.

Generated-by: Claude AI
Signed-off-by: dagomez <[email protected]>
Improve the DIY callback output format to provide cleaner, more scannable
task execution display:

- Show target hosts in task start messages using ansible_play_hosts
- Use visual status indicators: ✓ for success, ⊘ for skipped tasks
- Remove redundant task name repetition in completion messages
- Add indentation to status messages for better visual hierarchy
- Remove unnecessary "start:" messages to reduce noise
- Keep (changed) and FAILED messages with full context

Output format:
  TASK: Task name [target,hosts]
    ✓ [actual_host]
    ⊘ [skipped_host]

This creates clean, scannable output similar to systemd service status
with clear visual indicators while showing host targeting information
upfront and execution results with proper visual hierarchy.

Generated-by: Claude AI
Signed-off-by: Daniel Gomez <[email protected]>
Add new Kconfig option ANSIBLE_CFG_CALLBACK_PLUGIN_PROFILE_TASKS
to enable the ansible.posix.profile_tasks callback plugin.

This provides timing analysis similar to systemd-analyze blame,
showing task execution times and generating a TASKS RECAP section
with the slowest tasks at the end of playbook execution.

The option is disabled by default to maintain clean output for
existing workflows, but can be enabled when performance analysis
is needed.

Generated-by: Claude AI
Signed-off-by: Daniel Gomez <[email protected]>
Signed-off-by: Daniel Gomez <[email protected]>
Add new push.yml workflow that triggers on push and pull_request events
with fixed validation testing parameters:

- Fixed kernel: v6.15 on linux tree
- Fixed workflows: blktests_nvme and xfs_reflink_4k
- Fixed mode: kdevops-validation (single test execution)
- Auto-assigned tests: block/003 and generic/003 respectively

Also disable docker-tests.yml workflow (rename to .disabled) to reduce
CI noise and add push-test.yml for debugging push/PR triggers.

The push.yml workflow follows the same architecture as schedule.yml and
manual.yml by calling the reusable main.yml workflow, enabling fast
validation CI runs on every push and PR.

Generated-by: Claude AI
Signed-off-by: Daniel Gomez <[email protected]>
Signed-off-by: Daniel Gomez <[email protected]>
@dkruces dkruces closed this Sep 23, 2025
@dkruces dkruces deleted the test-pr-2 branch September 24, 2025 09:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant